Blog

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 등 )

설계 원칙

API Server 만이 etcd 에 접근할 수 있다
부분적인 서버 장애가 클러스터 전체의 다운으로 이어지지 않도록 해야한다.
각 컴포넌트에 대한 지시를 잃어버려도 최근의 지시를 바탕으로 처리를 계속할 수 있도록 한다.
각 컴포넌트는 관련된 설정이나 상태를 메모리에 저장하지만 영구화는 API Server 를 통해 etcd 에 한다.
사용자나 다른 컴포넌트가 오브젝트를 변화시킨 것을 감지할 수 있도록 컴포넌트는 API Server 를 워치한다.
API Server 에서 폴링하는 것이 아니라 각 컴포넌트가 자율적으로 워치한다.