Nginx Ingress Controller配置端口81无效,仍监听80问题排查
问题分析与解决
你遇到的问题是因为stable/nginx-ingress Helm Chart的Service端口配置结构错误,导致自定义的81端口没有被正确应用,Service仍然使用默认的80端口。
具体原因
你的values.yaml中controller.service.ports的写法不符合该Chart的参数规范。旧版stable/nginx-ingress Chart要求端口配置需要嵌套port字段,而不是直接赋值端口号。
修正后的values.yaml配置片段
修改controller.service部分的端口配置:
controller: service: type : "LoadBalancer" enableHttp : true enableHttps: false ports: http: port: 81 # 改为嵌套的port字段 targetPorts: http: 81 # 其他注解保持不变
操作步骤
- 保存修正后的values.devops.yaml文件
- 重新执行Helm升级命令,确保配置覆盖生效:
$ helm upgrade --install --namespace=default -f values.devops.yaml nic-default stable/nginx-ingress
- 等待部署完成后,再次查询Service验证端口:
$ kubectl get svc nic-default-nginx-ingress
额外验证点
- 检查控制器Pod的容器端口是否为81:
$ kubectl get pods -l app=nginx-ingress,component=controller -o jsonpath='{.items[*].spec.containers[*].ports}'
- 确认Nginx控制器的启动参数中包含
--http=81,验证容器监听端口:
$ kubectl exec -it <pod-name> -- nginx -T | grep listen
内容的提问来源于stack exchange,提问作者zerobit
相关产品推荐
相关产品推荐

