Page 43 -
P. 43

19.5          kube-controller-manager
                                                              K ubernetes  P erfect  G uide







                    kube-controller-manager는 다양한 컨트롤러를 실행하는 구성 요소다. 디플로이먼트 컨트롤
                    러나 레플리카셋 컨트롤러에서는 디플로이먼트나 레플리카셋 상태를 모니터링하면서 필요에 따
                    라 레플리카셋이나 파드를 생성한다. 예를 들어, 레플리카셋 요구 파드 수(Desired)가 3, 현재 기
                    동 중인 파드 수(Running)가 1인 경우에는 부족한 두 개의 파드를 PodTemplate을 사용하여 생
                    성한다. 이때 kube-controller-manager는 kubectl 명령어로 등록할 때와 마찬가지로 파드만

                    등록하고, 실제 스케줄링은 kube-scheduler가 한다. 이외에도 노드 상태를 모니터링하는 노드
                    컨트롤러(Node Controller)나 서비스 어카운트 토큰을 생성하는 서비스 어카운트와 토큰 컨트롤러
                    등의 다양한 컨트롤러가 하나의 바이너리로 합쳐져 동작하고 있다. 각종 컨트롤러는 옵션에 따라

                    활성화/비활성화하는 것이 가능하다.
                    kube-controller-manager도 리더 선출 구조를 가지고 있어 한 대만 리더가 되어 기록함으로써
                    이중화를 할 수 있다.






                    19.6          kubelet                     K ubernetes  P erfect  G uide          19








                    kubelet은 각 쿠버네티스 노드에서 동작하는 구성 요소다. 도커 등의 컨테이너 런타임과 연계하                            쿠버네티스 아키텍처의 이해
                    여 실제 컨테이너에 대한 기동과 정지 등을 관리한다. kube-apiserver를 통해 파드가 등록된 후
                    kube-scheduler에 의해 해당 파드가 기동되는 노드가 결정되면 kubelet은 그것을 감지하고 자
                    신의 노드에서 기동해야 하는 컨테이너를 기동한다.

                    기본적으로는 이런 순서로 컨테이너를 기동시키지만, 자신의 노드에 정적으로 기동시키고 싶은
                    컨테이너가 있다면 노드의 특정 경로에 매니페스트를 배치하여 kube-scheduler에 의존하지 않
                                                                              2
                    고 항상 자신의 노드에 기동시키는 것도 가능하다(스태틱 파드(Static Pod) ). 예를 들어 kube-




                    2  https://kubernetes.io/ko/docs/tasks/configure-pod-container/static-pod/

                                                                                                  797





     쿠버네티스_04.indd   797                                                                     2021-07-20   오후 1:34:56
   38   39   40   41   42   43   44   45