码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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 服务器上移除。

    拆分理解

    1. 发起删除一个Pod命令后系统默认给30s的宽限期,API系统标志这个Pod对象为Terminating(终止中)状态
    2. kublectl发现Pod状态为Terminating则尝试执行preStop生命周期勾子,并可多给2s的宽限期
    3. 同时控制面将Pod中svc的endpoint中移除
    4. 宽限期到则发送TERM信号,API 服务器删除 Pod 的 API 对象,同时告诉kubelet删除Pod资源对象
    5. 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说能不能让我体面的消亡呀?】

    第七段:推荐阅读:【k8s家族Pod辅助小能手Init容器认知答疑?】

    第八段:待更新?推荐休闲阅读:【囧么肥事】

  • 相关阅读:
    python调用外部exe程序 等待程序执行完后后 往下运行 直接往下运行
    vue中使用video.js,且可以截图、录制和下载视频
    架构每日一学 4:成为首席架构师,你必须学会顺应人性
    在Docker中设置Redis的密码
    来了!HelloGitHub 年度热门开源项目
    Mistral AI 推出最新Mistral Large模型,性能仅次于GPT 4
    python 断点续传下载
    SpringBoot实现登录拦截器
    Java语言知识大盘点(期末总复习)二
    一款利用人工智能将自然语言查询转换为 SQL 代码的互译工具 - SQL Translator
  • 原文地址:https://www.cnblogs.com/jiongmefeishi/p/15925938.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号