静态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
容器已经删除了。
创建了目录和文件,docker ps没有看到容器启动起来呢
kubelet可能有问题,看下。