원하는 상태 저장
사용자가 Deployment YAML을 적용하면 replica 수, 이미지, selector가 API 서버와 etcd에 기록된다.
Deployment, ReplicaSet, Scheduler, kubelet은 API 서버의 원하는 상태와 노드의 실제 상태를 반복해서 맞춘다.
사용자가 Deployment YAML을 적용하면 replica 수, 이미지, selector가 API 서버와 etcd에 기록된다.
Deployment controller가 템플릿 해시를 기준으로 ReplicaSet을 만들고 필요한 Pod 개수를 계산한다.
스케줄러는 자원 요청, taint, affinity, topology 제약을 보고 아직 노드가 없는 Pod를 배치한다.
노드의 kubelet이 컨테이너 런타임에 이미지 풀과 실행을 요청하고 Pod 상태를 다시 보고한다.
readiness probe가 성공한 Pod만 EndpointSlice에 들어가 Service 뒤에서 요청을 받는다.
프로세스가 멈췄을 때 kubelet이 컨테이너를 재시작하지만, 느린 시작에는 startup probe와 구분해야 한다.
애플리케이션이 트래픽을 받을 준비가 되기 전에는 Service 엔드포인트에서 제외해 배포 중 오류를 줄인다.
CPU나 커스텀 메트릭을 기준으로 replica 수를 바꾸지만, readiness와 리소스 요청값이 부정확하면 흔들릴 수 있다.