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