Kube-Proxy
2023. 4. 8. 19:20ㆍKubernetes
쿠버네티스 cluster 안에서는
모든 pod는 다른 모든 pod에 닿을 수있다.
pod network 는 내부 가상 네트워크로 클러스터내의 모든 노드가 연결있다.
A 노드에 web application 이 있고,
B 노드에 DB 가 있다고 하자.
web app 은 pod의 IP 를 써서 접근한다.
하지만, pod의 ip 가 항상 똑같이 유지되는게 보장되진 않는다.
그래서 우리는 클러스터에 걸쳐 DB application 을 노출할 서비스를 생성한다.
그러면 web app 은 DB service 를 통해서 DBapp 접근할 수있다.
service 도 역시 ip 주소를 할당받는다.
서비스는 어떻게 ip 를 할당받을까?
서비스는 pod network 에 join 할수 없다. 가상 요소이기 때문이다.
가상이기 때문에 모든 pod 에서 접근가능하다.
Kube proxy 는 쿠버네티스 클러스터의 각 노드에서 실행한다.
kube proxy 의 일은 새로운 서비스를 찾는것이고,
새 서비스가 생성될때 마다 backend pod에
아래 규칙을 적용한다.
각 노드에 ip를 생성하는데 서비스와 pod에 각각 ip를 할당한다.
서비스의 ip 는 10.96.0.12 이고,
실제 pod의 ip 는 10.32.0.15이다.
wget https://storage.gooleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kube-proxy
#kubeadmin tool 로 셋팅했다면
kube-proxy는 각 노드에 pod 형태로 배포된다.
kubectl get pods -n kube-system 에서
kube-proxy-lzt6f
kube-proxy-zm5qd 이런식으로 보임
실제로는 DamonSet에 single pod 형태로 배포된다.
kubectl get daemonset -n kube-system
'Kubernetes' 카테고리의 다른 글
Pods with YAML (0) | 2023.04.09 |
---|---|
Recap -Pods (0) | 2023.04.09 |
Kubelet (0) | 2023.04.08 |
Kube-Scheduler (0) | 2023.04.08 |
Kube Controller Manager (0) | 2023.04.08 |