欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

kubernetes中的静态Pod

程序员文章站 2024-03-11 10:36:43
...

更多内容,请查看博客原文:kubernetes中的静态Pod
https://finolo.gy/2020/01/kubernetes中的静态Pod/

平常我们提得比较多的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会定期扫描目录,应用目录下面的yaml文件来创建静态Pod。

我是通过kubeadm安装的集群,我们以kube-scheduler这个静态Pod为例,看看它是如何运行的。

ps -ef | grep kubelet
root       6088      1  3 Dec23 ?        01:45:47 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=systemd --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1

看到--config的目录为/var/lib/kubelet/config.yaml,查看此文件内容,我们可以看到参数staticPodPath的值:

cat /var/lib/kubelet/config.yaml | grep staticPodPath
staticPodPath: /etc/kubernetes/manifests

查看目录内容

ll /etc/kubernetes/manifests
total 16
-rw------- 1 root root 1928 Dec 12 10:38 etcd.yaml
-rw------- 1 root root 2610 Dec 12 10:38 kube-apiserver.yaml
-rw------- 1 root root 2486 Dec 12 10:38 kube-controller-manager.yaml
-rw------- 1 root root  990 Dec 12 10:38 kube-scheduler.yaml

由此得知,kubelet会扫描staticPodPath,检测到这个目录下有yaml文件,就创建Pod了。如果要删除Pod,把这些配置文件删除即可。

更多内容,请查看博客原文:kubernetes中的静态Pod
https://finolo.gy/2020/01/kubernetes中的静态Pod/