본 게시글은 CKA 취득 위해 공부한 내용 정리하기 위해 작성한 글이며 첨부한 자료 및 내용은 Udemy에서 제공하는 CKA강의를 활용하였습니다. (www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/)
저작권 등에 문제가 생길 시 게시글을 내리도록 하겠습니다.
Kubernetes에서 Controller는 다양한 component들의 상태를 지속적으로 모니터링 하고 필요한 조치를 하는 역할을 담당합니다.
예를 들어, Node controller는 노드의 상태를 꾸준히 모니터링 하며 kube-api server를 통해 필요한 action을 합니다.
아래 예시를 살펴보겠습니다.
NODE Controller는 kube-api server에게 5초에 한번씩 상태를 확인하라고 지시합니다. 만약 NODE로부터 heartbeat가 40초이상 받지 못한다면 unreachable 상태로 mark한 뒤 5분 동안 back up되는지 기다립니다. 만약 원상태로 돌아오지 않는다면 해당 NODE를 삭제하곤 합니다.
만약 POD가 replica set으로 이뤄져 있다면, Replication controller가 동작합니다.
Replication controller는 replica set을 모니터링하며 실행 가능한 POD의 갯수를 일정하게 유지할 수 있도록 하는 역할을 한다.
위 예제에서 NODE 하나가 unreachable 되어서 삭제된다면, replicaion controller는 이를 인지하고 1개 추가 더 생성하도록 kube-apiserver에 지시한다.
이외에도 다양한 controller가 있으며 이를 종합적으로 kube-controller manager라 지칭한다.