Kubernetes Gateway API-3-TLS配置

发布于:2025-02-11 ⋅ 阅读:(111) ⋅ 点赞:(0)

1 简介

Gateway API 允许使用多种方式配置 TLS。本文档列出了各种TLS设置,并给出了如何有效使用它们的一般指南。

尽管本文档涵盖了 Gateway API 最常见的TLS配置形式,但某些实现也可能提供特定于实现的扩展,允许不同或更高级形式的TLS配置。除此文档外,值得阅读你所使用 Gateway API 的任何实现的TLS文档。

下面描述的 TLSRouteBackendTLSPolicy 资源目前仅包含在网关API的“测试”通道中。有关发布渠道的更多信息,请参阅版本指南

2 客户端/服务器和TLS

在这里插入图片描述

对于网关,涉及两个连接:

  • 下游(downstream):这是 Client 和 Gateway 之间的连接。

  • 上游(upstream):这是 Gateway 和 路由指定的后端资源之间的连接。这些后端资源通常是服务。

通过 Gateway API,对下游和上游连接的TLS配置进行独立管理。

对于下游连接,根据侦听器协议,支持不同的TLS模式和路由类型。

监听器协议 TLS Mode 支持的路由类型
TLS Passthrough(通过) TLSRoute
TLS Terminate(终止) TCPRoute
HTTPS Terminate HTTPRoute
GRPC Terminate GRPCRoute

请注意,在 Passthrough TLS模式下,TLS设置没有作用,因为来自 Client 的TLS会话不会在 Gateway 终止,而是通过 Gateway 加密。

对于上游连接,使用 BackendTLSPolicy,侦听器协议和TLS模式都不适用于上游TLS配置。对于 HTTPRoute,支持同时使用 Terminate TLS模式和 BackendTLSPolicy。将这些结合使用可以提供通常所说的连接,该连接在网关处终止并重新加密。

3 下游 TLS

下游TLS设置是使用 Gateway 级别的 listeners(侦听器)配置的。

3.1 Listeners 和 TLS

侦听器在每个域或子域的基础上公开TLS设置。侦听器的TLS设置应用于满足 hostname 条件的所有域。

在以下示例中,网关为所有请求提供 default-cert Secret资源中定义的TLS证书。虽然该示例涉及HTTPS协议,但也可以将相同的功能与TLSRoute一起用于 TLS-only 协议。

listeners:
- protocol: HTTPS # 其他可能的值是`TLS`
  port: 443
  tls:
    mode: Terminate # 如果 protocol 是“TLS”,则“Passthrough”是一种可能的模式
    certificateRefs:
    - kind: Secret
      group: ""
      name: default-cert

3.2 示例

3.2.1 持有多个不同证书的监听器

在此示例中,Gateway 被配置为服务 foo.example.combar.example.com 域。这些域的证书在 Gateway 中指定。

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata

网站公告


今日签到

点亮在社区的每一天
去签到