0

의 모든 인스턴스를 얻을 수없는, 아래의 구글 클라우드로드 밸런서의 영구 상태입니다 건강한 노드는 nginx-ingress-controller pods를 실행하는 노드입니다. 이 화면에서 잘 보이지 않는 것 외에도 모든 것이 잘 작동합니다. 같은 나쁜 통보가 파운드에 나타납니다 왜 것 궁금 ', 임입니다GKE의 nginx의 파운드 건강 검사/nginx를 <code>nginx-ingress-controller:0.9.0</code>를 사용하여 "건강한"상태

여기 the service/deployment

사용의

오전 조금이 일이 어떻게 작동하는지에 걸쳐 길을 잃지; 일을 올바르게하는 법에 대한 경험이있는 피드백을 얻거나 (모든 노드에서 초록불을 켜는 것), 또는 그것이 '공식'gcloud l7 것을 사용하지 않는 단점인지 다시 한번 확인하십시오.

+1

nginx 입구 컨트롤러 및 해당 서비스에 대한 매니페스트를 포함 할 수 있습니까? – coreypobrien

+0

xx; 위의 링크를 추가했습니다. 기본적으로 https://github.com/kubernetes/ingress-nginx/tree/master/deploy/provider에서 제공된 것입니다. 다른 네임 스페이스를 사용하지 않고 입구에서가 아닌 서비스에서 정적 IP를 설정합니다. – Ben

답변

2

Service를 사용 중입니다. service.beta.kubernetes.io/external-traffic: OnlyLocal 주석. 이렇게하면 해당 서비스의 NodePort에 도착하는 트래픽이 절대로 다른 노드의 Pod이되지 않도록 구성됩니다. Deployment에는 1 개의 복제본 만 있기 때문에 트래픽을 수신하는 유일한 노드는 1 포드가 실행중인 노드입니다. 그 주석을 사용

당신이 당신의 Deployment 2 복제본을 확장 할 경우, 2 개 노드가 건강 할 것 등

는 추가 네트워크 홉을 도입하지 않는 있도록 구성을 권장합니다.

+0

ok 나는 예상 한 결과를 얻었다. 그러나 나는 일이 어떻게 진행되는지를 볼 수 없기 때문에 여전히 혼란 스럽다. nginx는 다른 서비스로 프록시를 보내고 있습니다. 따라서이 부분은 특정 노드에서만 발생합니다. 배포/포드가있는 곳 어디에서나 특정 노드에 연결되는 방식을 얻지는 못합니다. 배치/포드에 단일 복제본이있는 경우 반드시 해당 노드에있을 필요는 없습니다. 트래픽이 먼저 수신되었습니다. – Ben

+1

Nginx는 트래픽을 먼저 받고 있지만 Ingress 구성에 따라 모든 노드의 트래픽을 전달할 수 있습니다. – coreypobrien