티스토리 뷰

독후감

Chap 15. Kube Controller Manager

killog 2022. 3. 7. 01:01
반응형

개요

  • 쿠버네티스에는 다양한 컨트롤러가 있다.
  • 하나의 컨트롤러는 마스터 선박 내의 사무실 또는 부서와 같다.
    • 각각의 책임이 있다.
    • 1순위.. 지속적으로 선박의 상태를 관리
      • 예. "선박" 사무실
        • 선박을 모니터링하고, 필요한 조치를 취한다
      • 예. "선박 리커버리 사무실"
      • "선박 도착, 떠남 사무실"
      • "선박 컨테이너 관리 사무실"
        • 선박의 손상이나, full 을 관리함.
  • 2순위
    • 상황을 시정하기 위한 필요조치
  • 쿠버네티스 용어로 컨트롤러는 시스템 내의 다양한 구성요소의 상태를 지속적으로 모니터링하는 프로세스입니다.
  • 전체 시스템을 원하는 기능의 상태로 만들기 위해 노력합니다.
    • 노드컨트롤러 : 노드의 상태를 모니터링하고, 필요한 애플리케이션을 계속 실행하기 위해 조치한다.
      • kub-apiserver 를 통해 이 행위 수행
      • 노드 컨트롤러는 5초마다 노드의 상태를 확인한다.
      • => 노드로부터 하트비트 장애 발생시, 인지하고, 노드의 상태를 모니터링한다.
          1. 하트비트 장애 발생
          2. 40초 복구 기다림
          3. unreachable 마킹
          4. 5분의 복구시간이 주어짐
          5. 복구에 실패한 경우, node 에 할당된 pod들을 제거하고, 다른 건강한 노드에 pod 를 이전한다.
      • 만약에 Pod 중에 하나가, replica controller 였을 경우, replica sets 의 상태를 확인하고, 원하는 수의 replica set 을 유지하게 확인하는 역할을 한다. pod 는 set 내에서 항상 사용할 수 있습니다.

  • 컨트롤러의 종류는 매우 많고, 이것은 일종의 쿠버네티스의 두뇌 이다.
  • Q. 이제 이러한, 컨트롤러가 어떻게 표시되고, 클러스터 어디에 위치하는가?
  • A. 모두 kubernetes controller manager라고 알려진 단일 프로세스로 패키징된다.

 

Installing kube-controller-manager

$wget https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kube-controller-manager
 #kube-controller-manager.service
 ExecStart=/usr/local/bin/kube-controller-manager \\
--address=0.0.0.0 \\
--cluster-cidr=10.200.0.0/16 \\
--cluster-name=kubernetes \\ 
--cluster-signing-cert-file=/var/lib/kubernetes/ca.pem \\ 
--cluster-signing-key-file=/var/lib/kubernetes/ca-key.pem \\
--kubeconfig=/var/lib/kubernetes/kube-controller-manager.kubeconfig \\ 
--leader-elect=true \\
--root-ca-file=/var/lib/kubernetes/ca.pem \\ 
--service-account-private-key-file=/var/lib/kubernetes/service-account-key.pem \\ 
--service-cluster-ip-range=10.32.0.0/24 \\
--use-service-account-credentials=true \\
--v=2\\
--node-monitor-period=5s\\ #1
--node-monitor-grace-period=40s\\#1
--pod-eviction-timeout=5m0s\\#1
--controllers stringSlice Default: [*] #2
A list of controllers to enable. '*' enables all on-by-default controllers, 'foo' enables the controller named 'foo', '-foo' disables the controller named 'foo'.
All controllers: attachdetach, bootstrapsigner, clusterrole-aggregation, cronjob, csrapproving, csrcleaner, csrsigning, daemonset, deployment, disruption, endpoint, garbagecollector, horizontalpodautoscaling, job, namespace, nodeipam, nodelifecycle, persistentvolume-binder, persistentvolume-expander, podgc, pv-protection, pvc-protection, replicaset, replicationcontroller, resourcequota, root-ca-cert-publisher, route, service, serviceaccount, serviceaccount-token, statefulset, tokencleaner, ttl, ttl-after-finished
Disabled-by-default controllers: bootstrapsigner, tokencleaner
    1. 노드 컨트롤러도 kube-controller-manager 의 기본 설정 중의 일부임을 기억하자.
    2. 활성화할 컨트롤러를 지정하는데 사용하는 controllers 라는 옵션이 있다. 기본적으로, 모두 활성이지만, 일부만되게 선택할 수 있다.

기존 클러스터에서 Kube Conroller Manger 옵션 보는법

  • 클러스터 설정 방법마다 다르다. 여기에선 kubeadme 로 배포된 경우만 보여줌.

kubectl pod 로 확인

view api-server - kubeadme

$kubectl get pods -n kube-system
# .kubeadme로 클러스터를 설정한 경우, kube-api server를 kube-system namespace의 마스터 노드에 pod 로 배포한다.

 

  • .kubeadme로 클러스터를 설정한 경우, kube-system namespace의 마스터 노드에 pod 로 배포한다.

pod discription 확인

  • 만약에 pod definition 옵션들을 보고 싶은경우, etc kubernetes manifests 폴더에 가면된다.
  • yaml

  • service

마스터 노드에서 ps랑 option 확인

반응형

'독후감' 카테고리의 다른 글

Chap17. Kubelet  (0) 2022.03.07
Chap 16. Kube Scheduler  (0) 2022.03.07
Chap14. Kube-API Server  (0) 2022.03.07
Chap11-13. ETCD  (0) 2022.03.07
CKA udemy 강의 Core Concept 1 - main structure  (0) 2022.03.07
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함