同事提出个我从未想过的问题,为什么Kubernetes要"多此一举"推出静态Pod概念?
同事提出个我从未想过的问题,为什么Kubernetes要"多此一举"推出静态Pod概念?
我们知道k8s中Pod可以说是一个合格的容器小管家,Pod 被设计成支持多个容器可以一起进行调度,容器之间可以共享资源和依赖、彼此通信、协调何时以及何种方式运行或终止自身。
不知道小伙伴有没有注意到我们小管家的孪生兄弟静态Pod?
为什么k8s会推出静态Pod概念?
囧么肥事胡说八道开课啦
静态 Pod 有什么特殊的地方呢?
正常情况下Pod是在Master上统一管理,指定,分配。所谓静态Pod就是不接受Master的管理,在指定的node上当 kubelet
启动时,会自动启动所有定义的静态Pod。
静态 Pod 直接由特定节点上的 kubelet 进程来管理,不通过 master 节点上的 apiserver
。⽆法与我们常⽤的控制器 Deployment
或者 DaemonSet
进⾏关联,kubelet
直接监控每个Pod,并在故障失效时进行重启自愈。
静态 Pod 始终绑定在某⼀个 kubelet
,并且始终运⾏在同⼀个节点上。
既然发现API不能管理,为什么能“看见”运行的静态Pod?
kubelet会为每个它管理的静态Pod,调用api-server
在 Kubernetes
的 apiserver
上创建⼀个镜像 Pod(Mirror Pod
)。因此我们可以在 apiserver
中查询到该 Pod,也能通过kubectl等方式进行访问,但是不能通过 apiserver 进⾏控制(例如不能删除)。
普通Pod失败自愈和静态Pod有什么区别?
常规Pod用工作负载资源来创建和管理多个 Pod。 资源的控制器能够处理副本的管理、上线,并在 Pod 失效时提供自愈能力。
本身节点可以尝试重启或者完全替换操作,kubernetes
默认的自愈机制是当Pod退出时对Pod进行重启。
如果重启失败,可以重新拉取Pod,实现替身替换:
例如,如果一个节点失败,控制器注意到该节点上的 Pod 已经停止工作, 就可以创建替换性的 替身Pod。调度器会将替身 Pod 调度到一个健康的节点执行。
下面是一些管理一个或者多个 Pod 的工作负载资源的示例:
Deployment
StatefulSet
DaemonSet
静态Pod是指定在特定的节点上运行的Pod,完全交给kubelet进行监督自愈,重启也会在同一个指定的节点上进行重启。静态 Pod 始终绑定在某⼀个 kubelet
,并且始终运⾏在同⼀个节点上。
如果kubectl停止或者删除静态Pod会怎样?
如果尝试删除或者停止,静态Pod会进入Pending
状态,并且很快会被kubelet
重启。
那如果我非要删除它呢?
kubelet
启动时,由 –Pod-manifest-path= or –manifest-url=
参数指定的⽬录下定义的所有 Pod 都会自动创建。
删除只需要在配置目录下删除对应的 yaml
配置文件。
运行中的 kubelet 会定期扫描配置的目录,并且根据文件中出现或者消失的 Pod配置文件来创建或者删除 Pod。
静态Pod有什么作用?有哪些内置静态Pod?
静态 Pod 通常绑定到某个节点上的 kubelet
。 其主要用途是运行自托管的控制面。
因为使用静态Pod可以有效预防通过kubectl
、或管理工具操作的误删除,可以利用它来部署一些核心组件应用,保障应用服务总是运行稳定数量和提供稳定服务。
在自托管场景中,使用 kubelet
来管理各个独立的控制面组件。例如:
- 调度组件
kube-scheduler
- 秘书组件
kube-apiserver
- 核心大脑组件
kube-controller-manager
- 数据仓组件
etcd
《Kubernetes-企业级容器应用托管》-持续胡说八道
第一段:推荐阅读:【云原生新时代弄潮儿k8s凭什么在容器化方面独树一帜?】
第二段:推荐阅读:【趁着同事玩游戏偷偷认识k8s一家子补补课】
第三段:推荐阅读:【Kubernetes家族容器小管家Pod在线答疑】
第四段:推荐阅读:【同事提出个我从未想过的问题,为什么Kubernetes要"多此一举"推出静态Pod概念?】
第五段:待更新?推荐休闲阅读:【囧么肥事】
同事提出个我从未想过的问题,为什么Kubernetes要"多此一举"推出静态Pod概念?的更多相关文章
- 对于不平凡的我来说,从小我就在想为啥别人就什么都能拥有,而看看自己却什么都没有,对于原来的我就会抱怨爸妈怎么没有别人父母都能给自己想要的,可我从未想过父母的文化只有小学,其实父母内心也有太多的辛酸,所以我不甘愿如此,从此让我在大学里面直接选择一个让我巨大的转折————IT。
对于不平凡的我来说,从小我就在想为啥别人就什么都能拥有,而看看自己却什么都没有,对于原来的我就会抱怨爸妈怎么没有别人父母都能给自己想要的,可我从未想过父母的文化只有小学,其实父母内心也有太多的辛酸,所 ...
- 探针配置失误,线上容器应用异常死锁后,kubernetes集群未及时响应自愈重启容器?
探针配置失误,线上容器应用异常死锁后,kubernetes集群未及时响应自愈重启容器? 探针配置失误,线上容器应用异常死锁后,kubernetes集群未及时响应自愈重启容器? 线上多个服务应用陷入了死 ...
- kubernetes集群之Pod说能不能让我体面的消亡呀?
kubernetes集群之Pod说能不能让我体面的消亡呀? 由于 Pod 所代表的是在集群中节点上运行的进程,当不再需要这些进程时允许其体面地终止. 1.如果 preStop 回调所需要的时间长于默认 ...
- k8s家族Pod辅助小能手Init容器认知答疑?
k8s家族Pod辅助小能手Init容器认知答疑? k8s集群Init 容器是一种特殊容器,职责是在Pod的生命周期中作为应用容器的前置启动容器. 在很多应用场景中,在 Pod 内的应用容器正式启动之前 ...
- IT运维面试问题总结
IT运维面试总结如下,后期更新于:https://www.yuque.com/docs/share/d3dd1e8e-6828-4da7-9e30-6a4f45c6fa8e. 欢迎基于学习.交流目的的 ...
- Kubernetes K8s
1 Kubernetes入门及概念介绍 Kubernetes(K8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展.开源将Docker 看成Kubernetes内部使用的低级别组 ...
- Skype的故事:几乎所有风投都想投 犯罪分子洗钱必备
Skype的故事:几乎所有风投都想投 犯罪分子洗钱必备 转载自: http://news.chinaventure.com.cn/11/7/1381032922.shtml 今年是 Skype 网络电 ...
- 成 功 的 背 后 !( 致给所有IT人员)
转载了这篇文章,希望能对自己和看到这篇博客的人有所激励. 成功的背后,有着许多不为人知的故事,而正是这些夹杂着泪水和汗水的过去,才成就了一个个走向成功的普通人. ------------------- ...
- 成功的背后!(给所有IT人)
转载:来自CSDN第一名博主:http://blog.csdn.net/phphot/article/details/2187505 成功的背后,有着许多不为人知的故事,而正是这些夹杂着泪水和汗水的过 ...
随机推荐
- unittest_认识unittest(1)
unittest是python内置的单元测试框架,具备编写用例.组织用例.执行用例.输出报告等自动化框架的条件. 使用unittest前需要了解该框架的五个概念: 即test case,test su ...
- Nginx高并发简单配置
https://www.cnblogs.com/sunjianguo/p/8298283.html 停用除SSH外的所有服务,仅保留nginx,优化思路主要包括两个层面:系统层面+nginx层面. 1 ...
- spring boot & maven 多模块 ---心得
1.前言 有个名字叫 多模块企业级项目 ,其实就是一个父级maven工程里面有着多个子级maven工程的项目 ,甚至在子级maven 里面还有多个子级maven, 这用到了 maven多模块开发的使 ...
- Go语言系列之网络编程
现在我们几乎每天都在使用互联网,我们前面已经学习了如何编写Go语言程序,但是如何才能让我们的程序通过网络互相通信呢?本章我们就一起来学习下Go语言中的网络编程. 关于网络编程其实是一个很庞大的领域,本 ...
- 利用Javaweb应用中六种属性范围,来理解Servlet的并发问题
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6513748225550189060/ Web应用中有六种属性范围: (1) 局部变量 (2) 实例变量 (3) 类 ...
- Linux环境下的Docker的安装和部署、学习二
DockerFile体系结构(保留字指令) FROM:基础镜像,当前新镜像是基于哪个镜像的 MAINTAINER:镜像维护者的姓名和邮箱地址 RUN:容器构建时需要运行的命令 EXPOSE:当前容器对 ...
- 《剑指offer》面试题44. 数字序列中某一位的数字
问题描述 数字以0123456789101112131415-的格式序列化到一个字符序列中.在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等. 请写一个函数,求任意第n位 ...
- LaTex 中圆圈序号及一些特殊字符的输入
众所周知,LATEX 提供了 \textcircled 命令用以给字符加圈,但效果却不怎么好: 实际上,加圈并不是一个平凡的变换,它会涉及到圈内字符形状的微调,而这是几乎无法在 TEX 宏层面解决的. ...
- vscode配置Microsoft C++注意事项
vscode配置c++插件教程链接如下: https://code.visualstudio.com/docs/cpp/config-msvc#_check-your-microsoft-visual ...
- vue文档1-VSCode介绍
开发工具VSCode: Vue的开发工具用的是VSCode(Visual Studio Code),这款开发工具是微软官方出品,开源,免费,并且功能相当强大,使用者很多,插件相当丰富,是Vue开发的不 ...