zoukankan      html  css  js  c++  java
  • 静态Pod

    静态Pod

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

    概念

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

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

    配置文件

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

    如果在已经启动的kubelet组件上,没有添加 --pod-manifest-path= 参数,添加后,重新启动即可部署静态Pod。

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

    模板:

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

    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。

    静态Pod的作用

    由于静态Pod只受所在节点的kubelet控制,可以有效预防通过kubectl、或管理工具操作的误删除,可以用来部署核心组件应用。保障应用服务总是运行稳定数量和提供稳定服务。

  • 相关阅读:
    Docker | 第二章:第一个Docker应用
    Docker | 第一章:Docker简介
    Docker | 第零章:前言
    SpringBoot | 第十五章:基于Postman的RESTful接口测试
    SpringBoot | 第十四章:基于Docker的简单部署
    SpringBoot | 第十三章:测试相关(单元测试、性能测试)
    2014年计划
    学习方法,工作方法 探讨
    2013年总结
    asp.net用Zxing库实现条形码输出
  • 原文地址:https://www.cnblogs.com/h-gallop/p/11774752.html
Copyright © 2011-2022 走看看