제가 이해한 바로는,
Metallb는 외부에 노출될 수 있는 서비스에 IP 주소를 할당하는 로드 밸런서입니다.
Nginx Ingress는 일반 nginx와 동일하지만 kubernetes에 상주하며 다른 경로에 대한 라우팅을 제공합니다.
제 질문은 Nginx Ingress가 있는 경우 왜 Metallb가 필요한가요?입니다. nginx 수신은 포트 80/443을 공개적으로 노출하므로 이를 사용하여 필요한 서비스로 라우팅할 수 있습니다.
감사합니다.
답변1
별도의 문제를 해결하므로 둘 다 필요합니다.
MetalLB는 클러스터 외부로부터 요청을 수신하고 클러스터의 로드 밸런서 전체에서 균형을 유지합니다.
Nginx는 클러스터 외부로부터 요청을 수신하여 노드 간에 균형을 유지합니다.
보다https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#a-pure-software-solution-metallb자세한 내용은.
MetalLB가 없으면 베어메탈의 nginx 수신 서비스는 pending
할당된 IP가 없기 때문에 상태를 유지합니다. MetalLB는 nginx에 외부 IP를 할당하는 작업을 수행합니다.
Nginx가 없으면 모든 클라이언트에서 TLS 종료를 수행해야 하는데 이는 일반적으로 권장되지 않습니다.
그것을 보는 또 다른 방법:
- nginx 수신이 유형을 처리합니다.
Ingress
- metallb가 유형을 처리합니다.
LoadBalancer
혼란은 위의 작업이 근본적으로 다르지만 종종 "로드 밸런서"에 의해 수행된다는 사실에서 비롯될 수 있습니다.
클라우드에도 동일하게 적용됩니다. TLS 종료 및 기타 사항을 처리하려면 수신을 배포해야 하며 공급자는 인프라에 로드 밸런서를 자동으로 생성합니다.