静态Pod

静态Pod

kubernetes 除了咱们经常使用的普通Pod外,还有一种特殊的Pod,叫静态Pod。nginx

概念

静态Pod是直接由节点kubelet进程来管理的,不能经过apiserver的master节点控制。没法与咱们经常使用的控制器daemonset 和 deployment 联合使用,它由kubelet进程负责监控,当Pod崩溃时重启该Pod,kubelet也没法对静态Pod进行健康检查。静态Pod始终绑定在某一个kubelet节点上,而且始终运行在同一个节点。kubelet会自动为每个静态Pod在kubernetes的apiserver上建立一个镜像Pod(Mirror Pod),所以咱们能够经过apiserver看到静态Pod,可是不能经过apiserver控制。web

建立静态Pod的方式有两种: 配置文件、HTTPapi

配置文件

以配置文件方式部署静态Pod,须要开启kubelet组件的 --pod-manifest-path= 参数,来配置静态Pod的配置文件目录。配置文件是以标准的JSON 或 YAML 格式定义的Pod。kubelet会按期扫描静态配置文件目录,根据这个目录添加和移除的JSON或YAML文件来启动和删除静态Pod。 app

若是在已经启动的kubelet组件上,没有添加 --pod-manifest-path= 参数,添加后,从新启动便可部署静态Pod。 工具

好比--pod-manifest-path=/etc/kubernetes/manifests 而用kubeadm部署的集群,在这个目录下,能够看到kube-apiserver.yaml 、kube-controller-manager.yaml 、kube-scheduler.yaml三个静态Pod yaml文件url

模板:翻译

/etc/kubernetes/manifest/static-web.yamlcode

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

HTTP方式建立静态Pod

kubelet 周期地从–manifest-url=参数指定的地址下载文件,而且把它翻译成 JSON/YAML 格式的 pod 定义。此后的操做方式与–pod-manifest-path=相同,kubelet 会不时地从新下载该文件,当文件变化时对应地终止或启动静态 pod。server

静态Pod的做用

因为静态Pod只受所在节点的kubelet控制,能够有效预防经过kubectl、或管理工具操做的误删除,能够用来部署核心组件应用。保障应用服务老是运行稳定数量和提供稳定服务。进程

相关文章
相关标签/搜索