You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Traefik后K8s Ingress Controller功能失效求助

问题原因与解决方案

核心原因

你在启动参数中指定了--providers.kubernetesingress.ingressclass=traefik-internal,这会让Traefik 2.9.x只识别以下两类Ingress对象:

  • 带有kubernetes.io/ingress.class: traefik-internal注解的Ingress
  • 关联了名为traefik-internal的IngressClass资源的Ingress

而你的原有Ingress使用的是kubernetes.io/ingress.class: traefik注解,和Traefik当前配置的Ingress类不匹配,所以无法被识别。

解决方案

方案1:修改原有Ingress的注解

把所有目标Ingress的kubernetes.io/ingress.class注解值改为traefik-internal,和Traefik配置的类名一致。

方案2:调整Traefik的启动参数

修改安装命令,将--providers.kubernetesingress.ingressclass的值改为traefik,匹配你原有Ingress的注解:

helm upgrade --install traefik --set dashboard.enabled=true --set rbac.enabled=true --set="service.externalIPs={1.2.3.4}" --set="additionalArguments={--api=true,--log.level=INFO,--providers.kubernetesingress.ingressclass=traefik,--serversTransport.insecureSkipVerify=true}" traefik/traefik

方案3:使用Helm Chart自带的IngressClass配置(推荐)

Traefik官方Helm Chart提供了更规范的IngressClass配置参数,替代在additionalArguments中硬编码:

helm upgrade --install traefik \
  --set dashboard.enabled=true \
  --set rbac.enabled=true \
  --set "service.externalIPs={1.2.3.4}" \
  --set ingressClass.name=traefik \
  --set ingressClass.enabled=true \
  --set "additionalArguments={--api=true,--log.level=INFO,--serversTransport.insecureSkipVerify=true}" \
  traefik/traefik

这个配置会自动创建名为traefik的IngressClass资源,同时让Traefik识别关联该类的Ingress,以及带有kubernetes.io/ingress.class: traefik注解的Ingress(兼容旧方式)。

补充说明

Traefik 2.x版本开始逐步推进IngressClass资源的使用,取代传统的注解方式,但仍保留对注解的兼容——前提是Traefik配置的Ingress类名和注解值一致。你之前的旧版本Traefik可能没有严格限制Ingress类的匹配,或者你当时的启动参数和现在不同,导致升级后出现匹配问题。

内容的提问来源于stack exchange,提问作者soapergem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 00:15:00