kube-system 命名空间中的 pods 是如何管理的?

How are pods in kube-system namespace managed?

我想了解 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

没关系。 Pods 如愿删除。但是如果我这样做 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

corednskube-proxy 也是如此。但是其他人(apiserveretcdcontrollerscheduler)呢?为什么他们还活着?

控制平面 pods 是 运行 因为 static Pods - 静态 Pods 不受控制平面控制器的管理,例如守护进程集和副本集。 静态 pods 由本地节点上的 Kubelet 守护进程直接管理。