kubespray|ipvs|nginx|ingress : kube_proxy_mode: ipvs | nginx ingress crashlooping アドレスは既に使用されています

kubespray|ipvs|nginx|ingress : kube_proxy_mode: ipvs | nginx ingress crashlooping アドレスは既に使用されています

kubesprayでデプロイされたクラスターテストのipvs構成では、inventory/group_vars/k8s-cluster/k8s-cluster.ymlのファイル構成オプションにプロキシモードが設定されています。

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

ポート 80 と 443 を取得する kube-proxy を変更するために私が見逃したオプションがあるのでしょうか、それとも私が見落とした ipvs を使用したイングレスの実行をサポートするために必要なオプションがあるのでしょうか。

答え1

注: nginx-ingressのインストールはHelm Chart経由で行われます

解決:

外部 IP を使用した ipvs モードで kube-proxy リスナーが開かれました

外部IPの配列、つまりcontroller.service.externalIPs[0]を削除すると、そのモードはオフになります。

関連情報