저는 Kubernetes를 배우고 있으며 현재 고 가용성에 깊이 관여하고 있으며 로컬 (또는 원격) 등의 고 가용성 제어 플레인 (API 서버, 컨트롤러, 스케줄러)을 고 가용성으로 설정할 수 있음을 알고 있습니다. 미니언 세트 (Kubernetes 자체를 통해), 나는 아직도이 개념 서비스가 어디에 위치하는지 확신 할 수 없다.Kubernetes에서 서비스는 어디에서 살고 있습니까?
컨트롤 플레인에있는 경우 : 유용성이 높도록 설정할 수 있습니다.
특정 노드에 거주하는 경우 : 확인,하지만 다른 방법으로 노드가 다운되거나 사용할 수 없게되면 어떻게됩니까?
내가 알고 있듯이로드 밸런싱뿐 아니라 인터넷에 내 포드를 노출시키는 서비스가 필요합니다. 따라서 HA 서비스가 없기 때문에 (시스템의 다른 측면에서도 매우 유용 할 수도 있음에도 불구하고) 내 애플리케이션에 도달 할 수 없다는 위험이 있습니다.
좋아,하지만 kubernetes.io/docs/concepts/services-networking/service/...에 따르면 내 서비스에 대해 하나의 IP 주소를 요청할 수 있습니다. 이것은 내 이해에 따라 특정 노드에서 단 하나의 kube-proxy로 이어질 것입니다. 아니면 실제로 서비스의 레이블 선택기와 일치하는 노드에서 실행중인 모든 kube-proxy에 api-server에 매핑됩니까? –
Kube-proxy와 Kubelet은 Etcd의 모든 현재 상태를 저장하는 Kube-api Server와 통신합니다. 예를 들어, 우리는 kubelet의 도움을 받아 3 개의 다른 노드에서 실행중인 3 개의 포드를 가지고 있습니다. 이 모든 것들이 끝점을 가지고 있습니다. 이제 서비스 목록을 배포하는 경우 kube-proxy는 서비스 끝점이 IPTABLES 마술 인 포드 끝점과 정렬되어 있는지 확인합니다. Kube-proxy는 api-server와 통신하고 etcd를 업데이트합니다. –
Kube-proxy는 이름 대신 레이블을 사용하여 창을 찾습니다. 그러므로 셀렉터와 라벨은 k8의 강력한 요소입니다. 또한 Kube-proxy는 Kube-api 서버와 통신하여 포드의 상태 나 서비스 변경을 확인합니다. –