본문 바로가기

Container/Kubernetes

[K8S] Kube-controller-manager

kube-controller-manager는 쿠버네티스의 컨트롤러(controller)들을 관리하고 실행하는 핵심 구성 요소이다.

controller는 쿠버네티스 클러스터에서 원하는 상태(desired state)와 실제 상태(actual state)가 일치하도록 보장하는 역할을 한다.

 

역할과 기능

1. 컨트롤러 통합 실행: 쿠버네티스에서 여러 컨트롤러를 실행하며, 각각의 컨트롤러는 특정 리소스의 상태를 모니터링하고 이를 조정합니다.

2. 상태 일치 보장: 선언정 방식 동작, 사용자가 원하는 상태를 정의하면, 컨트롤러가 클러스터의 실제 상태를 지속적으로 관찰하고 수정하여 원하는 상태를 유지한다.

3. 자율 동작: kube-controller-manager는 자동으로 상태를 조정하며, 클러스터 관리자가 개입하지 않아도 작업을 수행한다.

 

kube-controller-manager는 여러 컨트롤러를 포함한다. 

(1) Node Controller

  • 기능:
    • 클러스터의 노드 상태를 모니터링
    • 노드가 응답하지 않으면, 일정 시간 이후 해당 노드에서 실행 중인 파드를 다른 노드로 이동(evict)

(2) Replication Controller

  • 기능:
    • 파드의 개수가 사용자가 정의한 복제본 수(replicas)와 일치하도록 보장
    • 파드가 삭제되거나 실패하면 새로운 파드를 생성

(3) Deployment Controller

  • 기능:
    • 애플리케이션의 디플로이먼트를 관리
    • 업데이트, 롤백, 스케일링 작업 처리

(4) Job Controller

  • 기능:
    • 일회성 작업(Job) 관리
    • 작업이 완료되거나 실패 상태로 끝날 때까지 실행 상태 모니터링

(5) Service Account Controller

  • 기능:
    • 각 네임스페이스에 기본 서비스 계정(Service Account)을 생성
    • 파드가 API 서버와 통신할 때 사용할 인증 토큰 관리

(6) Endpoints Controller

  • 기능:
    • 각 서비스와 연결된 파드의 네트워크 엔드포인트 관리
    • 서비스와 관련된 파드 목록을 자동으로 업데이트

(7) Persistent Volume Controller

  • 기능:
    • PersistentVolume(PV)과 PersistentVolumeClaim(PVC)를 연결
    • PVC 요청에 적합한 PV를 자동으로 바인딩(binding)

(8) Horizontal Pod Autoscaler Controller

  • 기능:
    • 애플리케이션의 리소스 사용량(CPU, 메모리 등)을 기반으로 파드를 자동으로 스케일링

(9) Garbage Collector Controller

  • 기능:
    • 더 이상 필요하지 않은 리소스를 자동으로 삭제
    • 예: 삭제된 디플로이먼트와 연결된 파드 제거

(10) CronJob Controller

  • 기능:
    • 정해진 일정에 따라 주기적으로 작업(CronJob) 실행

 

kube-controller-manager와 기타 컴포넌트의 관계

  • kube-apiserver:
    • kube-controller-manager는 kube-apiserver와 통신하여 클러스터 상태 정보를 확인하고 업데이트한다.
  • etcd:
    • 클러스터 상태 데이터는 kube-apiserver를 통해 etcd에 저장된다.
    • kube-controller-manager는 직접적으로 etcd와 상호작용하지 않는다.
  • 노드 및 파드:
    • 컨트롤러는 노드와 파드의 상태를 관리하고, 스케일링, 복제 등의 작업을 수행한다.
반응형

'Container > Kubernetes' 카테고리의 다른 글

[K8S] Deployment  (0) 2024.12.31
[K8S] kube-proxy  (0) 2024.12.28
[K8S] Kube-API Server  (0) 2024.12.24
[K8S] ETCD  (1) 2024.12.24
[K8S] 컨테이너 런타임  (0) 2024.12.24