静态 Pod
在Kubernetes集群中除了我们经常使用到的普通的 Pod 外,还有一种特殊的 Pod,叫做Static Pod,就是我们说的静态Pod。
静态 Pod 直接由特定节点上的kubelet进程来管理,不通过master 节点上的apiserver。无法与常用的控制器Deployment或者DaemonSet进行关联,它由kubelet进程自己来监控,当pod崩溃时重启该pod,kubelete也无法对他们进行健康检查。静态 pod 始终绑定在某一个kubelet,并且始终运行在同一个节点上。
kubelet会自动为每一个静态 pod 在 Kubernetes 的apiserver 上创建一个镜像 Pod(Mirror Pod),因此我们可以在 apiserver 中查询到该 pod,但是不能通过 apiserver 进行控制(例如不能删除)。
静态POD文档
创建静态 Pod 有两种方式:配置文件和 HTTP 两种方式
配置文件
配置文件就是放在特定目录下的标准的 JSON 或 YAML 格式的 pod 定义文件。用kubelet --pod-manifest-path=来启动kubelet进程,kubelet 定期的去扫描这个目录,根据这个目录下出现或消失的 YAML/JSON 文件来创建或删除静态 pod。
比如我们在 node01 这个节点上用静态 pod 的方式来启动一个 nginx 的服务。我们登录到node01节点上面,可以通过下面命令找到kubelet对应的启动配置文件路径
systemctl status -l kubelet
systemctl show --property=Environment kubelet| cat
配置文件有多个:
/etc/kubernetes/bootstrap-kubelet.conf
/etc/kubernetes/kubelet.conf
/var/lib/kubelet/config.yaml
/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
其