Kubernetes

[Kubernetes] Kube Controller Manager

thdwldud 2026. 6. 8. 11:17
728x90
반응형

해당 내용은 Udemy의 Certified Kubernetes Administrator(CKA) with Practice Tests 강의를 공부한 내용입니다.

 

Certified Kubernetes Administrator (CKA) with Practice Tests

<p><strong>CKA Certification Course – Certified Kubernetes Administrator</strong></p><p>Kubernetes is one of the highest trending technology in Cloud Computing as of today. Kubernetes had the fastest growth in job searches, over 173% from a year before,

www.udemy.com

 

Kubernetes에서 Controller는 조직의 “부서”처럼 각각 특정 역할을 담당

예시:

  • Node 상태를 감시하는 Controller
  • Pod 개수를 유지하는 Controller

→ 모든 Controller는 현재 상태를 계속 관찰하면서 원하는 상태(Desired State)를 유지하도록 동작

 

Node Controller 예시

Node Controller는 다음과 같이 동작:

  • 5초마다 Node 상태 확인 (API Server 통해)
  • Heartbeat 없으면 즉시 장애 처리하지 않음

타임라인:

  1. 40초 동안 응답 없으면 “의심 상태”
  2. 이후 약 5분 동안 복구 대기
  3. 복구 실패 시:
    • 해당 Node → NotReady
    • Pod → 다른 Node로 재배치

정상 상태

kubectl get nodes
worker-1   Ready
worker-2   Ready

장애 발생 시

worker-1   Ready
worker-2   NotReady

 

Replication Controller

또 다른 중요한 Controller:

  • 원하는 Pod 개수 유지
  • 부족하면 자동 생성

→ Kubernetes의 자동 복구(Self-healing) 핵심 기능

 

Controller의 역할

다음 모든 리소스는 Controller 기반으로 동작:

  • Deployment
  • Service
  • Namespace
  • Persistent Volume

→ Controller = Kubernetes 동작의 핵심 로직

 

Controller Manager의 구조

여러 Controller들은 각각 따로 실행되는 것이 아니라,

Kube Controller Manager 하나의 프로세스로 묶여서 실행됨

즉:

  • Controller Manager 실행 = 모든 Controller 실행

 

설치 및 구성

다운로드

wget https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kube-controller-manager

서비스 설정 예시

ExecStart=/usr/local/bin/kube-controller-manager \
--cluster-cidr=10.200.0.0/16 \
--cluster-name=kubernetes \
--kubeconfig=/var/lib/kubernetes/kube-controller-manager.kubeconfig \
--leader-elect=true \
--service-cluster-ip-range=10.32.0.0/24

주요 설정 옵션

  • --leader-elect=true : HA 환경에서 리더 선출
  • --cluster-cidr : Pod 네트워크 범위
  • --service-cluster-ip-range : Service IP 범위

Controller 선택 설정

  • --controllers=* : 기본적으로 모든 Controller 활성화 됨
  • --controllers=*,-tokencleaner : 특정 Controller 비활성화
  • 의미 : 
    • * : 전체 활성화
    • tokencleaner : 해당 Controller 비활성화

 

실행 확인 방법

1. 프로세스 확인

ps -aux | grep kube-controller-manager

2. kubeadm 환경

kube-system namespace에서 Pod로 실행

kubectl get pods-n kube-system

3. 매니페스트 확인

/etc/kubernetes/manifests

 

핵심 개념 정리

  • Controller = 상태 감시 + 자동 조정
  • Controller Manager = 모든 Controller 실행 주체
  • Desired State 유지하는 핵심 컴포넌트
728x90
반응형

'Kubernetes' 카테고리의 다른 글

[Kubernetes] Kube Scheduler  (0) 2026.06.14
[Kubernetes] Kube-API Server  (0) 2026.06.01
[Kubernetes] ETCD in Kubernetes  (0) 2026.05.25
[Kubernetes] ETCD For Beginners  (0) 2026.05.18
[Kubernetes] Docker vs ContainerD  (0) 2026.05.09