静态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、或管理工具操作的误删除,可以用来部署核心组件应用。保障应用服务总是运行稳定数量和提供稳定服务。

静态Pod的更多相关文章

  1. [k8s] kubelet单组件启动静态pod

    kubelet单组件启动静态pod 无需k8s其他组件,单独下载kubelet的二进制,可以启动静态pod. 静态pod不受api管理,kubectl get po可以看到,但是kubectl del ...

  2. 同事提出个我从未想过的问题,为什么Kubernetes要"多此一举"推出静态Pod概念?

    同事提出个我从未想过的问题,为什么Kubernetes要"多此一举"推出静态Pod概念? 我们知道k8s中Pod可以说是一个合格的容器小管家,Pod 被设计成支持多个容器可以一起进 ...

  3. pod(七):静态pod

    目录 一.系统环境 二.前言 三.静态pod 3.1 何为静态pod 3.2 创建静态pod 3.2.1 使用--pod-manifest-path指定静态pod目录 3.2.2 静态pod默认目录/ ...

  4. iOS 静态:动态 Pod

    一.静态和动态 在项目中使用 pod 实现模块化,对于子模块和第三类库的导入方式存在两种:静态库.动态库. 当在 podfile 中指定 use_frameworks! 时,子模块和第三方类库将被打包 ...

  5. Plain old data structure(POD)

    Plain old data structure, 缩写为POD, 是C++语言的标准中定义的一类数据结构,POD适用于需要明确的数据底层操作的系统中.POD通常被用在系统的边界处,即指不同系统之间只 ...

  6. Plain Old Data (POD) (转)

    定义 POD类型包括下述C++类型,以及其cv-qualified的类型,还有以其为基类型的数组类型: 标量类型(scalar type) POD类类型(POD class type) 标量类型 术语 ...

  7. 三、Kubernetes之深入了解Pod

      1.yaml格式的Pod配置文件内容及注解 深入Pod之前,首先我们来了解下Pod的yaml整体文件内容及功能注解. 如下: # yaml格式的pod定义文件完整内容: apiVersion: v ...

  8. Kubernetes Pod详解

    目录 基本概念 pod资源配额 容器的健康检查 静态pod 基本概念 Pod是kubernetes集群中最基本的资源对象.每个pod由一个或多个业务容器和一个根容器(Pause容器)组成.Kubern ...

  9. Kubernetes之Pod使用

    一.什么是Podkubernetes中的一切都可以理解为是一种资源对象,pod,rc,service,都可以理解是 一种资源对象.pod的组成示意图如下,由一个叫”pause“的根容器,加上一个或多个 ...

随机推荐

  1. ShenZhenXiaoLengHuanYou Technology Co.,Ltd 技术支持网站

    本网页为ShenZhenXiaoLengHuanYou Technology Co.,Ltd 团队的技术支持网址,如果在我们开发的游戏中遇到任何问题,欢迎联系我们! QQ:2535510006 邮箱: ...

  2. 【翻译】Flink Table Api & SQL — 配置

    本文翻译自官网:Configuration https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/config.h ...

  3. php对数组遍历的两种方式示例

    在对 php 数组遍历时,一般经常使用 foreach 来遍历,很少用 while 来遍历,在下面的代码中作一个对比. <?php $content = ["ID" => ...

  4. [ Docker ] 基础的网络应用

    1. Docker 基本网络模型 Docker 有 4 种基本的网络模型: bridge 桥接模式 host 网络模式 container 联盟模式 none 模式 Docker daemon 在启动 ...

  5. 【python库模块】Python subprocess模块功能与常见用法实例详解

    前言 这篇文章主要介绍了Python subprocess模块功能与常见用法,结合实例形式详细分析了subprocess模块功能.常用函数相关使用技巧. 参考 1. Python subprocess ...

  6. Nginx 配置学习

    官方文档 一.概述 Nginx的配置放在配置文件nginx.conf/etc/nginx/nginx.conf中,大概的结构如下: main # 全局配置 events { # nginx工作模式配置 ...

  7. Mysql操作命令(基础)

    创建数据库 CREATE DATABASE name; 显示所有数据库 SHOW DATABASES; 删除数据库 DROP DATABASE name; 选择数据库 USE DATABASENAME ...

  8. 关于Oracle报 ORA-00600: 内部错误代码, 参数: [kkqcscpopn_Int: 0], [], [], [], [], [], [], [], [], [], [], []解决

    服务器上有的Oracle版本是11.2.0.1.0,但是用到了mybatis-PageHelper分页插件会报这个错误. 下面说说我是怎么遇到这个错误的:同事写的这个功能点是用到了前台分页,是正常的没 ...

  9. SpringBoot系列教程web篇之404、500异常页面配置

    接着前面几篇web处理请求的博文,本文将说明,当出现异常的场景下,如404请求url不存在,,403无权,500服务器异常时,我们可以如何处理 原文友链: SpringBoot系列教程web篇之404 ...

  10. OpenVAS开源风险评估系统部署方案

    OpenVAS,即开放式漏洞评估系统,是一个用于评估目标漏洞的杰出框架.功能十分强大,最重要的是,它是“开源”的——就是免费的意思啦- 它与著名的Nessus“本是同根生”,在Nessus商业化之后仍 ...