본문 바로가기
개발/개발공부

Kubernetes Components (Control plane) / 쿠버네티스 컴포넌트, 마스터, 컨트롤 플레인

by 치킨개발자 2022. 12. 27.
728x90

Kubernetes Control-plane Components


control plane component of kubernetes (https://kubernetes.io/docs/concepts/overview/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 동작 순서


Kubernetes Conrol Plane의 동작

그림에 적은 것 처럼 순서대로 진행이 되고 pod생성 요청을 각 node에 띄워져있는 kubelet으로 보냄

중간에 scheduling할 node가 없어서 Pending상태가 가능

또한 component간 인증서 문제와 같은 이유로 문제가 발생할 수 있음

정상적으로 pod가 띄워지고 난 이후에는 kubelet에서 업데이트 된 정보를 apiserver가 etcd에 업데이트

해당 부분은 worker node component정리할 때 추가로 공부할 예정

반응형

댓글