Kube-Proxy

2023. 4. 8. 19:20Kubernetes

쿠버네티스 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