Infra

[Kubernetes] 쿠버네티스 클러스터 구조

KMSEOP 2024. 3. 31. 17:32
728x90

K8S 구조

쿠버네티스는 크게 클러스터 전체를 관리하는 컨트롤 플레인과 실제 구동되는 컨테이너가 배포되는 워커 노드로 나누어 집니다.

컨트롤 플레인

etcd

  • 쿠버네티스 구성요소들의 상태 값, 설정등을 key-value 형태로 저장하는 데이터베이스 역할을 담당

kube-apiserver

  • 쿠버네티스 클러스터의 내, 외부 상호 작용을 위해 API 통신을 담당하는 역할
  • Rest API 호출 또는 kubectl, kubeadm 과 같은 cli를 사용하여 api server에 접근할 수 있음

kube-scheduler

  • 클러스터의 상태가 정상적인지 체크
  • 각 노드의 CPU, 메모리 등의 자원 상태를 체크하여 신규 컨테이너 배치를 결정

kube-controller-manager

  • 클러스터에 실제 실행을 명령하는 역할을 담당
  • 스케줄러를 참고하여 정확한 수의 파드를 배치하고 파드에 문제가 발생할 경우 이를 감지하고 대응

워커 노드

kubelet

  • 컨트롤 플레인과 통신하는 역할을 담당

kube-proxy

  • 쿠버네티스 네트워킹 서비스를 용이하게 하기 위한 네트워크 프록시 역할을 담당
  • 운영 체제의 패킷 필터링 계층에 의존하거나 트래픽 자체를 전달하여 클러스터 배누 또는 외부의 네트워크 통신을 처리
728x90