Kubernetes深入Pod之静态Pod

原创
半兽人 发表于: 2018-10-09   最后更新时间: 2021-09-28 11:15:47  
{{totalSubscript}} 订阅, 11,106 游览

静态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
spec:
  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

容器已经删除了。

更新于 2021-09-28

晒太阳 2年前

创建了目录和文件,docker ps没有看到容器启动起来呢

半兽人 -> 晒太阳 2年前

kubelet可能有问题,看下。

查看kubernetes更多相关的文章或提一个关于kubernetes的问题,也可以与我们一起分享文章