什麼是靜態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
容器已經刪除了