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

AWS EKS中Caddy LoadBalancer Service外部IP处于Pending状态求助

AWS EKS中Caddy LoadBalancer Service External IP一直Pending的问题

我是AWS新手,尝试把应用部署到AWS EKS集群,其他资源都创建正常,但Caddy Server的LoadBalancer Service始终无法获取External IP,一直处于Pending状态。执行kubectl describe service caddy得到如下输出:

名称:                     caddy
命名空间:                default
标签:                   app=caddy
注解:                    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: instance
                         service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
                         service.beta.kubernetes.io/aws-load-balancer-type: external
选择器:                 app=caddy
类型:                     LoadBalancer
IP族策略:         SingleStack
IP族:              IPv4
IP:                       10.100.4.149
IP列表:                      10.100.4.149
端口:                     http  80/TCP
目标端口:               80/TCP
节点端口:                 http  31064/TCP
端点:                192.168.26.17:80
端口:                     https  443/TCP
目标端口:               443/TCP
节点端口:                 https  30707/TCP
端点:                192.168.26.17:443
会话亲和性:         None
外部流量策略:  Cluster
事件:
  类型     原因                时长   来源                消息
  ----     ------                ----  ----                -------
  正常   正在确保负载均衡器  16m   service-controller  正在确保负载均衡器
  警告  构建模型失败      15m   service             构建模型失败,原因是WebIdentityErr: 无法获取凭证
由以下原因导致: InvalidIdentityToken: 令牌受众不正确
           状态码: 400, 请求ID: dd76289e-ca16-48e5-8985-3a4fc1b64f43
  警告  构建模型失败  7m49s  service  构建模型失败,原因是WebIdentityErr: 无法获取凭证
由以下原因导致: InvalidIdentityToken: 令牌受众不正确
  状态码: 400, 请求ID: 62ed516f-c505-4bc8-979f-74edc449217e

问题分析

从事件日志的错误信息可以明确,核心问题是Web身份令牌的受众(audience)不匹配,导致服务无法获取AWS凭证,进而无法创建对应的负载均衡器。

解决步骤

  • 检查EKS集群的IAM OIDC提供商配置
    1. 执行aws eks describe-cluster --name <你的集群名称> --query "cluster.identity.oidc.issuer"获取集群的OIDC issuer地址
    2. 登录IAM控制台,确认已创建对应OIDC提供商,且提供商的受众与上述issuer地址完全一致
  • 验证服务账户关联的IAM角色信任策略
    1. 找到Caddy使用的服务账户,执行kubectl get sa <服务账户名称> -o yaml查看eks.amazonaws.com/role-arn注解中的IAM角色ARN
    2. 进入IAM控制台查看该角色的信任策略,确保策略的Condition部分包含"StringEquals": {"oidc.eks.<区域>.amazonaws.com/id/<集群OIDC ID>:aud": "sts.amazonaws.com"},同时确认账户ID或组织ID配置正确
  • 确认令牌受众设置
    如果是手动配置的Web身份令牌,确保令牌的aud字段值为sts.amazonaws.com,这是AWS STS服务要求的标准受众
  • 重新触发负载均衡器创建
    删除当前的Caddy Service,执行kubectl delete service caddy,然后重新应用Service配置文件,让控制器重新尝试创建负载均衡器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:01:08