背景:今天用rke部署k8s时发现nginx-ingress-controller报错了,Port 18080 is already in use. Please check the flag --status-port,报错图如下:

问题原因:经过排查发现是有一个节点的静态服务器的服务占用了nginx-ingress-controller的18080端口,导致启动不了。

解决方法:静态服务器有人在使用不能动,只能修改ingress的端口了,在ingress-nginx的源码中和上述提示中找到有--status-port的参数,先手动添加此参数看看

手动修改

kubectl edit ds -ningress-nginx nginx-ingress-controller

添加完--status-port重启pod再查看nginx-ingress-controller的状态

至此,nginx-ingress-controller已启动。

rke部署修改

在官方文档中找到一个关于修改ingress环境变量的选项

在cluster.yml中添加这个字段就能在部署的时候自动在nginx-ingress-controller添加--status-port参数了

ingress:
  extra_args:
    status-port: 18081

参考文档:

K8s Ingress Controllers | Rancher文档


https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/cli-arguments.md

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐