Kubernetes深入Pod之静态Pod

原创
半兽人 发表于: 2018-10-09   最后更新时间: 2021-02-24 10:33:32  

静态Pod

静态Pod是由 kubectl 进行管理的仅存于特定 Node 上的 Pod。他们不能通过 API Server 进行管理,无法与ReplicationController、Deployment 或者 DaemonSet 进行关联,并且 kubelet 也无法对他们进行健康检查。静态Pod 总是由 kubectl 进行创建,并且总是在 kubelet 所在的 Node 上运行。

创建Pod有两种方式:配置文件HTTP方式,这里只说常用的配置文件方式

配置文件方式

在目录/etc/kubelet.d中放入static-web.yaml文件,内容:

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

等一会,查看本机中已经启动的容器:

docker ps

就可以看到一个Nginx容器已经被Kubelet成功创建了出来。

到Master节点查看Pod列表,可以看到这个static pod

kubectl get pods

由于静态Pod无法通过API Server直接管理,所以在Master节点尝试删除这个Pod,将会使其标为Pending状态,且不会被删除。

kubectl delete pod static-web-node1

删除该Pod的操作只能是到其所在Node上,将其自定义文件 static-web.yaml 从 /etc/kubelet.d 目录下删除

rm /etc/kubelet.d/static-web.yaml
docker ps

容器已经删除了。



您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容


上一条: Kubernetes深入Pod
下一条: Kubernetes深入Pod之容器共享Volume