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.ca 或 ca.crt 键下。


在生产环境使用 Traefik OSS?

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

基于 MIT 协议发布