什么是静态Pod

静态pod是由kubelet进行管理的仅存在于特定的node上的pod

他们不能通过API server进行管理,无法与ReplicationController  Deployment 或者DaemonSet 进行关联,并且kubelet无法对他们进行健康检查。

静态Pod的创建:

静态pod可以通过两种方式创建:使用配置文件或HTTP(不演示了!)。

1 通过配置文件创建

由kubeadm安装的集群,对应的kubelet已经配置了静态Pod文件的路径

[root@k8s-master ~]# cat /var/lib/kubelet/config.yaml |grep staticPodPath
staticPodPath: /etc/kubernetes/manifests

 vim static-web.yaml

apiVersion: v1
kind: Pod
metadata:
  name: static-web
  labels:
    name: static-web
spec:
  containers:
    - name: static-web
      image: nginx
      ports:
        - name: web
          containerPort: 80

 查看pod

[root@k8s-master manifests]# kubectl get pod -o wide
NAME                     READY   STATUS              RESTARTS   AGE   IP            NODE         NOMINATED NODE   READINESS GATES

static-web2-k8s-master   0/1     ContainerCreating   0          11m   <none>        k8s-master   <none>           <none>

 上面也提到了,他不归任何部署方式来管理,即使我们尝试kubectl delete 命令去删除

kubectl delete pod static-web-k8s-m1
pod "static-web-k8s-m1" deleted
$ kubectl get pods -o wide
NAME                READY     STATUS    RESTARTS   AGE       IP        NODE      NOMINATED NODE
static-web-k8s-m1   0/1       Pending   0          2s        <none>    k8s-m1    <none>

 可以看出静态pod通过这种方式是没法删除的

除非删除文件:rm -rf /etc/kubernetes/manifests/static-web.yaml