静态pod是由kubelet进行管理的仅存在与特定node上的pod,他们不能通过api server进行管理,无法与rc,deployment,ds进行关联,并且kubelet无法对他们进行健康检查。
静态pod总是由kubelet创建的,并且总在kubelet所在的node上运行。
创建静态pod有两种方式:配置文件方式和HTTP方式。
配置文件方式:
首先需要设置kubelet 的启动参数"--config",指定kubelet需要监控的配置文件所在的目录,kubelet会定期扫描该目录,并根据该目录下的.yaml或.json文件进行创建操作。
假设配置目录为/etc/kubernetes/conf/,配置启动参数为"--config=/etc/kubernetes/conf/",然后重启kubelet服务。
等待一会,查看本机中已经启动的容器,可以看到容器已经被kubelet创建出来了。
由于静态pod无法通过api server直接管理,所以在master上删除这个pod时,会使其变成pending状态,且不会被删除。
删除该pod的操作只能是到其所在node上将其定义文件.yaml从/etc/kubernetes/conf/目录下删除。
HTTP方式:
通过设置kubelet的启动参数“--manifest-url”,kubelet将会定期从该URL地址下载pod的定义文件,并以.yaml或.json文件的格式进行解析,然后创建pod。其实现方式与配置文件方式是一致的。