Kubernetesã¯ã¯ã©ã¹ã¿ã§é害ããã£ãã¨ããã©ãããåããããã®ã
Kubernetesã¯ãã³ã³ããã¢ããªã±ã¼ã·ã§ã³ããããã¤ããããã®ãªã¼ã±ã¹ãã¬ã¼ã·ã§ã³ãã¼ã«ã§ããKuberenetesã¯åæ£ç°å¢ã«ãããã¹ã±ã¼ã©ãã«ãªã³ã³ããå®è¡ç°å¢ãã¤ããããã®ããã¾ãã¾ãªæ©è½ãæä¾ããã¦ãã¾ãã
ãã¨ãã¨ã¯GoogleãéçºããBorgããã¨ã«OSSåãããã®ã§ããã仿¥ã§ã¯ãã¤ã¯ãã½ãããRedHatãç©æ¥µçã«éçºã«å ãããéå¸¸ã«æ©ãã¹ãã¼ãã§æ©è½æ¡å¼µãã¦ãã¦ã追ããããã®ã大å¤ã§ãã
Kubernetesã®å¤§ããªç¹å¾´ã¯å®£è¨çè¨å®ã«ããã¾ãã
ãã®å®£è¨çè¨å®ã¨ã¯ãã¤ãã¥ã¼ã¿ãã«ãªã¤ã³ãã©ãä½ãããã®åºæ¬çãªèãæ¹ã§ããã·ã¹ãã ã®ããã¹ãå§¿ããè¨å®ãã¡ã¤ã«ã«ã¦å®£è¨ããï¼ã¨ããèãæ¹ã§ããKubernetesã¯è¨å®ãã¡ã¤ã«ã«æ¸ããã¨ããã®ã¤ã³ãã©ãç¶æããããã«è¨è¨ããã¦ãã¾ãã
Kubernetesã¯ã³ã³ããããPodãã¨ããåä½ã§ç®¡çãã¾ãããã®PodãKuberenetesã¯ã©ã¹ã¿å ã§ã©ã®ããã«ç¨¼åããããããç¶æããæ©è½ããReplicaSetãã§ããReplicaSetãã¤ããã¨ããã³ãã¬ã¼ãã§å®ç¾©ããæ§æã®Podã常ã«ç¨¼åãã¦ããç¶æ ãã¤ããã¾ãã
ã¨ãããã¨ã¯ããããããã¨ãä½ããã®çç±ã§Podã«é害ãçºçãã¦ãããªã«ã対å¦ããªãã¦ãèªå復æ§ããã¯ãããï¼ï¼ï¼ãæ¬å½ãã©ãã確ãããã¹ããAzureã§Kubernetesã¯ã©ã¹ã¿ãæ§ç¯ããReplicaSetã®ç°¡åãªå®é¨ããã¦ã¿ã¾ãã
åæèªè
- Dockerã®ä½¿ãæ¹ãåãã人
- ã¯ã©ã¦ãããã¼ã¸ã(AKSã¾ãã¯GKE)ã§Kubernetesã¯ã©ã¹ã¿ãæ§ç¯ã§ãã人
å®é¨æºå
Azureã®Kubernetesã®ãã«ããã¼ã¸ããµã¼ãã¹ã§ããAKSã使ãã¾ããå ¬å¼ãµã¤ãããã¨ã«Kubernetesã¯ã©ã¹ã¿ãæ§ç¯ãã¾ããã
クイック スタート:Azure Kubernetes Service クラスターをデプロイする | Microsoft Docs
ããã§ã¯ãæ¬¡ã®æ§æã®ã¯ã©ã¹ã¿ã§å®é¨ãã¾ãã

å®é¨ï¼ï¼ã¯ã©ã¹ã¿å ã®ã³ã³ãããç°å¸¸çµäºãããã©ããªããï¼
ã¾ããNginxãåãããã®ã·ã³ãã«ãªPodãæ§æããããã«æ¬¡ã®å®ç¾©ãã¡ã¤ã«ã使ãã¾ããã¡ãªã¿ã«Kuberenetesã®Podã¯ããã¤ãã®ã³ã³ãããã¾ã¨ãããã®ã§ãä»åã¯Podã«1ã¤ã®ã³ã³ãããå ¥ãããã®ã使ãã¾ãã
apiVersion: apps/v1 kind: ReplicaSet metadata: name: replicaset-exp spec: replicas: 5 selector: matchLabels: app: replicaset-temp template: metadata: labels: app: replicaset-temp ver: "1.0" spec: containers: - name: pod-sample image: nginx
Kubernetesã§ã¯å®ç¾©ãã¡ã¤ã«ã¯ããã¥ãã§ã¹ãã¨å¼ã°ããYAMLã¾ãã¯JSONã§è¨è¿°ãã¾ãããã®ããã¥ãã§ã¹ãã§å®£è¨ããæ§æã®æå³ããã£ã¨å³è§£ããã¨ã次ã®ã¨ããã§ãã

ãã®ããã¥ãã§ã¹ãã®ãã¤ã³ãã¯ä»¥ä¸ã®æå®ã§ãããã¯Kubernetesã¯ã©ã¹ã¿å ã«å¸¸ã«5ã¤ã®Podã稼åããã¦ããã¨ãããã¨ã宣è¨ãã¦ãã¾ãã
replicas: 5
次ã®ã³ãã³ãã§replicaset.yamlã«å®ç¾©ããReplicaSetãã¯ã©ã¹ã¿ä¸ã«æ§æãã¾ãã
$ kubectl create -f replicaset.yaml replicaset "replicaset-exp" created
Podã®ç¢ºèªã¯ãkubectl get podsã³ãã³ãã§è¡ãã¾ãã ã宣è¨ãããéãã5ã¤ã®Pod(ã³ã³ãã)ãã¯ã©ã¹ã¿ä¸ã§èµ·åãã¦ãã¾ããæ¬¡ã®ä¾ã§ã¯ãreplicaset-exp-58bp7ãï½ãreplicaset-exp-hh8qbãã¨ããååã®ã³ã³ãããèµ·å(Running)ãã¦ããã®ããããã¾ãã
$ kubectl get pods NAME READY STATUS RESTARTS AGE replicaset-exp-58bp7 1/1 Running 0 14s replicaset-exp-6mj5z 1/1 Running 0 14s replicaset-exp-97z7t 1/1 Running 0 14s replicaset-exp-gxj9j 1/1 Running 0 14s replicaset-exp-hh8qb 1/1 Running 0 14s
ããã5ã¤ã®Podã2å°ã®Nodeã«ã©ãé ç½®ããã¦ãããã確èªãã¾ããä»åã®å®é¨ã§ã¯Node0(aks-nodepool1-12354740-0)ã¨Node1(aks-nodepool1-12354740-1)ã«æ¬¡ã®ããã«podãé ç½®ããã¦ãã¾ããã
| Podå | 稼åãã¦ããNode |
|---|---|
| replicaset-exp-58bp7 | Node0 |
| replicaset-exp-6mj5z | Node1 |
| replicaset-exp-97z7t | Node0 |
| replicaset-exp-gxj9j | Node0 |
| replicaset-exp-hh8qb | Node1 |
å³ã§ããããã¨æ¸ãã¨æ¬¡ã®ããã«ãªã£ã¦ãã¾ãã

1ã¤ã®Podãããã¨åé¤ãã¦ã¿ãã¨ã©ããªãã
ããã§Node1ä¸ã§ç¨¼åãã¦ããPodãreplicaset-exp-hh8qbããPodã以ä¸ã®ã³ãã³ãã§åé¤ãã¾ãã
$ kubectl delete pod replicaset-exp-hh8qb
ã¯ã©ã¹ã¿å ã®Podãã©ãããç¶æ ã§ããããæ¬¡ã®ã³ãã³ãã§ç¢ºèªãã¾ãã
$ kubectl get pods NAME READY STATUS RESTARTS AGE replicaset-exp-58bp7 1/1 Running 0 10m replicaset-exp-6mj5z 1/1 Running 0 10m replicaset-exp-97z7t 1/1 Running 0 10m replicaset-exp-gxj9j 1/1 Running 0 10m replicaset-exp-7d6gc 1/1 Running 0 1m
ã³ãã³ããæ³¨ææ·±ãè¦ãã¨ãåé¤ããPodãreplicaset-exp-hh8qbããç¡ããªãã«ãªãã代ããã«Podãreplicaset-exp-7d6gc ããæ°ããçæããã¦ãã¾ãã
ç¾å¨ã®ç¶æ ãå³ã§ããã¨æ¬¡ã®ã¨ããã§ãã

çµæï¼ï¼ã¯ã©ã¹ã¿å ã®ã³ã³ããã¢ããªãç°å¸¸çµäºãããã©ããªããï¼
å®é¨ããã¨ãããããã¥ã¢ã«ã«æ¸ãã¦ããéããã³ã³ããã¢ããªãåä½ãããã1ã¤ã®Podãä½ããã®é害ã§å©ç¨ã§ããªããªã£ãã¨ãããReplicaSetã®ããã¥ãã§ã¹ãã§æå®ãããã¬ããªã«æ°=5ã«ãªããããæ°ããå¥ã®Podãèªåã§1ã¤çæããã¾ããã
ã¤ã¾ããKubernetesã®ReplicaSetã¯ãè¨å®ãã¡ã¤ã«ã«æ¸ããã¨ããã®ã¤ã³ãã©ãç¶æããããã«åä½ãããã¨ããããã¾ãã
èå¯ï¼ï¼ã ãããPodã復活ãããã®ãï¼
KubernetesãPodãèªåã§å¾©æ§ããããã¨ããããã¾ãããããããKubernetesã®ãªã¼ããã¼ãªã³ã°(Auto Healing)æ©è½ã¨ããã¾ããã ãããã£ããPodã復活ãããã®ã§ããããï¼ãã¿ã¦ããã¾ãã
Kuberenetesã®ä¸»ãªã³ã³ãã¼ãã³ããã¡
Kubernetesã¯åæ£ç°å¢ã§ãµã¼ã群ãå調ãã¦ããããã®å¦çãè¡ãã¾ãããã®ããã¾ãã®ãã¨ãKubernetesã¯ã©ã¹ã¿ã¨å¼ã³ã¾ããKubernetesã§åä½ãã¦ãããµã¼ãããã³ä¸»ãªã³ã³ãã¼ãã³ãã¯æ¬¡ã®ã¨ããã§ãã

1. Master
Kubernetesã¯ã©ã¹ã¿å ã®ã³ã³ãããæä½ããããã®ãµã¼ãã§ããkubectlã³ãã³ãã使ã£ã¦ã¯ã©ã¹ã¿ãæ§æããããªã½ã¼ã¹ãæä½ãããããéã¯ããã¹ã¿ã¼ãµã¼ããã³ãã³ãããã®ãªã¯ã¨ã¹ããåãåã£ã¦å¦çãè¡ãã¾ããè¤æ°å°ãããªãKubernetesã¯ã©ã¹ã¿å ã®ãã¼ãã®ãªã½ã¼ã¹ä½¿ç¨ç¶æ³ã確èªãã¦ãã³ã³ãããèµ·åãããã¼ããèªåçã«é¸æãã¾ããKubernetesããªã¼ã±ã¹ãã¬ã¼ã·ã§ã³ãã¼ã«ã¨å¼ã°ããã®ãããã®ãã¹ã¿ã¼ãµã¼ããè¤æ°å°ãããªã忣ãããã¼ããã¾ã¨ãã¦ç®¡çãããã¨ã§ããããã1å°ã®ãµã¼ãã§ãããã®ããã«ãµãã¾ãã¾ãã ã
â kube-apiserver
Kubernetesã®ãªã½ã¼ã¹æ å ±ã管çããããã®ããã³ãã¨ã³ãã®REST APIã§ããåã³ã³ãã¼ãã³ããããªã½ã¼ã¹ã®æ å ±ãåãåãetcdä¸ã«æ ¼ç´ãã¾ããä»ã®ã³ã³ãã¼ãã³ãã¯ãã®etcdã®æ å ±ã«kube-apiserverãä»ãã¦ã¢ã¯ã»ã¹ãã¾ãããã®kube-apiserverã«ã¢ã¯ã»ã¹ããã«ã¯ãGUIãã¼ã«ãkubebtlã³ãã³ãã使ãã¾ããã¾ããã¢ããªã±ã¼ã·ã§ã³å ããkube-apiserverãå¼ã³åºããã¨ãå¯è½ã§ããkube-apiserverã¯èªè¨¼ï¼èªå¯ã®æ©è½ãæã£ã¦ãã¾ãã
â kube-scheduler
kube-schedulerã¯Podãã©ã®Nodeã§åããããå¶å¾¡ããã³ã³ãã¼ãã³ãã§ããkube-schedulerã¯ããã¼ãã«å²ãå½ã¦ããã¦ããªãPodã«å¯¾ãã¦ãKubernetesã¯ã©ã¹ã¿ã®ç¶æ ã確èªãã空ãã¹ãã¼ã¹ãæã¤Nodeãæ¢ãã¦Podãå®è¡ãããã¹ã±ã¸ã¥ã¼ãªã³ã°ãè¡ãã¾ãã
â kube-controller-manager
kube-controller-managerã¯Kubernetesã¯ã©ã¹ã¿ã®ç¶æ ã常ã«ç£è¦ããã³ã³ãã¼ãã³ãã§ããå®ç¾©ãã¡ã¤ã«ã§æå®ãããã®ã¨å®éã®Nodeãã³ã³ããã§åä½ãã¦ããç¶æ ãã¾ã¨ãã¦ç®¡çãã¾ãã
2. Node
å®éã«Dockerã³ã³ãããåä½ããPodã稼åããããµã¼ãã§ããAKSã§ã¯ä»®æ³ãã·ã³(VM)ã§æ§æãããé常ã¯è¤æ°ç¨æãã¦ãã¯ã©ã¹ã¿ãæ§æãã¾ãããã¼ãã®ç®¡çã¯ããã¹ã¿ã¼ãµã¼ããè¡ãã¾ããä½å°ãã¼ããç¨æãããã¯ãã·ã¹ãã ã®è¦æ¨¡ãè² è·ã«ãã£ã¦ç°ãªãã¾ããå°æ°ãå¢ããã¨å¯ç¨æ§ãåä¸ãã¾ãããªããkubeproxyã¨ããã³ã³ãã¼ãã³ããåä½ãã¾ããã説æã¯å¥ããã°ã§ã
â kubelet
kubeletã¯ãPodã®å®ç¾©ãã¡ã¤ã«ã«å¾ã£ã¦ã³ã³ãããå®è¡ããããã¹ãã¬ã¼ã¸ããã¦ã³ããããããã¨ã¼ã¸ã§ã³ãæ©è½ãæã¡ã¾ããã¾ãKubeletã¯ãNodeã®ã¹ãã¼ã¿ã¹ã宿çã«ç£è¦ããæ©è½ãæã¡ã¹ãã¼ã¿ã¹ãå¤ããã¨API Serverã«éç¥ãã¾ãã
3. etcd
Kubernetesã¯ã©ã¹ã¿ã®æ§æãä¿æãã忣KVSã§ããKey-Valueåã§ãã¼ã¿ã管çãã¾ããã©ã®ãããªPodãã©ãé ç½®ããããªã©ã®æ å ±ãæã¡ãAPI Serverããåç §ããã¾ãã
Podã®ãªã¼ããã¼ãªã³ã°æ©è½
ã¯ã©ã¹ã¿ã®ç¶æ ç£è¦ã¯ãMasterã®kube-controller-managerãè¡ãã¾ãããã®kube-controller-managerã«ã¯æ¬¡ã®æ©è½ãããã¾ãã
- ReplicationManager
- ReplicaSet/DaemonSet/Job controllers
- Deployment controller
- StatefulSet controller
- Node controller
- Service controller
- Endpoint controller
- Namespace controller
- etc
ãã®ä¸ã§Podã®ç¶æ ã¯ReplicationManagerãç£è¦ãã¦ãã¾ãããããå®éã«ç¨¼åãã¦ããPodã®æ°ã¨etcdã§ç®¡çãã¦ããããã¥ãã§ã¹ããã¡ã¤ã«ã§å®ç¾©ããreplicasã®æ°ãä¸è´ãã¦ããªãå ´åãPodã®æ°ã調æ´ãã¾ãã

kubernetes/controller_utils.go at master · kubernetes/kubernetes · GitHub
æ°ããçæãããPodã¯ãkube-schedulerã«ãã£ã¦é©åãªNodeã«ã¹ã±ã¸ã¥ã¼ãªã³ã°ããã¾ãã
ãã®kube-schedulerã®æåã¯ã@tkusumi ããã® ãKubernetes: ã¹ã±ã¸ã¥ã¼ã©ã®åä½ã ãã¨ã¦ãåãããããåå¼·ã«ãªãã¾ããï¼ãã¡ãããã²ï¼
ãã®è¨äºã§è§£èª¬ããã¦ããããã«ãkube-schedulerã«ãã£ã¦æé©ãªãã¼ãã«Podãã¹ã±ã¸ã¥ã¼ãªã³ã°ããã¾ããå®éã«ãã¼ãä¸ã«Podãã¤ã¾ãDockerã³ã³ãããå®è¡ãããã®ã¯ãkubeletãè¡ãã¾ããkubeletã¯èªNodeã«å²ãå½ã¦ãããPodã®ã¹ã±ã¸ã¥ã¼ãªã³ã°ã«å¾ããå¿ è¦ãªæ°ã®Podãç«ã¡ä¸ãã¾ãã
ã¨ãããããã®ããã«Kuberenetesã§ã¯è¤æ°ã®ã³ã³ãã¼ãã³ããããæãã§å調ããªããã¯ã©ã¹ã¿ãç¶æãã¦ããã®ãåããã¾ããã
å®é¨2ï¼ã¯ã©ã¹ã¿å ã®ãµã¼ã(VM)ãç°å¸¸çµäºãããã©ããªããï¼
åã®å®é¨ã§ã¯ãPod(ã³ã³ãã)ã®ã¢ããªã±ã¼ã·ã§ã³ã忢ããã¨ãã®åããã¿ã¾ããããæ¬¡ã¯Kubernetesã¯ã©ã¹ã¿ãæ§æãããµã¼ããã¤ã¾ãNodeé害ãããã£ãã¨ãã«Podãã©ããªããã確èªãã¾ããã¯ã©ã¹ã¿ãæ§æãããµã¼ãããç©ççã«ã±ã¼ã¼ã¼ãã£ã¨éã£ã¦ãã¾ã£ãã¨ããæ³å®ãã¦ãã¾ãã
注æï¼
ããã¯å®é¨ã§ããã¡ã³ããã³ã¹çã§Nodeãæå³çã«åæ¢ãããå ´åã¯ãkubectl drainã³ãã³ãã§Nodeä¸ã®Podãå®å ¨ã«éé¿ããã¦ãã忢ããã¾ããããããããæ¬çªæ©ã§å®é¨ããªãããã«ãé¡ããã¾ãã
æå³çã«Node0ã§é害ãèµ·ããã¦ã¿ã
Node0ã«ã¯3ã¤ã®Podãèµ·åããç¶æ ã§ãããããã§å¼·å¶çã«Node0(aks-nodepool1-12354740-0/10.240.0.4)ã¨ãªã£ã¦ããVMã忢ãã¾ãã
kubectl get nodesã³ãã³ãã§ç¢ºèªããã¨ãNotReadyãã¨ãªããKubernetesã®Masterããå©ç¨ã§ããªãç¶æ ã«ãªã£ã¦ãããã¨ãåããã¾ãã
$ kubectl get nodes NAME STATUS AGE VERSION aks-nodepool1-12354740-0 NotReady,agent 50m v1.9.2 aks-nodepool1-12354740-1 Ready,agent 38m v1.9.2
Podã¯ã©ããªã£ããï¼
kubectl get podsã³ãã³ããå®è¡ããã¨ã8ã¤ã®Pod確èªã§ãã¾ãããã¡5ã¤ã稼å(Running)ãã3ã¤ã®Podã䏿(Unknown)ãªç¶æ ã§ãããã¨ããããã¾ãã
$ kubectl get pods NAME READY STATUS RESTARTS AGE replicaset-exp-58bp7 1/1 Unknown 0 18m replicaset-exp-6mj5z 1/1 Running 0 18m replicaset-exp-8p6xz 1/1 Running 0 40s replicaset-exp-97z7t 1/1 Unknown 0 18m replicaset-exp-gxj9j 1/1 Unknown 0 18m replicaset-exp-hh8qb 1/1 Running 0 18m replicaset-exp-qnztj 1/1 Running 0 40s replicaset-exp-wf7lt 1/1 Running 0 40s
ãããã®8ã¤ã®PodãNodeã«ã©ãé ç½®ããã¦ãããã確èªãã¾ãã
| Podå | é害åã«é ç½®ãããNode | ç¾å¨ã®Node |
|---|---|---|
| replicaset-exp-58bp7 | Node0 | - |
| replicaset-exp-6mj5z | Node1 | Node1 |
| replicaset-exp-8p6xz | - | Node1 |
| replicaset-exp-97z7t | Node0 | - |
| replicaset-exp-gxj9j | Node0 | - |
| replicaset-exp-hh8qb | Node1 | Node1 |
| replicaset-exp-qnztj | - | Node1 |
| replicaset-exp-wf7lt | - | Node1 |
å³ã§æ¸ãã¨æ¬¡ã®ã¨ããã§ãã

ãªãã»ã©ï¼
ãã¡ãã¨Kubernetesã¯ã©ã¹ã¿å ã«5ã¤ã®Podã稼åããç¶æ ãç¶æãã¦ãã¾ãã
Podã®ãã©ã£ãéå½ã¯ã次ã®3ã¤ã®ãã¿ã¼ã³ãããã¾ãããããããã°ã確èªãã¾ãã
1ï¼ãã¨ãã¨Node0ã§ç¨¼åãã¦ããPod(replicaset-exp-58bp7)
node-controllerã«ãã£ã¦ãé害ã®ããNode0ããç«ã¡éã(NodeControllerEviction)ããã¦ãã¾ãã
Events: node-controller Normal NodeControllerEviction Marking for deletion Pod replicaset-exp-58bp7 from Node aks-nodepool1-12354740-0
2. ãã¨ãã¨Node1ã§ç¨¼åãã¦ããPod(replicaset-exp-6mj5z)
Podã«å¤æ´ãªãã§ãã
Events: kubelet, aks-nodepool1-12354740-1 spec.containers{pod-sample} Normal Started Started container
3ï¼æ°ããçæãããPod(replicaset-exp-8p6xz)
default-schedulerããæç¤ºãåããNode1ã®kubeletã«ãã£ã¦æ°ããPodãçæããã¦ãã¾ãã
Events: default-scheduler Normal Scheduled Successfully assigned replicaset-exp-8p6xz to aks-nodepool1-12354740-1 kubelet, aks-nodepool1-12354740-1 Normal SuccessfulMountVolume MountVolume.SetUp succeeded for volume "default-token-bn7zt" kubelet, aks-nodepool1-12354740-1 spec.containers{pod-sample} Normal Pulling pulling image "nginx" kubelet, aks-nodepool1-12354740-1 spec.containers{pod-sample} Normal Pulled Successfully pulled image "nginx" kubelet, aks-nodepool1-12354740-1 spec.containers{pod-sample} Normal Created Created container kubelet, aks-nodepool1-12354740-1 spec.containers{pod-sample} Normal Started Started container
çµæ2ï¼ã¯ã©ã¹ã¿å ã®ãµã¼ã(VM)ãç°å¸¸çµäºãããã©ããªããï¼
1ã¤ã®Nodeãä½ããã®é害ã§å©ç¨ã§ããªããªã£ãã¨ããå¥ã®æ£å¸¸ã«åä½ãã¦ããNodeä¸ã§ãReplicaSetã®ããã¥ãã§ã¹ãã§æå®ããã¬ããªã«æ°=5ã«ãªããããPodãèªåçæããã¾ããã
ãã ããé害ãçºçããNodeã§ç¨¼åãã¦ããPodããµããã³åé ç½®ãããããã§ã¯ãªããæ°ããå¥ã®Podãæ£å¸¸ãªNodeä¸ã«çæããããã¨ãåããã¾ããã
ã¨ããããã§ãã¯ãReplicaSetã¯ããã¨ãNodeé害ãçºçãã¦ãè¨å®ãã¡ã¤ã«ã«æ¸ããã¨ããã®ã¤ã³ãã©ãç¶æããããã«åä½ããããå®è£ ããã¦ãããã¨ããããã¾ãã
èå¯2ï¼ã ãããPodã復活ãããã®ãï¼
Kubernetesã¯ã©ã¹ã¿å ã§ã ããNodeéå®³ãæ¤ç¥ããã®ã§ããããï¼
Kubernetesã§ã¯ãMasterã§åä½ããController Managerã®Node ControllerãNodeã®ç®¡çãè¡ãã¾ãã
Node Controllerã¯ãKuberneteså é¨ã®ãã¼ããªã¹ããææ°ã®ç¶æ ãä¿æããå½¹å²ãããã¾ããã¯ã©ã¹ã¿å ã®Nodeãæ£å¸¸ã§ãªãå ´åããã®Nodeã®VMãã¾ã 使ç¨å¯è½ãã©ããã確èªãã使ç¨å¯è½ã§ãªãå ´åãNode Controllerã¯è©²å½ã®Nodeããã¯ã©ã¹ã¿ã®Nodeã®ãªã¹ãããåé¤ãã¾ãã
ã¾ããNode Controllerã¯ãã¼ãã®ç¶æ ãç£è¦ãã¾ããNode Controllerã¯ããã¼ããå°éä¸è½ã«ãªã£ãã¨ãï¼ã¤ã¾ããä½ããã®çç±ã§Node Controllerããã¼ããã¼ããåä¿¡ããªããªã£ãã¨ããªã©ï¼ã«ãNodeStatusã®NodeReadyãConditionUnknownã¾ãã¯ConditionFalseã«æ´æ°ãããã¼ããããã¹ã¦ã®Podãåãé¤ãã¾ãã
ãã£ã¦ãä»åã®å®é¨ã§ã¯ãNode01ã®åæ¢ãæ¤ç¥ããNode Controllerããã¼ããªã¹ãããNode0ãå¤ãããããæ£å¸¸ã«åä½ãã¦ããNode1ã«ReplicaSetã§å®ç¾©ããreplicasã®å¤ãç¶æããããPodãé ç½®ããã¾ããã
ãã ããReplicaSetã¯é害ããã£ãPodã¨åãç¶æ ã®ãã®ã§ã¯ãªããå¥ã®æ°ããPodãæ°è¦ä½æãããã¨ãããã¨ãããã¡ãã¨çè§£ãã¦ããå¿ è¦ãããã¾ãã
ã¾ã¨ã
Kubernetesã¯ã忣ç°å¢ã§ãé«ãèé害æ§ãä¿æããããã¿ãæã£ã¦ãããã¨ã確èªã§ãã¾ããã
ãããã
ãã ããã24/365ãµã¼ãã¹ç¡åæ¢éç¨ã¦ã§ã¼ã¤ãã¨ã¯ããããããå¾ç¶ã®ããã¤ãã®ä»ã®å®é¨ãè¡ã£ãã¨ãããçè«ä¸ç¡åæ¢ç¶æ ãç¶æã§ããªãã±ã¼ã¹ãèãããã¾ããã®ã§ãè³å ãæ´çãã¦å¥éããã°ã«ã¾ã¨ãã¾ãã