[Kubernetes] 2.쿠버네티스는 무엇으로 이루어져 있을까

1 minute read

클러스터, 노드, 컴포넌트, 파드

컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 도서를 읽고 정리한 내용입니다.

쿠버네티스를 배포하면 클러스터를 얻는다.

components-of-kubernetes.svg

쿠버네티스 클러스터는 노드의 집합이다.

모든 클러스터는 최소 한 개의 워커 노드를 가진다.

워커 노드는 파드를 호스트한다.

노드는 컨테이너화된 애플리케이션을 실행한다. (worker machine)

컨트롤 플레인 컴포넌트

컨트롤 플레인은 컨테이너 오케스트레이션 레이어이다.

컨테이너의 라이프사이클을 정의, 배포, 관리하기 위한 API와 인터페이스를 제공한다.

컨트롤 플레인은 워커 노드와 파드를 관리한다.

클러스터 이벤트를 감지하고 반응한다.

  • kube-apiserver (API 서버)
    쿠버네티스 API 서버의 구현. 관리자. 컨트롤 플레인의 핵심. 오브젝트의 상태를 etcd에 저장하여 영속성을 유지한다.
  • etcd(엣시디)
    키-값 저장소. 모든 구성요소의 상태 데이터를 담는 쿠버네티스 저장소.
  • kube-scheduler (스케쥴러)
    새로 생성된 파드를 감지하고 실행할 노드를 할당.
  • kube-controller-manager (컨트롤러 매니저)
    컨트롤러 프로세스를 실행
    • 컨트롤러 ? API 서버를 통해 클러스터의 상태를 감시하고, 현재 상태를 원하는 상태로 만들어주는 컨트롤 루프.
      • 노드 컨트롤러
      • 레플리케이션 컨트롤러
      • 엔드포인트 컨트롤러
      • 서비스 어카운트 & 토큰 컨트롤러

등등

노드 컴포넌트

노드 컴포넌트는 동작 중인 파드를 유지시킨다.

쿠버네티스 런타임 환경을 제공하며, 모든 노드에서 동작한다.

  • kubelet
    각 노드에서 실행되는 에이전트. 파드 스펙(PodSpec)을 컨테이너 런타임으로 전달한다. 파드 안의 컨테이너들을 모니터링 한다. 컨테이너가 파드 스펙(PodSpec)에 따라 동작하는 것을 보장한다.
  • kube-proxy
    각 노드에서 실행되는 네트워크 프록시. 컨테이너 외부와 네트워크 통신을 할 수 있도록 해준다.
  • 컨테이너 런타임 (CRI)
    여기에서 도커를 사용할 수 있다.

애드온

쿠버네티스 오브젝트

상태(status)명세(spec) 으로 구성되어 있다.

영속성을 갖는다. (영구 엔티티)

API 서버를 통해 생성,수정,삭제할 수 있다.

이 때, kubectl 커맨드라인 인터페이스를 사용한다.

  • 파드(Pods)
  • 디플로이먼트(Deployments)
  • 네임스페이스(Namespace)
  • 볼륨(Volume)
  • 서비스(Service)

등등


Reference