系列文章目录
K8s中的Namespace是什么?
Kubernetes 集群的组件介绍
Kubernetes 对象是什么?
Pod——k8s中最重要的对象之一
Kubernetes 和 Docker 之间有什么区别?
部署安装 K8s 为什么要关闭 swap 分区?
k8s中容器之间、pod之间如何进行网络通信?
从管理角度看
- 普通Pod(比如Deployment)由控制平面管理,需要接受api-server的监管。并且可以由控制器进行副本的管理。资源的控制器能够处理副本的管理、上线,并在 Pod 失效时提供自愈能力。
- 静态Pod直接由节点上的 kubelet 进程来管理。不通过 master 节点上的 apiserver 。⽆法与我们常⽤的控制器 Deployment 或者 DaemonSet 进⾏关联。
从受控范围角度看
- 普通Pod可以在整个Kubernetes集群中部署
- 静态Pod始终绑定在某一个节点上。(这意味着每个节点可以有自己的静态Pod配置)
从名称角度来看
- 普通Pod的名称自定义
- 静态Pod的名称把以连字符开头的节点主机名作为后缀。也就是服务名+节点名
从适用场景角度来看
- 静态Pod适用于一些特殊场景,例如在节点引导时运行一些必要的服务,或者用于一些与Kubernetes集群本身无关的应用。比如master节点上的apiserver 、controller manager 、schedule这些核心组件都是静态Pod。由master节点上的kubelet直接监管,这样就无法使用kubectl对静态pod做出不好的操作。有效的保护了这些核心服务。
如果kubectl停止或者删除静态Pod会怎样?
如果尝试删除或者停止,静态Pod会进入Pending状态,并且很快会被kubelet重启。
那如何删除静态Pod
静态Pod的配置文件所在目录由
–Pod-manifest-path=
or–manifest-url=
参数指定。通常是/etc/kubernetes/manifests
。如果要删除静态Pod,只需要在配置目录下删除对应的 yaml 配置文件就可以。因为运行中的 kubelet 会定期扫描配置的目录,并且根据文件中出现或者消失的 Pod配置文件来创建或者删除 Pod。