特点

直接由特定节点上的 kubelet 进程来管理,不通过 master 节点上的 apiserver

无法与常用的控制器Deployment或者DaemonSet进行关联,由kubelet进程自己来监控,当pod崩溃时重启该pod,kubelet也无法进行健康检查

静态 pod 始终绑定在某一个 kubelet ,并且始终运行在同一个节点上

kubelet会自动为每一个静态 pod 在 Kubernetes 的 apiserver 上创建一个镜像 Pod(Mirror Pod),因此可以在 apiserver 中查询到该 pod,但是不能通过 apiserver 进行控制


两种创建方式

配置文件创建

放在特定目录下的标准的 JSON 或 YAML 格式的 pod 定义文件

kubelet —pod-manifest-path= 来启动 kubelet 进程,kubelet 定期的去扫描这个目录,根据这个目录下出现或消失的 YAML/JSON 文件来创建或删除静态 pod

kubeadm 中 kubelet 指定的目录位置
/var/lib/kubelet/config.yaml
image.png

node01 节点
/etc/kubernetes/manifests/app-static-pod.yml

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: app-static-pod
  5. spec:
  6. containers:
  7. - image: registry.cn-beijing.aliyuncs.com/exer/mage:myapp-1
  8. name: app-static-pod

自动创建出新 pod
image.png命名格式 pod名-node名

使用 kubectl delete 删除还会重建
image.png

HTTP 创建

kubelet 周期地从 –manifest-url=参数指定的地址下载文件,并且把它翻译成 JSON/YAML 格式的 pod 定义