Traefik v3 版本迁移实战:破坏性变更、配置迁移与源码级解析
2026/9/7 8:59:00 网站建设 项目流程

Traefik v3 版本迁移实战:破坏性变更、配置迁移与源码级解析

【免费下载链接】traefikThe Cloud Native Application Proxy项目地址: https://gitcode.com/GitHub_Trending/tr/traefik

Traefik 自 v3 起在匹配器语义、Kubernetes Provider、安全默认值等方面经历了多次行为变更。本篇以仓库中 迁移指南 为主体,完整梳理 v3.0 至 v3.8 各版本升级所需的迁移步骤,并结合 Traefik 源码印证每一项变更的底层实现,帮助你在升级任何两个 v3 小版本之间准确识别破坏性变更、补齐 RBAC/CRD,并规避潜在的路径与头部安全风险。

一、迁移指南的定位与覆盖范围

migrate/v3.md 是 Traefik 官方的 v3 版本间迁移手册,按版本号倒序组织,每一节覆盖:

  • 破坏性变更(Breaking changes):匹配器语义、默认值翻转等;
  • 弃用(Deprecations):被标记 Deprecated 的配置项及其替代项;
  • 配置迁移要求:Kubernetes CRD/RBAC 更新命令、选项改名对照表。

升级前建议:先定位你当前版本与目标版本之间的所有小节,逐项核对静态配置、动态配置与 Kubernetes 清单。下文按文档原始版本顺序完整展开,并补充源码证据。

二、v3.8.0:peerCertURI弃用,迁移到peerCertSANs

v3.8.0起,ServersTransportServersTransportTCP中的peerCertURI选项被弃用,将在下一个大版本移除。替代选项peerCertSANs支持多个SAN 匹配,类型为URIDNSName

在源码中可以直接看到弃用标记与替代字段(ServersTransport 定义):

// Deprecated: PeerCertURI is deprecated, please use the PeerCertSANs option instead. PeerCertURI string `... json:"peerCertURI,omitempty" ...` PeerCertSANs []traefiktls.SAN `... json:"peerCertSANs,omitempty" ...`

详细参数说明见 ServersTransport 与 ServersTransportTCP 文档。

Kubernetes CRD Provider 迁移步骤

若通过 CRD 使用peerCertSANs,需要更新集群中的 CRD 定义:

kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.8/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml

三、v3.7.7:Host(*)通配符语义变为全匹配

v3.7.7起,Host匹配器将裸*视为捕获一切(catch-all),与 TCP 的HostSNI(*)保持一致:

  • 现在Host(`*`)匹配任意请求,包括完全没有 Host 的请求;
  • 此前*只当作单个通配标签,Host(`*`)仅匹配单段主机名(如localhost),不匹配example.com

如果你的路由规则中曾依赖Host(`*`)只匹配单段主机名的旧语义,升级后需显式改写规则。更多细节见 HTTP 路由规则。

四、v3.7.6 / v3.6.22:underscoreHeadersStrategy下划线头部处理策略

v3.6.20(主干)与v3.6.22(维护线)起,新增入口点级选项underscoreHeadersStrategy,定义路由前如何处理名称含下划线的请求头(静态配置定义):

取值行为
keep(默认)含下划线的请求头原样转发
delete名称含下划线的请求头被静默删除
reject携带此类请求头的请求直接以400 Bad Request拒绝

默认值为keep,保持既有行为不变。

为什么需要该选项:头伪装(Header Smuggling)风险

下划线是合法的 HTTP 头名字符,但 Go 只对连字符做头名规范化。因此,管理连字符形式头部的中间件(例如 ForwardAuth 的authResponseHeaders设置的X-Auth-User)看不到下划线变体X_Auth_User,也就无法覆盖或删除它。

而很多后端(CGI、WSGI、PHP、NGINX 等)把两种形式映射到同一个变量。面对这类后端,客户端可以把下划线变体混过只管理连字符形式的中间件,让后端读到伪造值,从而绕过中间件本应提供的保护。

安全警告:当入口点后面是“把下划线与连字符视为同一头部”的后端时,不建议保留默认的keep策略,应将该入口点设为deletereject

参数文档见入口点 underscoreHeadersStrategy。

五、v3.7.3 / v3.6.19:Gateway 限流调优、BasicAuth 与 StripPrefix 行为收紧

1. Kubernetes Gateway API Provider:QPS/Burst 提升

v3.7.3(主干)与v3.6.19(维护线)起,Gateway API provider 所用 Kubernetes client 的 QPS/Burst 提升到50/100(Kubernetes client 默认值的 10 倍)。原因是该 provider 为符合 Gateway API 规范会密集回写 status,避免 API 限流拖慢新路由配置的构建。可通过kubernetesGateway.qpskubernetesGateway.burst选项覆盖,见 Kubernetes Gateway Provider 文档。

2. BasicAuth 中间件要求非空 users

v3.7.3/v3.6.19起,BasicAuth 中间件必须配置非空 users 才能构建成功。此前空配置时中间件构建成功但对任何请求恒返回401;现在构建报错,使用它的 router 会被卸载,同样请求将得到404。源码印证(BasicAuth 构建逻辑):

users, err := getUsers(authConfig.UsersFile, authConfig.Users, basicUserParser) ... if len(users) == 0 { return nil, fmt.Errorf("no users found in %s", authConfig.UsersFile) }

3. StripPrefix / StripPrefixRegex 拒绝未规范化路径

同一版本起,当剥离前缀后得到的路径与其规范化形式不一致(含会被规范化折叠的...段)时,中间件直接返回400 Bad Request,防止剥离后的路径被上游解释为另一资源(参见 StripPrefix 中间件实现 与 StripPrefixRegex)。以前缀/api为例:

请求路径剥离后规范化后结果
/api/foo/foo/foo200(转发)
/api///200(转发)
/api./foo/./foo/foo400
/api../foo/../foo/foo400

六、v3.7.1 / v3.6.17:crossProviderNamespaces限制跨 provider 引用

v3.7.1(主干)与v3.6.17(维护线)为 Kubernetes CRD、Ingress、Gateway 三个 provider 新增crossProviderNamespaces选项。

背景:Traefik 允许跨 provider 引用资源(如myservice@kubernetescrd),但在 Kubernetes 场景下这类引用可以跨越命名空间边界,甚至暴露本应只有 operator 才能暴露的@internal服务。新选项用于限制哪些命名空间中的资源允许声明跨 provider 引用:

取值行为
未设置所有 Kubernetes 资源都可以声明跨 provider 引用
[]任何声明跨 provider 引用的 Kubernetes 资源都被拒绝
["ns-a"]仅列出的命名空间中的资源可以声明跨 provider 引用

该选项在三个 provider 中的落地实现可分别在 CRD provider、Ingress provider、Gateway provider 中查看。参数文档见 Kubernetes CRD、Kubernetes Ingress、Kubernetes Gateway。

七、v3.7.0:Ingress NGINX 自定义头、Gateway API v1.5.1 与通配符增强

1. Ingress NGINX Provider 支持custom-headers

v3.7.0起,Ingress NGINX provider 支持nginx.ingress.kubernetes.io/custom-headers注解,向转发给客户端的响应添加自定义头。因此其 RBAC(见 KubernetesIngressNGINX provider RBAC)中新增了configmaps权限:

... - apiGroups: - "" resources: - configmaps verbs: - list - watch ...

2. Kubernetes Gateway API Provider 升级到 v1.5.1

v3.7.0起,Gateway API provider 支持规范 v1.5.1,需要更新集群中的 Gateway API CRD:

kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.1/standard-install.yaml

实验通道:

kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.1/experimental-install.yaml

关键变化:TLSRoute已晋升 Standard 通道,不再需要experimentalChannel选项;现在只有TCPRoute需要experimentalChannel

3. Kubernetes CRD Provider 更新

要使用retry中间件的新选项或新的ingressClassName字段,需更新 CRD:

kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.7/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml

4. 通配符Host/HostSNI与 TLSOptions

  • v3.7.0起,HostHostSNI匹配器支持单层通配符子域名匹配(如*.example.com):*.example.com匹配foo.example.com,但不匹配foo.bar.example.com,也不匹配example.com本身。该能力仅在 v3 规则语法(默认)下可用。
  • TLSOptions 现在可以关联到使用通配符Host/HostSNI匹配器的 router。此前 TLSOptions 选择仅限精确Host匹配,使用HostRegexp或通配符时会回退到默认 TLS options 并产生类似No domain found in rule HostRegexp(...) the TLS option foo cannot be applied的警告。注意:HostRegexp匹配器的 TLSOptions 仍不支持,请改用通配符Host

八、v3.6.x 各维护版本变更要点

v3.6.16:Docker provider 最低 API 版本

v3.6.16起,Docker provider 要求 Docker API v1.40 及以上(对应 Docker Engine v19.03)。运行更老(已 EOL)Docker Engine 的用户应升级 Engine,或用DOCKER_API_VERSION环境变量覆盖 Traefik 使用的 API 版本。

v3.6.15:Errors 中间件errorRequestHeaders

新增errorRequestHeaders选项。默认行为不变:原始请求头全部转发给错误页服务;若错误页服务处于不同信任域,建议用它限制可转发的头。详见 Error Pages 文档。

v3.6.14:Chain 中间件遵循allowCrossNamespacetrustForwardHeader弃用

  • Chain中间件现在遵循 Kubernetes CRD provider 的allowCrossNamespace:若其为false(默认)而Chain引用了其他命名空间的中间件,整个Chain被拒绝并记录错误日志。
  • ForwardAuth 的trustForwardHeader被弃用,下个大版本移除。应改为在入口点级用forwardedHeaders.trustedIPs配置可信 IP,并显式将中间件的trustForwardHeader设为true。未显式设置时 Traefik 会记录警告——因为其旧行为不一致:部分X-Forwarded-*头(如X-Forwarded-ForX-Forwarded-Proto)被移除,而另一部分(如X-Forwarded-Prefix)原样转发。参数详见 ForwardAuth 文档。

v3.6.9:ForwardAuthmaxResponseBodySize

新增maxResponseBodySize选项,默认-1(不限)。强烈建议设置为合理值,避免 DoS 与内存耗尽等性能/安全问题。CRD 用户需同步更新 CRD 才能使用:

kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.6/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml

详见 ForwardAuth 文档。

v3.6.8:健康检查路径必须为相对 URL

v3.6.8起,健康检查请求配置的 path 会被校验必须为相对 URL,否则健康检查失败。

v3.6.7 与 v3.6.4:编码字符默认行为的两段演进

v3.6.4起,Traefik 默认拒绝请求路径中含特定编码字符的请求(返回400 Bad Request):

编码字符字符允许该字符的配置项
%2f/%2F/(斜杠)entryPoints.<name>.http.encodedCharacters.allowEncodedSlash
%5c/%5C\(反斜杠)entryPoints.<name>.http.encodedCharacters.allowEncodedBackSlash
%00NULLentryPoints.<name>.http.encodedCharacters.allowEncodedNullCharacter
%3b/%3B;(分号)entryPoints.<name>.http.encodedCharacters.allowEncodedSemicolon
%25%(百分号)entryPoints.<name>.http.encodedCharacters.allowEncodedPercent
%3f/%3F?(问号)entryPoints.<name>.http.encodedCharacters.allowEncodedQuestionMark
%23#(井号)entryPoints.<name>.http.encodedCharacters.allowEncodedHash

v3.6.7起,上述选项的默认值全部翻转为true:即默认不再拒绝,安全加固改为用户自行配置(设为false才能禁用对应字符):

编码字符字符配置项默认值
%2f/%2F/allowEncodedSlashtrue
%5c/%5C\allowEncodedBackSlashtrue
%00NULLallowEncodedNullCharactertrue
%3b/%3B;allowEncodedSemicolontrue
%25%allowEncodedPercenttrue
%3f/%3F?allowEncodedQuestionMarktrue
%23#allowEncodedHashtrue

注意:该校验只作用于按 RFC 3986 第 3 节定义的路径部分,不检查查询参数。相关实现见 encodedCharacters 中间件,参数文档见入口点 encodedCharacters。

v3.6.2:Ingress NGINX Provider 毕业

KubernetesIngressNGINX provider 自 v3.6.2 起不再是实验特性,无需experimental.kubernetesIngressNGINX选项。迁移步骤:

  1. 从实验段中删除kubernetesIngressNGINX选项;
  2. 按 kubernetesIngressNGINX Provider 文档 直接配置 provider。

被弃用的旧配置形如:

# YAML experimental: kubernetesIngressNGINX: true
# TOML [experimental] kubernetesIngressNGINX=true
# CLI --experimental.kubernetesIngressNGINX=true

九、v3.6.0:Gateway API v1.4.0 与 leasttime 负载均衡

  • Gateway API provider 仅支持规范 v1.4.0,需更新 Gateway API CRD:
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/standard-install.yaml # 实验通道: kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/experimental-install.yaml
  • 要在 CRD provider 中使用新的leasttime负载均衡算法,需更新 CRD:
kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.6/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml

十、v3.5.x:可观测性与协议变更

v3.5.4:OpenTelemetry 证书指标改名

traefik_tls_certs_not_after_milliseconds改名为traefik_tls_certs_not_after_seconds,使指标名与真实精度单位(秒)一致。

v3.5.2:TCP LoadBalancerproxyProtocol选项弃用

该选项改为在TCPServersTransport级别配置,详见 TCPServersTransport 文档。CRD 用户需更新 CRD:

kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.5/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml

v3.5.0:traceVerbosity与 K8s 资源属性

  • 入口点与 router 新增traceVerbosity选项控制 tracing span 粒度,router 可覆盖入口点继承值:

    • minimal:每个请求只产生一个 server span 和一个 client span;
    • detailed:为每个执行的中间件额外创建 span。

    影响:依赖 tracing 的用户应显式设置期望的 verbosity;既有配置默认落到minimal,span 数量会比以前少。文档见入口点与动态路由。

  • 启用 OTel tracing/logs/metrics 时,自动注入 semconv 属性k8s.pod.namek8s.pod.uid到 OTel 资源属性。需要为 Traefik 的 Kubernetes RBAC 增加 pods 的get权限:

... - apiGroups: - "" resources: - pods verbs: - get ...

十一、v3.4.x:MPTCP 移除与请求路径规范化

v3.4.5:MultiPath TCP 支持被移除

v3.4.2引入的 MPTCP 支持在v3.4.5被移除,因为在部分平台上启用 MPTCP 会导致 Traefik 停止并报错:

  • set tcp X.X.X.X:X->X.X.X.X:X: setsockopt: operation not supported

如需重新启用,可通过 Go 的GODEBUG环境变量设置multipathtcp变量(见 Go 官方 GODEBUG 文档)。

v3.4.1:请求路径规范化与保留字符处理

v3.4.1起,请求路径按 RFC 3986 规范化:

  1. 非保留字符解码:如%2E.)解码为字面形式;
  2. 大小写规范化:百分号编码字符统一大写(%2e%2E)。

处理顺序:先路径规范化(不可禁用),后路径净化(若启用)。

同时,保留字符(RFC 3986 2.2 节)在路由匹配期间保持编码状态,避免解码改变路径语义造成路由歧义。行为对照:

请求路径Router 规则Traefik v3.4.0Traefik v3.4.1说明
/foo%2FbarPathPrefix(/foo/bar)匹配不匹配%2F(/)保持编码,防止误匹配
/foo/../barPathPrefix(/foo)不匹配不匹配路径穿越被净化掉
/foo/../barPathPrefix(/bar)匹配匹配净化后解析为/bar
/foo/%2E%2E/barPathPrefix(/foo)匹配不匹配编码点号先规范化再净化
/foo/%2E%2E/barPathPrefix(/bar)不匹配匹配规范化 + 净化后解析为/bar

十二、v3.3 → v3.4:CRD 负载均衡策略、rootCAs 与规则语法弃用

负载均衡策略更新

v3.4 起 HTTP 服务定义支持新的负载均衡策略,需更新 CRD:

kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.4/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml

新增策略值:wrr(加权轮询)、p2c(Power of Two Choices)。

弃用警告RoundRobin策略已弃用但仍受支持(等价于wrr),将在下一个大版本移除。详见 HTTP 服务负载均衡文档。

rootCAs取代rootCAsSecrets

ServersTransportServersTransportTCPCRD 新增rootCAs选项,同时支持 ConfigMap 与 Secret 存放 CA 证书,替代旧的rootCAsSecrets

# 更新 CRD kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.4/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml # 更新 RBAC kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.4/docs/content/reference/dynamic-configuration/kubernetes-crd-rbac.yml

新配置格式:

--- apiVersion: traefik.io/v1alpha1 kind: ServersTransport metadata: name: foo namespace: bar spec: rootCAs: - configMap: ca-config-map - secret: ca-secret --- apiVersion: traefik.io/v1alpha1 kind: ServersTransportTCP metadata: name: foo namespace: bar spec: rootCAs: - configMap: ca-config-map - secret: ca-secret

rootCAsSecrets(仅 Secret)仍受支持但已弃用,将在下个大版本移除。

规则语法选项弃用

以下用于 v2→v3 语法过渡的选项将在下一个大版本移除:

  • core.defaultRuleSyntax(静态配置);
  • ruleSyntax(router 选项)。

请确保所有 router 规则改用 v3 语法。

十三、v3.3.x:路径净化、压缩与指标

v3.3.6:请求路径净化(sanitizePath)

v3.3.6起,请求路径在处理前自动净化,折叠以下路径段:/../(父目录引用)、/.//(当前目录引用)、重复斜杠//。可通过入口点 HTTP 配置关闭(不推荐):

# EntryPoint HTTP 配置 entryPoints: web: address: ":80" http: sanitizePath: false # 不推荐

危险警告sanitizePath: false并不安全,仅建议用于不能正确 URL 编码的遗留客户端;正确做法是保证请求被正确 URL 编码。

风险示例:含/的 Base64 数据在禁用净化且未 URL 编码时可能导致不安全的路由。

v3.3.5:Compress 默认编码顺序

默认压缩算法重排为gzip, br, zstd,优先 gzip。影响未指定Accept-Encoding偏好、或偏好中无顺序的请求,以兼容不支持新算法的旧客户端。

v3.3.4:OpenTelemetry 请求时长指标单位

traefik_(entrypoint|router|service)_request_duration_seconds指标单位从毫秒统一为秒,与其他 provider 及命名规范一致。

十四、v3.2.x 与 v3.2 → v3.3

v3.2 → v3.3:ACME DNS 与 tracing 选项改名

ACME DNS 挑战选项重组:

弃用选项新选项
acme.dnsChallenge.delaybeforecheckacme.dnsChallenge.propagation.delayBeforeChecks
acme.dnsChallenge.disablepropagationcheckacme.dnsChallenge.propagation.disableChecks

tracing 配置改名:tracing.globalAttributestracing.resourceAttributes(旧名有误导——它实际是给 collector 添加资源属性,而非全局 span 属性)。

v3.2.2:Swarm provider 标签更新

弃用标签新标签
traefik.docker.networktraefik.swarm.network
traefik.docker.lbswarmtraefik.swarm.lbswarm

v3.2.1:X-Forwarded-Prefix头处理收紧

v3.2.1起,X-Forwarded-Prefix与其他X-Forwarded-*头一致:来自非可信来源时会被 Traefik 移除,防止头伪装。配置见转发头文档。

十五、v3.1 → v3.2:CRD 新字段与 Gateway 通道演进

CRD 新增可选字段(向后兼容)

kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.3/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml

涉及资源:

  • TraefikService(mirrorBody,PR #11032);
  • RateLimit 与 InFlightReq 中间件的sourceCriterion.ipStrategy.ipv6Subnet(PR #9747);
  • Compress 中间件的encodings(PR #10943)。

Gateway Provider Standard 通道:GRPCRoute

v3.2 起 Gateway provider 支持GRPCRoute资源。需在对应 RBAC(见 KubernetesGateway Provider 要求)中补充grpcroutesgrpcroutes/status权限:

... - apiGroups: - gateway.networking.k8s.io resources: - grpcroutes verbs: - get - list - watch - apiGroups: - gateway.networking.k8s.io resources: - grpcroutes/status verbs: - update ...

Gateway Provider Experimental 通道:BackendTLSPolicy

Gateway API v1.2.0-rc1 有破坏性变更,v3.3 仅在启用实验特性时支持 Gateway v1.2.x。新增BackendTLSPolicy支持,RBAC 需补充configmapsbackendtlspoliciesbackendtlspolicies/status权限:

... - apiGroups: - "" resources: - configmaps verbs: - get - list - watch - apiGroups: - gateway.networking.k8s.io resources: - backendtlspolicies verbs: - get - list - watch - apiGroups: - gateway.networking.k8s.io resources: - backendtlspolicies/status verbs: - update ...

十六、v3.1.0 → v3.1.1:disableIngressClassLookup弃用

disableIngressClassLookup被弃用,下个大版本移除,替换为disableClusterScopeResources——后者对集群级资源发现提供更广的控制,同时覆盖 IngressClass 与 Nodes 资源。

十七、v3.0 → v3.1:EndpointSlices、NodePort 与 Gateway 毕业

Kubernetes Provider RBAC 变更

自 v3.1 起,所有 Kubernetes Provider 使用 EndpointSlices API(要求 Kubernetes >= v1.21)发现服务端点,并引入 NodePort 负载均衡能力。RBAC 需更新:

# 移除这段 # - apiGroups: [""] # resources: ["endpoints"] # verbs: ["get", "list", "watch"] # 替换为 - apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch

并新增 nodes 权限以支持 NodePort:

- apiGroups: - "" resources: - nodes verbs: - get - list - watch

受影响 provider:KubernetesIngress、KubernetesCRD、KubernetesGateway。

KubernetesGateway Provider 毕业

v3.1 起不再是实验特性,移除experimental.kubernetesgateway选项后按 KubernetesGateway Provider 文档 配置即可。被弃用的旧配置:

# YAML experimental: kubernetesgateway: true
# TOML [experimental] kubernetesgateway=true
# CLI --experimental.kubernetesgateway=true

十八、升级检查清单

  1. 对齐版本区间:确认当前与目标版本之间的所有小节(如 3.4 → 3.8 需覆盖 v3.4.1、v3.4.5、v3.5.x、v3.6.x、v3.7.x、v3.8.0 全部条目)。
  2. Kubernetes 环境:先应用对应版本的 CRD 与 RBAC 清单(每节均已给出kubectl apply -f命令),再滚动升级;核对 EndpointSlices、nodes、configmaps、grpcroutes、backendtlspolicies 等权限是否齐全。
  3. 路由规则:检查Host(*)语义变化(v3.7.7)、通配符与 TLSOptions 关联(v3.7.0)、路径规范化/净化行为(v3.4.1、v3.3.6)。
  4. 中间件:BasicAuth 非空 users(v3.6.19/v3.7.3)、StripPrefix 的 400 行为(同上)、ForwardAuth 的trustForwardHeadermaxResponseBodySize
  5. 安全默认值:按后端类型评估underscoreHeadersStrategy(v3.6.22/v3.7.6)与encodedCharacters(v3.6.4/v3.6.7)的加固设置。
  6. 可观测性:更新 Grafana/告警中依赖改名指标(..._not_after_seconds..._request_duration_seconds)的查询,并确认traceVerbosity级别。

完成以上核对后,即可在任意两个 v3 版本之间平滑升级。

【免费下载链接】traefikThe Cloud Native Application Proxy项目地址: https://gitcode.com/GitHub_Trending/tr/traefik

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询