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: trueIngressRoute
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 的商业支持。