본문으로 건너뛰기

Kubernetes

아키텍처​

  • API Server, Scheduler, kubelet등 여러개의 컴포넌트로 이루어진 집합체
  • 사용자의 애플리케이션이나 데이터와 구별하여 Control Plane 이라고 부른다.

마스터​

  • API Server
  • Scheduler
  • Controller Manager
  • etcd

노드​

  • kubelet
  • kube-proxy
  • 컨테이너 런타임 ( 애플리케이션 )

Add-On​

  • Dashboard
  • DNS
  • Ingress Controller
  • 감시용 에이전트 ( Prometheus Node Exporter, Microsoft OMS Agent 등 )

설계 원칙​

  • kubernetes/community

  • kubernetes/community

  • API Server 만이 etcd 에 접근할 수 있다

  • 부분적인 서버 장애가 클러스터 전체의 다운으로 이어지지 않도록 해야한다.

  • 각 컴포넌트에 대한 지시를 잃어버려도 최근의 지시를 바탕으로 처리를 계속할 수 있도록 한다.

  • 각 컴포넌트는 관련된 설정이나 상태를 메모리에 저장하지만 영구화는 API Server 를 통해 etcd 에 한다.

  • 사용자나 다른 컴포넌트가 오브젝트를 변화시킨 것을 감지할 수 있도록 컴포넌트는 API Server 를 워치한다.

  • API Server 에서 폴링하는 것이 아니라 각 컴포넌트가 자율적으로 워치한다.