Page 42 -
P. 42

Kubelet은 노드 정보(spec.nodeName)가 할당되었으나 아직 기동하지 않은 파드가 있다면 기동시
               킨다(그림 19-4).

                  그림 19-4 kubelet의 동작
                                                          kubelet + kube-proxy
                 쿠버네티스 API에 등록된 리소스                   노드A      노드B      노드C
                 (etcd에 저장됨)

                  apiVersion: v1
                  kind: Pod
                  metadata:
                    name: sample-pod
                  spec:
                                                   파드 스케줄링
                    nodeName: ""
                    containers:                                      자기 노드에 할당되어 있으며
                    - name: nginx-container
                      image: nginx:1.16         로드 밸런서               기동되지 않은 파드를 기동





                                   데이터 스토어로
                                      사용
                                              kube-apiserver


               이처럼 쿠버네티스는 etcd와 kube-apiserver 이외의 모든 구성 요소가 kube-apiserver를 중심
               으로 분산 시스템으로 동작한다.






               19.4          kube-scheduler              K ubernetes  P erfect  G uide







               kube-scheduler는 앞에서 설명한 대로 기동할 노드 정보(spec.nodeName)가 할당되어 있지 않
               은 파드를 감지하여 kube-apiserver에 요청을 보내고 업데이트함으로써 스케줄링한다. 이때

               kube-scheduler는 각 쿠버네티스 노드 상태, 노드 어피니티나 인터파드 어피니티 등의 조건에
               부합하는지를 판단하여 기동할 노드를 결정한다.

               kube-scheduler는 리더 선출 방식으로 한 대만 리더가 되어 기록함으로써 이중화를 할 수 있다.




         796





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