JUST WRITE

Control Plane Components 본문

MLOps/Kubernetes

Control Plane Components

천재보단범재 2023. 1. 21. 22:27

Control Plane Components

Control Plane Components

Kubernetes Cluster는 최소한 1개 이상의 Worker Node를 가진다.

Worker Node에서 Pod를 생성하여 Application을 생성, 운영한다.

Control Plane에서 Worker Node와 Node에서 생성한 Pod의 관리한다.

Kubernetes Cluster 내에서 일어나는 Event를 체크, 대응하며 Scheduling 등의 역할을 한다.

Control Plane인 Component들은 아래와 같다.

  • kube-apiserver
  • etcd
  • kube-scheduler
  • kube-controller-manager
  • cloud-controller-manager

출처 : https://kubesphere.io/

kube-apiserver

kube-apiserver는 kubernetes cluster에서 Kubernetes API를 사용할 수 있도록 하는 Component이다.

Kubernetes Cluster로 들어오는 요청을 제일 앞에서 받아 검증하고 처리할 Component에게 넘겨준다.

보통 kubectl로 내리는 명령을 kube-apiserver가 받고 마지막 Reponse를 던져준다.

수평적으로 확장할 수 있도록 설계되어 있어 여러 개를 실행할 수 있다.

etcd

etcd는 CoreOS에서 2013년에 개발한 Opensorce 저장소이다.

key-value 기반에 RAFT(RAFT Consensus) 알고리즘을 구현한 분산 저장소이다.

Kubernetes Cluster, Resource, Status 등의 정보를 저장한다.

etcd는 Server당 1개의 process만 사용할 수 있다.

보통 Master Node에 같이 구성하며 아니면 따로 etcd cluster를 구성하여 Kubernetes와 연결하기도 한다.

Kubernetes에서 뿐만 아니라 cloud-native application에 많이 사용된다.

kube-scheduler

kube-scheluder는 Worker Node내 Pod의 배치를 결정하는 역할을 한다.

Pod을 생성해야 할 때 Node들의 상태를 체크하여 적절한 Node에서 Pod이 생성되도록 한다.

Hardware/Software 상태, 정책, affintiy와 anti-affinity 등 다양한 것들을 종합하여 판단한다.

kube-controller-manager

kube-controller-managerPod를 관리하는 역할을 한다.

아래와 같은 controller들이 있으며, 대신 하나의 Binary 파일로 complie되어 1개의 process로 실행된다.

  • Node controller
  • Job controller
  • EndpointSlice controller
  • ServiceAccount controller

cloud-controller-manager

cloud-controller-managerCloud Service와 Kubernets Controller와 연결해 주는 Component이다.

Kubernetes Cluster와 Cloud Provider의 API가 상호작용할 수 있도록 해주는 역할이다.

해당 Component가 존재로 알 수 있듯이 Kubernets가 Cloud Native 하다는 것을 알 수 있다. 

[참고사이트]

 

728x90
반응형
Comments