DevOps/Kubernetes

[Kubernates] 쿠버네티스 작동 원리

ki1111m2 2023. 10. 13. 16:24

쿠버네티스 아키텍처

출처: 코드스테이츠

클러스터는 하나 이상의 제어판(Control Plane) 컴포넌트와 이와 연결된 몇 개의 워커 노드로 구성됨

 

 

워커 노드

출처: 코드스테이츠

kublet이라는 프로세스가 돌가가고 있는데, 이는 다른 노드와 서로 통신하거나 컨테이너를 실행하는 등 태스크를 실행할 수 있게 함

워커 안에는 한 개 이상의 컨테이너가 자리잡고 있음, 즉 워커 노드는 실제로 애플리케이션이 실행되고 있는 곳

컨테이너, 볼륨, 작동 정보 등을 파드(Pod)라고 부름

 

 

제어판(Control Palne)

출처: 코드스테이츠

관리를 위해 필요한 프로세스들이 존재하며, 클러스터가 잘 작동할 수 있게 도움

  • API 서버
    • 모든 클러스터 관리의 입구로서, 명령을 내릴 수 있는 관문
    • 쿠버네티스에서 제공되는 UI, CLI 등에서 클러스터 관리를 위해 명령을 내리면 API가 호출됨
  • 컨트롤러 매니저
    • 클러스터에서 무슨 일이 발생하는지 추적하는 역할
    • 컨테이너가 죽거나 재시작되었을 경우, 컨트롤러 매니저는 이를 알 수 있음
  • 스케쥴러
    • 서버(노드) 리소스를 바탕으로 파드가 노드에 배치되게 만드는 역할
    • 새로 생성된 컨테이너를 찾아 노드에 할당
  • ETCD 데이터베이스
    • key-value 저장소로 클러스터 관리에 필요한 모든 데이터를 저장하는 공간
    • 인프라를 원하는 상태로 만들기 위해 관리에 필요한 메타데이터와 정상 상태에 대한 snapshot 등을 저장하는 공간