kube-controller-manager
- 쿠버네티스의 다양한 컨트롤러를 관리함
- etcd가 검사를 한다면 controller-manager는 행정 부서 느낌
- etcd는 지금 상태 어때? 하고 물어보면 답변을 해줬지만 controller-manager는 상황 주시와 개선 조치를 취함(모니터링)
node-controller
- watch status
- remediate situation
- node monitor = 5s
- node monitor grace period = 40s
- pod eviction timeout = 5m
replication-controller
- 파드가 레플리카 세트의 일부인 경우
- 상태 모니터링, 세트 내에서 원하는 수의 파드를 항상 사용할 수 있는지 확인
- 파드 사망 시 다른 파드 생성
이 외의 다양한 controller
- controller들이 모여서 쿠버네티스를 뒷받침하는 큰 역할을 맡음
- 이러한 컨트롤러들은 어떻게 보고 클러스터 상에서 어느 위치에 자리할까?
- 모두 kube-controller-manager 프로세스에 패키징
Installing kube-controller-manager
wget https://storage.googleapis.com/kubernetes-release/release/v1.xx.0/bin/linux/amd64/kube-apiserver
* node monitor = 5s
* node monitor grace period = 40s
* pod eviction timeout = 5m
는 사용자가 설정할 수 있음
--node-monitor-period=5s
--node-monitor-grace-period=40s
--pod-eviction-timeout=5m0s
- 컨트롤러 활성화의 경우 일부만 활성화시킬 수 있음
- 관련 설정은
--controllers stringSlice 아래를 살펴보기
Viewing kube-controller-manager-kubeadm
kubectl로 확인하기
kubectl get pods -n kube-system
- kube controller는 마스터 노드의 kube 시스템 네임스페이스에 kube controller manager를 파드로 배포
kubernetes/manifests 폴더에 있는 포드 정의 파일 내에서 옵션 확인
cat /etc/kubenetes/manifests/kube-controller-manager.yaml
Viewing controller-manager Options
- 서비스 디렉토리에 있는 kube controller manager service 확인하여 옵션 검사
cat /etc/systemd/system/kube-controller-manager.service
- 마스터 노드에서 프로세스를 나열하고 kube controller manager를 검색하여 실행 중인 프로세스와 옵션 확인
ps -aux | grep kube-controller-manager