kubespray|ipvs|nginx|ingress:kube_proxy_mode:ipvs|nginx ingress crashlooping 地址已被使用

kubespray|ipvs|nginx|ingress:kube_proxy_mode:ipvs|nginx ingress crashlooping 地址已被使用

在 kubespray 部署的集群中,使用 inventory/group_vars/k8s-cluster/k8s-cluster.yml 中的文件配置选项测试 ipvs 配置,设置了代理模式

kube_proxy_mode: ipvs

在 ipvs 集群上,kube-proxy 在端口 80 和 443 上运行

netstat -tunlp|grep proxy
tcp        0      0 10.144.104.83:80        0.0.0.0:*               LISTEN      19455/kube-proxy
tcp        0      0 10.144.104.83:443       0.0.0.0:*               LISTEN      19455/kube-proxy
tcp        0      0 127.0.0.1:10249         0.0.0.0:*               LISTEN      19455/kube-proxy

nginx ingress 正在崩溃循环

bind() to 0.0.0.0:443 failed (98: Address already in use)

在集群上,除了代理模式 == iptables 之外,部署方式相同

netstat -tunlp|grep 443
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      5367/nginx: master
tcp6       0      0 :::443                  :::*                    LISTEN      5367/nginx: master

netstat -tunlp|grep proxy
tcp        0      0 127.0.0.1:10249         0.0.0.0:*               LISTEN      28827/kube-proxy

是否有我错过的选项来改变 kube-proxy 获取端口 80 和 443,或者是否有需要的选项来支持运行带有 ipvs 的入口,我忽略了。

答案1

注意:nginx-ingress 安装是通过 helm chart 进行的

解决:

ipvs 模式用外部 ip 开启了 kube-proxy 监听器

删除 externalIPs 数组,即 controller.service.externalIPs[0] 将关闭该模式

相关内容