K8s

꺄악 운석이다·2026년 5월 12일

K8s

오픈소스 컨테이너 오케스트레이션 플랫폼

K8s 사용 이유

  • 자가 치유
    - 컨테어너가 멈추거나 오류 발생 시 자동감지하여 새 컨테이너로 교체한다.
  • 자동 확장
    - 서비스 트래픽 증가 시 컨테이너를 자동으로 늘리낟.
  • 로드 밸런싱
    - 트래픽을 여러 컨테이너에 분배해준다.
  • 자동 롤백
    - 다양한 무중단 배포전략을 지원하며, 배포 중 문제가 생기면 안정된 버전으로 롤백을 해줌

K8s 구성요소

쿠버네티스는 주로 두 가지 유형의 노드로 구성되어 있다.

  • master node(control plane)
    - 클러스터의 전체적인 관리 및 조정을 담당
  • worker node
    - 실제 컴퓨팅 작업을 수행, 애플리케이션 컨테이너의 실행을 담당한다.

Master Node(Control Plane)

클러스터의 두뇌로, 클러스터의 전반적인 관리와 조정을 한다.

  1. API 서버
    • 클러스터와의 모든 통신이 시작되는 장소이다.
    • Rest API 형식으로 작동되고 kubectl~ 로 시작하는 명령어가 API 서버를 통해 요청을 보내고 받는다.
  2. etcd(클러스터 스토어)
    • 모든 클러스터 데이터를 저장하는 경량, 분산형 키-값 저장소이다.
    • 클러스터의 상태 정보, 설정, 메타 데이터 등을 저장한다.
  3. 컨트롤러 매니저
    • node, pod상태를 수정하거나 복구한다.
    • 원하는 상태에 맞춰 클러스터를 유지해준다. (etcd 상태를 감시하고 차이점이 있다면 조정한다.)
  4. 스케쥴러
    • 새로 생성된 파드를 대상 노드에 할당한다.
    • CPU, 메모리 등의 기준으로 결정

Worker Node

실제 애플리케이션의 컨테이너가 실행되는 곳

  1. kubelet
    • 워커 노드 관리자로 control plane과 api server로부터 지시를 받아 컨테이너 실행 및 관리를 담당한다.
    • Pod에 지정된 컨테이너가 정상적으로 동작하고 있는지 확인하고 필요한 조치를 취하여 클러스터의 상태를 유지하게 한다.
  2. kube-proxy
    • 네트워크 프록시로서, 워커 노드의 네트워크 규칙을 관리한다
    • 클러스터 내의 Pod간 통신을 담당하고 클러스터 외부 통신도 담당한다.
  3. container runtime
    • 실제 컨테이너가 동작할 수 있는 환경을 제공해준다 (ex : Docker)

작동 원리

  1. 사용자가 API 서버를 통해 "앱 3개 실행해줘" 라고 요청한다.
  2. 이 상태 정보는 etcd에 저장된다.
  3. 스케쥴러가 어느 워커 노드에 여유가 있는지 확인하고 배치 장소를 정한다.
  4. 해당 노드의 kubelet이 명령을 받아 컨테이너 런타임을 통해 앱을 실행한다.
  5. 컨트롤러 매니저는 항상 실행 중인 앱의 개수를 확인하며, 문제가 생기면 자동으로 복구 한다.
profile
멸종은 면하자

0개의 댓글