728x90

쿠버네티스 아키텍처는 크게 마스터 노드(master node)와 워커 노드(worker node)로 구분됨

마스터노드

마스터 노드는 쿠버네티스 클러스터의 컨트롤플레인(control plane)을 구성

주요 구성요소는 다음과 같음

  1. API 서버 (kube-apiserver)
    • 클러스터의 중심 통신 허브로, 모든 관리 명령이 API 서버를 통해 수행됨
    • 쿠버네티스 API를 통해 클러스터와 통신함
  2. 클러스터 저장소 (etcd)
    • 모든 클러스터 데이터를 저장하는 분산 키-값 저장소
    • 클러스터의 상태를 유지하며, 고가용성을 보장하기 위해 사용됨
  3. 컨트롤러 매니저 (kube-controller-manager)
    • 다양한 컨트롤러를 실행하여 클러스터 상태를 원하는 상태로 유지함
    • 예를 들어, 노드가 실패하면 해당 노드의 작업을 다른 노드로 이전
  4. 스케줄러 (kube-scheduler)
    • 새로 생성된 파드를 적절한 워커 노드에 할당하는 역할을 함
    • 리소스 요구 사항과 기타 제약 조건을 고려하여 배치 결정을 내림

워커 노드

워커 노드는 실제 컨테이너화된 애플리케이션을 실행하는 서버

주요 구성요소는 다음과 같음

  1. kubelet
    • 각 노드에서 실행되며, 마스터 노드의 지시에 따라 컨테이너를 시작하고 관리함
    • 파드의 건강 상태를 모니터링하고 보고함
  2. 컨테이너 런타임
    • 컨테이너를 실행하는 역할을 함
    • Docker, containerd, CRI-O 등이 있음
  3. 쿠브 프록시 (kube-proxy)
    • 노드의 네트워크 프록시 및 로드 밸런서 역할을 하며, 파드 간 네트워크 통신을 가능하게 함

동작 순서

쿠버네티스 클러스터는 다음과 같은 방식으로 동작함

  • 사용자 또는 자동화 도구가 API 서버에 명령을 제출
  • API 서버는 이 명령을 etcd에 저장하고, 상태를 갱신함
  • 컨트롤러 매니저가 변경 사항을 감지하고, 필요한 조치를 취함 (예: 파드 재배치)
  • 스케줄러가 새 파드를 적절한 워커 노드에 할당함
  • 워커 노드의 kubelet이 API 서버로부터 파드 생성 명령을 받고, 컨테이너 런타임을 통해 컨테이너를 시작함
728x90

'Kubernetes' 카테고리의 다른 글

Multi-container pod 패턴  (0) 2024.05.07
쿠버네티스 Config 파일 여러 개 관리  (0) 2024.04.30
CNI란?  (0) 2024.04.28
쿠버네티스 소개  (0) 2024.04.28
쿠버네티스와 마이크로서비스 아키텍처  (0) 2024.04.07

+ Recent posts