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

如何使用Helm在EKS上安装Traefik并使用ALB替代ELB

核心配置问题

  • 注解配置对象错误:你使用的alb.ingress.kubernetes.io/*系列注解是给Kubernetes原生Ingress资源识别的,你将它写到了Traefik自定义的IngressRoute CRD资源上,aws-load-balancer-controller不会识别IngressRoute资源,自然不会生成ALB。
  • Traefik服务默认配置问题:Traefik官方Helm Chart默认的Service类型为LoadBalancer,AWS默认会为该类服务自动创建ELB,这就是你当前看到的ELB来源。

调整步骤

步骤1:修改values.yaml配置

你需要调整两个核心配置块:将Traefik服务改为ClusterIP类型,新增原生Ingress资源配置并加上ALB相关注解,修改后的示例如下:

# 原有ingressClass配置保留
ingressClass:
  enabled: true
  isDefaultClass: false
  fallbackApiVersion: ""

# 修改Service配置,关闭默认LoadBalancer
service:
  type: ClusterIP

# 新增原生K8s Ingress配置,供aws-load-balancer-controller识别
ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
    # 多SSL证书配置,替换为你ACM中对应证书的ARN即可
    alb.ingress.kubernetes.io/certificate-arn: "arn:aws:acm:eu-west-1:你的AWS账号ID:cert/证书1ID,arn:aws:acm:eu-west-1:你的AWS账号ID:cert/证书2ID"
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]'
    # 可选配置:自动将HTTP请求跳转至HTTPS
    alb.ingress.kubernetes.io/ssl-redirect: "443"
  paths:
    - path: /
      pathType: Prefix
  # 可按需添加你需要匹配的域名
  hosts:
    - host: "*.yourdomain.com"
      paths:
        - path: /
          pathType: Prefix

# 原有dashboard的IngressRoute配置可保留,不影响ALB生成
ingressRoute:
  dashboard:
    enabled: true
    labels: {}

步骤2:重新安装Traefik

先卸载已部署的Traefik实例:

helm uninstall traefik

使用修改后的配置重新安装:

helm install traefik traefik/traefik --values values.yaml  --set="additionalArguments={--log.level=DEBUG}"

步骤3:验证资源

安装完成后等待1-2分钟,执行如下命令验证,此时可以看到traefik ingress的ADDRESS字段显示ALB域名,Traefik的Service类型变为ClusterIP:

kubectl get ingress
kubectl get svc traefik

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:27:02