Search
Duplicate

Kube-Controller-Manager

생성일
2021/05/04 20:37
태그

Kube Controller Manager

Kube Controller Manager는 kubernetes의 다양한 컨트롤러를 관리함

kubernetes 용어에서 컨트롤러는 시스템 내 구성 요소의 상태를 지속적으로 모니터링하고 전체 시스템을 원하는 작동 상태로 만드는 데 사용되는 프로세스
노드 컨트롤러는 노드들의 상태를 모니터링하고, 애플리케이션이 계속 실행될 수 있도록 필요한 조치를 수행한다. (이 작업들은 kube-apiserver를 통해 이뤄진다)
노드 컨트롤러는 5초 마다 상태를 체크한다. 이 옵션은 -node-monitor-period=5s로 지정한다.
노드의 상태가 정상적이지 않은 경우 약 40초 정도 기다린 후 unreachable 상태로 표시된다. 이 옵션은 -node-monitor-grace-period=40s로 지정한다.
만약 노드가 5분 안에 정상화 되지 않으면, 해당 노드에 할당된 POD는 삭제되고 다른 정상적인 노드에 다시 생성될 수 있도록 한다. 이 옵션은 -pod-eviction-timeout=5m0s으로 지정한다.
kube-controller-manager는 여러가지 컨트롤러가 하나의 프로레스로 패키징되어 실행되는 형태이다.

Node Controller

노드 상태를 모니터링하고 애플리케이션을 계속 실행하는 데 필요한 조치를 취하는 역할

Replication Controller

복제 세트 상태를 모니터링하고 세트 내에서 원하는 수의 포드를 항상 사용할 수 있도록 하는 역할

Installing Kube-Controller-Manager

kube-controller-manager를 설치하면 다른 컨트롤러도 설치됨
kubernetes 릴리스 페이지에서 kube-controller-manager 바이너리를 다운로드
$ wget <https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kube-controller-manager>
Plain Text
복사
기본적으로 모든 컨트롤러가 활성화되어 있지만 kube-controller-manager.service 에서 특정 컨트롤러를 활성화하도록 선택할 수 있음
$ cat /etc/systemd/system/kube-controller-manager.service
Plain Text
복사

View kube-controller-manager - kubeadm

kubeadm은 kube-controller-manager를 kube-system 네임 스페이스의 포드로 배포함
$ kubectl get pods -n kube-system
Plain Text
복사

View kube-controller-manager options - kubeadm

/etc/kubernetes/manifests/kube-controller-manager.yaml POD 내의 옵션을 볼 수 있음
$ cat /etc/kubernetes/manifests/kube-controller-manager.yaml
Plain Text
복사

View kube-controller-manager options - Manual

kubeadmin을 사용하지 않는 경우 kube-controller-manager.service 에서 옵션을 볼 수 있음
$ cat /etc/systemd/system/kube-controller-manager.service
Plain Text
복사
마스터 노드에 프로세스를 나열하고 kube-controller-manager를 검색하여 실행중인 프로세스와 영향을주는 옵션을 볼 수도 있음
$ ps -aux |grep kube-controller-manager
Plain Text
복사
K8s Referenece Docs: