ORCHESTRATION

오케스트레이션 상태 조정

Kubernetes 같은 오케스트레이터는 배포 선언을 보고 스케줄링, health probe, rollout, service discovery를 반복해 장애가 난 컨테이너를 다시 맞춘다.

01

선언 적용

Deployment가 replicas, image, resource request/limit을 원하는 상태로 기록한다.

spec
02

스케줄링

scheduler가 자원 여유, affinity, taint/toleration을 보고 노드를 고른다.

placement
03

상태 관측

kubelet과 controller가 Pod 실행 상태와 probe 결과를 계속 읽는다.

observe
04

복구/전환

실패 Pod를 재시작하고 rollout은 readiness를 보며 새 버전으로 교체한다.

reconcile
readiness
트래픽을 받을 준비 여부 실패하면 Service endpoint에서 빠져 배포 중 오류 노출을 줄인다.
트래픽 통과 기준
liveness
프로세스가 복구 불가능하게 멈췄는지 판단 실패하면 컨테이너를 재시작하지만 잘못 설정하면 루프가 생긴다.
restart trigger
rollout
새 버전 점진 교체 maxSurge/maxUnavailable과 readiness가 무중단 여부를 좌우한다.
deployment strategy
service discovery
Pod IP 변화 숨기기 Service와 DNS가 교체되는 Pod 뒤에서 안정된 접근점을 제공한다.
stable name

장애 대응 질문

왜 배치 안 되나 request가 노드 여유보다 큰지, taint/toleration 조건이 맞는지 본다.
왜 재시작하나 liveness 실패인지 OOMKilled인지 exit code와 event를 구분한다.
왜 트래픽 안 가나 readiness, Service selector, endpoint 생성 여부를 순서대로 확인한다.