Kubernetes Control-plane Components
kubernetes 공식 홈페이지에서 확인할 수 있는 kubernetes component 구성요소이다.
Control-plane component로 해당되는 것들은 그림에 따로 빨간색으로 표시해둔 것들이다.
- kube-apiserver
말그대로 kubernetes 클러스터에 사용되는 api server
client로 부터 오는 요청을 처리
단순히 요청을 받는것 뿐만이 아니라, kubelet으로 pod생성, pod정보 가져오기 등의 요청을 보내기도 함
- etcd
key-value 로 이뤄진 storage
API서버와만 통신이 이뤄지고 명세를 저장하는데 사용
데이터 정합성과 같은 이유로 쿼럼(Quorum)처리를 위해 홀수개로 운영
- kube-scheduler
Pod를 생성하고 어느 node에 scheduling할지 정해주는 component
Node affinity, label selector등 다양한 조건으로 Node 필터링이 가능하고, 이후 Node점수를 측정하여 배치
Weight같은 옵션으로 점수를 조정할 수 있고, required인지 preferred인지에 따라서도 배치가 다름
Pod이 Pending상태에 있다면 의심해봐야할 이유 중 하나
- kube-controller-manager
Node controller, Replication controller, ServiceAccount controller 등 여러 타입이 존재
각각의 이름에 맞게 역할이 다르고, 복잡도를 줄이기 위해서 구분하여 사용
Node controller를 예시로 들면 node의 상태를 체크하고 문제가 생기면 처리하는 역할을 함
- cloud-controller-manager (Optional)
실제로 사용하거나 공부를 자세하게 하지는 않아서 간단하게 확인
외부 클라우드와 연동을 하는데 사용하는 컴포넌트
Control Plane 동작 순서
그림에 적은 것 처럼 순서대로 진행이 되고 pod생성 요청을 각 node에 띄워져있는 kubelet으로 보냄
중간에 scheduling할 node가 없어서 Pending상태가 가능
또한 component간 인증서 문제와 같은 이유로 문제가 발생할 수 있음
정상적으로 pod가 띄워지고 난 이후에는 kubelet에서 업데이트 된 정보를 apiserver가 etcd에 업데이트
해당 부분은 worker node component정리할 때 추가로 공부할 예정
'개발 > 개발공부' 카테고리의 다른 글
cgroups / 컨테이너 기초, 프로세스 제어, 자원 제한 (1) | 2023.01.03 |
---|---|
Container 사전지식 / 리눅스, 권한, 컨테이너, 파일, 시스템콜 (0) | 2023.01.01 |
Kubernetes Components (Worker Node) / 쿠버네티스 컴포넌트, 워커 노드, 노드 컴포넌트 (0) | 2022.12.28 |
Kubernetes Readiness Probe / 쿠버네티스 healthcheck, pod ready state (0) | 2022.12.25 |
Kubernetes Ingress / 쿠버네티스 인그레스 정리 (0) | 2022.12.25 |
댓글