Pod 생성 과정
- 관리자가 kubectl 명령어로 Pod 생성을 요청한다.
- 요청은 API Server를 통해 Control-Plane에 전달된다.
- etcd에 저장된 메타데이터를 Scheduler에게 전달한다.
- Scheduler는 메타데이터를 읽어 Pod가 생성되기 적합한 Node를 선정한다.
- API Server를 통해 각 노드의 kubelet에 Pod 생성 명령을 전달한다.
- Node의 kubelet은 요청 받은 container image를 docker 등 container engine에게 생성하도록 전달한다.
- container engine에서는 image hub(registry 또는 repository)에 저장된 container image를 불러와(Pull) Node의 저장 공간에 저장한 후, Pod를 생성한다.
Pod 수 유지 과정
- Control-Plane의 Controller는 관리자가 요청한 Pod의 수가 유지되고 있는지 관찰한다(watch).
만약, 관리자가 요청한 Pod의 수량이 2개라면, 현재 2개의 Pod가 실행 중인지 체크한다.
- Pod의 수가 요청한 수보다 부족한 경우, API Server에게 한 개의 Pod를 추가 생성할 것을 요청한다.
- etcd에 저장된 메타데이터가 scheduler에게 전달된다.
- scheduler는 부족한 Pod를 생성하기 적합한 Node를 선정한다.
- API Server를 통해 해당 Node의 kubelet에 Pod 생성을 요청한다.
- Node의 kubelet은 요청 받은 container image를 docker 등 container engine에게 생성하도록 전달한다.
- container engine은 image hub에서 container image를 불러와 Node의 저장 공간에 저장한 후, Pod를 생성한다.