
1. kubectl 을 통해 Deployment 생성 명령이 들어옴. 생성 명령에 대한 내용이 API server에 등록됨 (이후 etcd까지 감)
2&3. API server를 watch하고 있던 deployment controller가 API server에 등록된 Deployment 생성 선언 및 스펙을 감지하고 Replicaset을 만들라는 요청을 API server에 보냄. (1과 마찬가지로 API server에 요청이 등록됨)
4&5. API server를 watch하고 있던 Replicaset controller가 이를 감지하고 Replicaset에 명시되어 있는 만큼 Pod를 생성함. (Selector 와 label)
6&7. 생성된 Pod를 배치하기 위한 스케쥴링을 진행함.(filtering to make feasible node set & scoring to choose highst viability feasible node) 노드 선택이 완료되면 해당 노드에 대한 내용을 pod specification에 추가함. 그리고 이 내용은 api server에 적용되고, etcd에 저장됨
8&9&10. 스케줄링을 통해 node가 추가된 pod가 api server에 적용되면, 각 노드의 kubelet에서 이를 watch하다가 본인임을 확인시 pod 생성을 실행한다. pod 내부에 생성할 컨테이너를 생성하기 위해 container runtime에 명령을 내린다.
'IT 일기 > Kubernetes' 카테고리의 다른 글
쿠버네티스 테인트, 톨러레이션 / Taint와 Toleration (0) | 2023.04.11 |
---|---|
쿠버네티스 스케쥴러 스케쥴링 과정 (0) | 2023.04.10 |