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 수신이 충돌 루핑 중입니다.

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을 변경하기 위해 놓친 옵션이 있습니까? 아니면 제가 간과한 ipv로 수신 실행을 지원하는 데 필요한 옵션이 있습니까?

답변1

참고: nginx-ingress 설치는 helm 차트를 통해 이루어집니다.

해결:

외부 IP를 사용하는 ipvs 모드에서 kube-proxy 리스너가 열렸습니다.

externalIP 배열을 제거하면(예: Controller.service.externalIPs[0]) 해당 모드가 꺼집니다.

관련 정보