원리
-
K8S Pod Networking과 Weave CNI 정리K8S 2021. 7. 7. 00:24
클러스터 내에서 Pod간의 네트워킹은 다음을 만족해야 한다. - 모든 포드는 ip 주소를 가져야 한다. - 같은 노드의 포드끼리 통신가능해야한다. - 모든 포드는 NAT없이 다른 노드의 포드들과 통신 가능해야 한다. 위 조건을 만족하기 위해서는 다음과 같은 네트워크 구성을 따라야 한다. 1. 같은 노드의 포드간 통신 1) 포드를 연결할 브릿지 만들어 준다. 2) 각 포드에 ip 할당한다. 3) 브릿지와 각 포드의 인터페이스를 연결한다. 같은 노드의 포드간 통신은 브릿지를 통해 이루어진다. 2. 다른 노드 간의 포드 통신 각 노드의 라우팅 규칙에 게이트웨이 경로를 추가한다. 또는 노드를 연결하는 라우터를 두어서 라우팅 규칙을 추가한다. 게이트 웨이 경로를 추가함으로써 다른..
-
K8S 아키텍처 정리 (Kube-scheduler, Kubelet, Kube-proxy)K8S 2021. 6. 2. 22:06
1. Kube-Scheduler 스케줄러는 어떤 포드가 어떤 노드로 갈지를 결정하는 등 스케줄을 짠다. 하지만 스케줄을 짤 뿐, 실제로 노드 위에 포드를 놓지는 않는다. (노드 위에 포드를 할당하는 것은 Kubelet의 역할) 스케줄러는 오직 포드를 어떤 노드로 옮길 것인지만 결정한다. 그렇다면 스케줄러는 어떻게 적당한 노드를 선택하고 포드를 옮길까? 스케줄러는 먼저 포드들을 관찰하면서 포드가 할당되기 좋은 최적의 노드를 결정한다. 예를 들어 다음과 같이 CPU 10을 필요로 하는 포드를 CPU 4, CPU 4, CPU 12, CPU 16를 리소스를 갖는 노드에 배포한다고 해보자. 이 때 다음과 같은 과정을 통해 최적의 노드를 결정한다. 1) Filter Nodes 해당 포드에 적합하지 않는 노드는 먼저..