kube-system命名空间中的pod是如何管理的?
我试图了解 kubernetes 是如何工作的,所以我尝试为我的 minikube 执行此操作:
~ kubectl delete pod --all -n kube-system
pod "coredns-f9fd979d6-5n4b6" deleted
pod "etcd-minikube" deleted
pod "kube-apiserver-minikube" deleted
pod "kube-controller-manager-minikube" deleted
pod "kube-proxy-879lg" deleted
pod "kube-scheduler-minikube" deleted
没关系。根据需要删除了 Pod。但如果我这样做,kubectl get pods -n kube-system我会看到:
NAME READY STATUS RESTARTS AGE
coredns-f9fd979d6-5d25r 1/1 Running 0 50s
etcd-minikube 1/1 Running 0 50s
kube-apiserver-minikube 1/1 Running 0 50s
kube-controller-manager-minikube 1/1 Running 0 50s
kube-proxy-nlw69 1/1 Running 0 43s
kube-scheduler-minikube 1/1 Running 0 49s
好的。我以为是 ReplicaSet 或 DaemonSet:
? ~ kubectl get ds -n kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 18m
? ~ kubectl get rs -n kube-system
NAME DESIRED CURRENT READY AGE
coredns-f9fd979d6 1 1 1 18m
对于coredns和是正确的kube-proxy。但是其他人 ( apiserver, etcd,controller和scheduler) 呢?他们为什么还活着?
回答
控制平面 Pod 作为静态Pod 运行- 静态Pod不受控制平面控制器(例如 DaemonSet 和 ReplicaSet)的管理。静态 Pod由本地节点上的 Kubelet 守护进程直接管理。