Kubernetes-Components
1 Kubernetes Components
Cluster
- 노드의 집합으로 Master Node와 Worker Node로 구성되어 있다
Master Node
- 다른 노드를 관리한다.
- Control Plane Components가 실행되는 곳
Worker Node
- 컨테이너화된 애플리케이션을 실행한다.
2 Control Plane Components
전체 쿠버네티스 시스템을 관리하고 통제하는 쿠버네티스 컨트롤 플레인을 관장
- Control Plane Components에는 API Server, Scheduler, Controller Manager, etcd가 있다.
- Control Plane Components는 클러스터를 관리하는 기능을 제공한다
- Control Plane Components는 단일 마스터 노드에서 실행되거나 여러 노드로 분할되고 복제돼 고가용성이 보장된다
- 마스터 노드에서는 클러스터의 상태를 유지하고 제어하지만 애플리케이션을 직접 실행하는 것은 아니다.
2.1 API Server
- API Server는 Control Plane Component이다.
- API Server는 control plane의 프론트엔드라고 할 수 있다.
- Worker Node의 kubelet과 커뮤니케이션 한다.
- 오직 API Server만이 etcd와 직접적인 커뮤니케이션이 가능하다.
- kubectl 요청이 API Server에 전달된다
- 쿠버네티스 시스템 구성 요소는 오직 API 서버하고만 통신한다.
- 서로 직접 통신하지 않는다.
- 다른 구성 요소는 etcd와 직접 통신하지 않고 API 서버를 통해 클러스터 상태를 변경한다.
2.1.1 API Server의 기능
- API Server는 쿠버네티스의 모든 구성 요소와 kubectl 같은 클라이언트에서 사용하는 중심 구성 요소다.
- API Server는 클러스터 상태를 조회하고 변경하기 위해RESTful API로 CRUD 인터페이스를 제공한다.
- 상태는 etcd 안에 저장한다.
- 오브젝트를 etcd에 저장하는 일관된 방법은 제공하는 것 외에 오브젝트 유효성 검사를 하기 때문에 잘못 설정된 오브젝트를 저장할 수 없다.
kubectl
- 예를 들어 JSON 파일에서 리소스를 생성할 때 kubectl은 파일 내용을 API Server에 HTTP POST 요청으로 전달한다.