TIL

Kubernetes Controller Manager 정리 (CKA 대비)

하얀잔디 2026. 4. 27. 19:42

 

 

1. Controller Manager가 뭐냐

✦ 쿠버네티스의 자동 복구 담당

 

현재 상태(current state)랑
원하는 상태(desired state)를 비교해서 맞춰주는 역할

 

즉, 계속 감시하다가
문제 생기면 알아서 복구함

한 줄로 보면
→ 상태 유지 자동화 엔진

 


 

2. 어디에 있는거냐

Controller Manager는
Control Plane (Master Node) 에 있음


(1) kubeadm 환경 (시험 대부분)

→ Pod 형태로 실행됨

 

 

kubectl get pods -n kube-system
 

여기 보면 있음

kube-controller-manager-<node-name>
 

 


실제 위치 (매니페스트 파일)

 
/etc/kubernetes/manifests/kube-controller-manager.yaml
 

→ kubelet이 이 파일 보고 자동으로 Pod 띄움


(2) 바이너리 직접 실행 환경

 
ps -ef | grep controller-manager
 

이렇게 프로세스로 떠있음


3. 내부 구성 (컨트롤러 종류)

Controller Manager 안에는 여러 컨트롤러 있음

대표적으로

  • Node Controller
  • ReplicaSet Controller
  • Deployment Controller
  • Endpoint Controller
  • Namespace Controller
  • ServiceAccount Controller

포인트
→ 컨트롤러 여러 개 묶음이다


4. 동작 방식

흐름은 단순함

  1. kube-apiserver에서 상태 조회
  2. 원하는 상태랑 비교
  3. 다르면 수정
중요 포인트
→ 직접 노드 건드리는게 아니라
→ 항상 apiserver 통해서만 동작

 


5. Node Controller

노드 상태 감시 담당

노드 죽었을 때 처리 흐름

노드 응답 없음
→ NotReady 상태 변경
→ 일정 시간 대기
→ 복구 안되면 Pod 다른 노드로 이동
 

관련 옵션

 
--node-monitor-period=5s  // 5초마다 모니터
--node-monitor-grace-period=40s  //대기 
--pod-eviction-timeout=5m //다른노드로 바꾸는거
 

6. CKA에서 자주 나오는 포인트

✔ Controller Manager는 누구랑 통신하냐
→ kube-apiserver

✔ 역할이 뭐냐
→ desired state 유지

✔ 노드 죽으면 누가 처리하냐
→ Node Controller

✔ Pod 자동 복구는 누가 하냐
→ ReplicaSet / Deployment

 


“클러스터 상태를 자동으로 맞춰주는 운영자”