平常我们提得比较多的Pod,都是通过Deployment,DaemonSet,StatefulSet等方式创建管理的。今天我们介绍一种特殊的Pod,叫静态(Static) Pod。
什么是静态Pod
静态Pod是由kubelet进行管理,仅存在于特定Node上的Pod,这些Pod是不能通过API Server进行管理的,无法与ReplicationController,Deployment或DaemonSet关联。
静态Pod的创建
通过配置yaml文件可以创建静态Pod。只要有kubelet进程,就可以在所在节点运行静态Pod。
如果通过二进制启动的kubelet,可以在kubelet执行时添加配置参数--pod-manifest-path=<yaml directory>
,kubelet会定期扫描目录,应用
我是通过kubeadm安装的集群,我们以kube-scheduler
这个静态Pod为例,看看它是如何运行的。
1 | ps -ef | grep kubelet |
看到--config
的目录为/var/lib/kubelet/config.yaml
,查看此文件内容,我们可以看到参数staticPodPath
的值:
1 | cat /var/lib/kubelet/config.yaml | grep staticPodPath |
查看目录内容
1 | ll /etc/kubernetes/manifests |
由此得知,kubelet会扫描staticPodPath,检测到这个目录下有yaml文件,就创建Pod了。如果要删除Pod,把这些配置文件删除即可。