在 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 入口崩潰循環
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 進行的
解決:
具有外部ip的ipvs模式開啟了kube-proxy監聽器
刪除externalIPs數組,即controller.service.externalIPs[0]會關閉該模式