kubernetes集群之Pod说能不能让我体面的消亡呀?
kubernetes集群之Pod说能不能让我体面的消亡呀?
由于 Pod 所代表的是在集群中节点上运行的进程,当不再需要这些进程时允许其体面地终止。
1、如果 preStop 回调所需要的时间长于默认的体面终止限期会发生什么?
2、 Pod 的体面终止限期是默认值是多少?
3、超出终止宽限期限时,kubelet 会触发强制关闭过程,这个过程是怎么样的?
4、强制删除 StatefulSet 的 Pod,会出现什么问题?为什么强制删除 StatefulSet 的 Pod可能会违背至多一个Pod原则?

囧么肥事-胡说八道



1、Pod 的体面终止限期是默认值是多少?
默认情况下,所有的删除操作都会附有 30 秒钟的宽限期限。
kubectl delete 命令支持 --grace-period=<seconds> 选项,允许你重载默认值, 设定自己希望的期限值。
将宽限期限强制设置为 0 意味着立即从 API 服务器删除 Pod。
如果 Pod 仍然运行于某节点上,强制删除操作会触发 kubelet 立即执行清理操作。
说明: 你必须在设置
--grace-period=0的同时额外设置--force参数才能发起强制删除请求。
2、Pod体面终止过程是怎么样的?
Pod正常终止,容器运行时会发送一个 TERM 信号到每个容器中的主进程。kubelet 开始本地的 Pod 关闭过程,API 服务器中的 Pod 对象被更新,记录涵盖体面终止限期在内 Pod 的最终死期30秒,超出所计算时间点则认为 Pod 已死(dead),之后 Pod 就会被从 API 服务器上移除。
拆分理解
- 发起删除一个Pod命令后系统默认给30s的宽限期,API系统标志这个Pod对象为
Terminating(终止中)状态 - kublectl发现Pod状态为
Terminating则尝试执行preStop生命周期勾子,并可多给2s的宽限期 - 同时控制面将Pod中svc的
endpoint中移除 - 宽限期到则发送
TERM信号,API 服务器删除 Pod 的 API 对象,同时告诉kubelet删除Pod资源对象 - Pod还不关闭再发送
SIGKILL强制关闭,kubelet也会清理隐藏的pause容器

2、超出终止宽限期限时,kubelet 会触发强制关闭过程,这个过程是怎么样的?
直接执行强制删除操作时,API 服务器不再等待来自 kubelet 的、关于 Pod 已经在原来运行的节点上终止执行的确认消息。
API 服务器直接删除 Pod 对象,无论强制删除是否成功杀死了 Pod,都会立即从 API 服务器中释放该名字。
不过在节点侧,被设置为立即终止的 Pod 仍然会在被强行杀死之前获得一点点的宽限时间。
注意:这里的强制删除主要说的是从API服务器移除Pod对象
ReplicaSets和其他工作负载资源不再将 Pod 视为合法的、能够提供服务的副本
节点端依然是可以允许Pod体面消亡
3、 如果 preStop 回调所需要的时间长于默认的体面终止限期会发生什么?
如果 Pod 中的容器之一定义了 preStop 回调勾子, kubelet 开始在容器内运行该回调逻辑。如果超出体面终止限期时,preStop 回调逻辑 仍在运行,kubelet 会请求给予该 Pod 的宽限期一次性增加 2 秒钟。
4、强制删除 StatefulSet 的 Pod,会出现什么问题?为什么强制删除 StatefulSet 的 Pod可能会违背至多一个Pod原则?
强制删除不会等待来自 kubelet 对 Pod 已终止的确认消息。 无论强制删除是否成功杀死了 Pod,它都会立即从 API 服务器中释放该名字。
这将让 StatefulSet 控制器可以创建一个具有相同标识的替身 Pod;因而可能导致正在运行 Pod 的重复。
StatefulSets 可用于运行分布式和集群级的应用,这些应用需要稳定的网络标识和可靠的存储。 这些应用通常配置为具有固定标识固定数量的成员集合。
具有相同身份的多个成员可能是灾难性的,并且可能导致数据丢失 (例如:票选系统中的脑裂场景)。

《Kubernetes-企业级容器应用托管》-持续胡说八道
第一段:推荐阅读:【云原生新时代弄潮儿k8s凭什么在容器化方面独树一帜?】
第二段:推荐阅读:【趁着同事玩游戏偷偷认识k8s一家子补补课】
第三段:推荐阅读:【Kubernetes家族容器小管家Pod在线答疑】
第四段:推荐阅读:【同事提出个我从未想过的问题,为什么Kubernetes要"多此一举"推出静态Pod概念?】
第五段:推荐阅读:【探针配置失误,线上容器应用异常死锁后,kubernetes集群未及时响应自愈重启容器?】
第六段:推荐阅读:【kubernetes集群之Pod说能不能让我体面的消亡呀?】
第七段:待更新?推荐休闲阅读:【囧么肥事】
kubernetes集群之Pod说能不能让我体面的消亡呀?的更多相关文章
- Harbor快速部署到Kubernetes集群及登录问题解决
Harbor(https://goharbor.io)是一个功能强大的容器镜像管理和服务系统,用于提供专有容器镜像服务.随着云原生架构的广泛使用,原来由VMWare开发的Harbor也加入了云原生基金 ...
- 三十二、kubernetes集群的网络实现
Kubernetes集群的网络实现 CNI介绍及集群网络选型 容器网络接口(Container Network Interface),实现kubernetes集群的Pod网络通信及管理.包括: CNI ...
- kubernetes集群pod使用tc进行网络资源限额
kubernetes集群pod使用tc进行网络资源限额 Docker容器可以实现CPU,内存,磁盘的IO限额,但是没有实现网络IO的限额.主要原因是在实际使用中,构建的网络环境是往超级复杂的大型网络. ...
- Kubernetes集群搭建过程中遇到的问题
1. 创建Nginx Pod过程中报如下错误: #kubectlcreate -f nginx-pod.yaml Error from server: error when creating &quo ...
- Kubernetes集群初探
上文我们在一台虚机上演示了Kubernetes基于redis和docker的guestbook留言簿案例,本文我们将通过配置Kubernetes集群的方式继续深入研究.集群组件安装如下配置. IP N ...
- kubernetes集群部署
鉴于Docker如此火爆,Google推出kubernetes管理docker集群,不少人估计会进行尝试.kubernetes得到了很多大公司的支持,kubernetes集群部署工具也集成了gce,c ...
- Centos7上安装Kubernetes集群部署docker
一.安装前准备1.操作系统详情需要三台主机,都最小化安装 centos7.3,并update到最新 [root@master ~]# (Core) 角色 主机名 IPMaster master 192 ...
- 在Kubernetes集群中使用calico做网络驱动的配置方法
参考calico官网:http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/kubeadm ...
- 使用acs-engine在Azure中国区部署kubernetes集群详解
转载请注明出处:http://www.cnblogs.com/wayneiscoming/p/7649642.html 1. acs-engine简介 ACS是微软在2015年12月推出的一项基于容器 ...
随机推荐
- SYCOJ2197三角形游戏
题目-三角形游戏 (shiyancang.cn) 对于任意的一个数字,把他拆分为n个数字,使得其逐层和为该数字. 首先n很小,所以很可能是搜索.DFS,n回选择. #include<bits/s ...
- [源码分析] Facebook如何训练超大模型 --- (2)
[源码分析] Facebook如何训练超大模型 --- (2) 目录 [源码分析] Facebook如何训练超大模型 --- (2) 0x00 摘要 0x01 回顾 1.1 ZeRO 1.1.1 Ze ...
- 今天太开心了,因为我知道了seastar框架
今天听说了一个新的C++语言开发的网络框架,叫做seastar. seastar有何特别之处呢?先看看官网提供的性能数据: 性能 HTTPD benchmark: cpu # request/sec ...
- VS IDE之xml过大报错
语料处理时遇到这个错误 在命令行中输入 $vsWherePath = Join-Path ${env:ProgramFiles(x86)} "Microsoft Visual Studio\ ...
- WebGPU图形编程(2):构建一个单色的三角形<学习引自徐博士教程>
非常兴奋,我坚持了下来,开始更新我的第二篇博客,还是关于WebGPU的,我在学习过程中,对这项技术非常感兴趣,即使它非常抽象,难以理解,因为我看到未来Web3D的发展,WebGPU会成为主流技术,学习 ...
- NumPy 数组学习手册·翻译完成
原文:Learning NumPy Array 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 ...
- 「BalkanOI 2018 Day1」Minmaxtree
「BalkanOI 2018 Day1」Minmaxtree 每个点都有一个最大和最小权值的限制. 然后每一个权值的限制都必须要取到. 每个点显然可以直接让他取到最大或最小权值. 可以想到每个点匹配一 ...
- AtCoder ABC 215 简要题解
A - B 模拟 C 可以直接爆搜,也可以写逐位确定的多项式复杂度算法,使用多重组合式求随意乱排的方案数. D 首先对 \(A\) 所有数暴力分解质因数,然后把遇到过的质因数打上标记. 接下来再对 \ ...
- 自定义ASP.NET MVC Html标签辅助方法
原文:https://blog.csdn.net/a497785609/article/details/50184779 在ASP.NET MVC中,Html辅助方法给我们程序员带来很多方便,其重要性 ...
- 读取数据库Blob类型的文本数据
开发一个查询功能时,遇到了一个ORM的问题:数据库字段是 Blob 类型,里面实际存储的是文本数据,Java 后端代码中用字符串 String 类型去接收这个字段的数据时,报错,提示没有对应的sett ...