Skip to content

Kubernetes ServersTransport

ServersTransport 允许你配置 Traefik 与 Kubernetes 中 HTTP 服务器之间的连接。

在创建 ServersTransport 对象之前,你需要将 Traefik Kubernetes CRDs 应用到你的 Kubernetes 集群。

这会注册 ServersTransport 类型以及其它 Traefik 专属资源。

它可以通过以下方式应用到 service:

  • IngressRoute 上的 services.serverstransport 选项(如果 service 是 Kubernetes Service)
  • TraefikService 上的 serverstransport 选项(如果 service 是 Kubernetes Service)

从其他命名空间引用 ServersTransport CRD

值必须是 namespace-name@kubernetescrd 形式,并且必须在 provider 级别启用 allowCrossNamespace 选项。

配置示例

serversTransport

yaml
apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
  name: mytransport
  namespace: default

spec:
  serverName: example.org
  insecureSkipVerify: true

IngressRoute

yaml
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: testroute
  namespace: default

spec:
  entryPoints:
    - web
  routes:
  - match: Host(`example.com`)
    kind: Rule
    services:
    - name: whoami
      port: 80
      serversTransport: mytransport

配置选项

字段描述默认值必填
serverName用于 SNI 的服务器名称。
insecureSkipVerify是否验证服务器的证书链和主机名。false
rootcas验证服务器证书时使用的根证书颁发机构集合(用于 mTLS 连接)。
certificatesSecrets向服务器出示的用于 mTLS 的证书。
maxIdleConnsPerHost每个主机保持的最大空闲(keep-alive)连接数。200
disableHTTP2禁用与服务器连接的 HTTP/2。false
peerCertURI在服务器证书验证期间用于匹配 SAN URI 的 URI。""
forwardingTimeouts.dialTimeout等待建立到服务器的连接所花费的时间。零表示无超时。30s
forwardingTimeouts.responseHeaderTimeout在完全写入请求(包括 body,如果有)后等待服务器响应头的时间。零表示无超时。0s
forwardingTimeouts.idleConnTimeout空闲(keep-alive)连接在关闭之前保持空闲的最长时间。零表示无超时。90s
spiffe.ids允许的 SPIFFE ID。优先于 SPIFFE TrustDomain。
spiffe.trustDomain允许的 SPIFFE 信任域。""

CA Secret

CA Secret 必须包含一个 base64 编码的证书,存放在 tls.caca.crt 键下。


在生产环境使用 Traefik OSS?

如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。

基于 MIT 协议发布