仅使用Fargate的EKS集群中ingress-nginx绑定8443端口报地址占用错误
EKS Fargate环境ingress-nginx 8443端口占用问题解决指南
核心故障原因
- Helm Values配置语法错误:
- 你提交的values中
controller下重复定义了service字段,YAML中后定义的同名字段会覆盖前置配置,导致你预先设置的端口映射规则完全未生效 - 配置层级完全错误:
allowPrivilegeEscalation属于controller.securityContext配置项,livenessProbe、readinessProbe是controller下的一级配置项,你全部错误放置到了controller.image字段下,这些核心配置全部未被应用,导致ingress-nginx启动逻辑异常,出现进程重复绑定端口的问题
- 你提交的values中
- 可选关联原因:如果你的EKS集群未开启IPv6双栈,ingress-nginx默认同时监听IPv4、IPv6端口的逻辑会导致绑定冲突,你的netstat输出也显示8443仅监听了IPv6地址,未监听IPv4的0.0.0.0:8443,与报错信息完全匹配
- 排除AWS底层配置问题:VPC、子网、安全组属于集群外部网络配置,只会影响集群南北向流量连通性,不可能导致容器内部端口被占用,不需要在这个方向浪费排查时间
修复方案
1. 修正Helm Values配置
将你的values调整为如下正确结构,合并重复字段、修正配置层级:
controller: extraArgs: http-port: 8080 https-port: 8443 # 未开启IPv6双栈时添加以下参数,禁用IPv6监听 enable-ipv6: false containerPort: http: 8080 https: 8443 securityContext: allowPrivilegeEscalation: false livenessProbe: initialDelaySeconds: 60 readinessProbe: initialDelaySeconds: 60 service: ports: http: 80 https: 443 targetPorts: http: 8080 https: 8443 annotations: service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
2. 重新部署ingress-nginx
执行以下命令升级已有release,或者卸载后重新安装:
# 升级部署 helm upgrade -n ingress ingress-nginx ingress-nginx/ingress-nginx -f values.yaml # 如需重装先执行卸载 helm uninstall -n ingress ingress-nginx
3. 可选验证步骤
无需获取容器root权限,直接执行以下命令查看nginx配置确认端口规则:
kubectl exec -n ingress <pod-name> -- cat /etc/nginx/nginx.conf | grep listen
内容的提问来源于stack exchange,提问作者timblaktu
相关产品推荐
相关产品推荐

