作者信息:https://home.cnblogs.com/u/huangjiabobk

在Linux中,LVS-DR模型的特性是什么?

在Kubernetes中删除一个Pod会触发一系列事件和操作,这些操作涉及多个Kubernetes组件。以下是删除Pod时可能发生的详细步骤:

  1. 删除请求

    • 用户或自动化系统通过kubectl命令行工具、Kubernetes API或其他自动化工具发出删除Pod的请求。
  2. API Server接收请求

    • Kubernetes API Server接收到删除Pod的请求,并验证请求的合法性。
  3. 调度器停止调度

    • 虽然调度器不直接参与删除过程,但一旦Pod被标记为删除,调度器将停止对该Pod进行任何调度操作。
  4. Kubelet接收删除指令

    • 与待删除Pod所在节点对应的Kubelet接收到API Server发出的删除指令。
  5. 终止容器

    • Kubelet开始终止Pod中的所有容器。它会向容器发送SIGTERM信号,请求容器进行优雅关闭。容器接收到信号后,应该进行清理工作,如保存状态、完成正在处理的请求等。
  6. 容器优雅关闭

    • 容器在接收到SIGTERM信号后,会尝试优雅地关闭。这通常包括完成当前的工作、释放资源、保存状态等。
  7. 超时和强制终止

    • 如果容器在指定的优雅关闭时间(默认为30秒)内没有停止,Kubelet会向容器发送SIGKILL信号,强制终止容器。
  8. 网络和存储资源清理

    • Pod的网络资源被释放,包括CNI插件分配的IP地址等。如果有持久化存储需求,Persistent Volume Claim (PVC) 仍然保留,除非PVC的回收策略是删除。
  9. Pod状态更新

    • Kubelet更新Pod的状态为Terminating,然后是Succeeded或Failed(取决于容器是否成功终止)。
  10. API Server更新状态

    • Kubelet将Pod的最新状态报告给API Server,API Server更新Pod的状态信息。
  11. Service和Endpoints更新

    • 如果Pod是某个Service的一部分,Kube-Proxy和相关的Endpoints资源会更新,以反映Pod的删除,确保不再将流量路由到已删除的Pod。
  12. 资源监控和日志

    • 监控系统停止收集该Pod的性能指标。日志收集系统(如Fluentd)继续收集Pod的日志,直到日志收集完成。
  13. 垃圾回收

    • Kubernetes的垃圾收集器开始清理与Pod相关的资源对象,如Secrets、ConfigMaps等,如果它们没有被其他资源引用。
  14. 事件记录

    • Kubernetes记录Pod的删除事件,可以在API Server的事件日志中查看。
  15. Pod完全删除

    • 最终,Pod的所有资源和状态信息从API Server中删除,Pod不再存在于集群中。

综上所述,在整个删除过程中,Kubernetes确保Pod的资源被适当地释放和清理,同时更新集群的状态以反映Pod的删除。如果Pod是由Deployment、StatefulSet或DaemonSet等控制器管理的,删除Pod可能触发控制器创建一个新的Pod来替换被删除的Pod,以维持期望的副本数量。

posted @   黄嘉波  阅读(9)  评论(0编辑  收藏  举报
努力加载评论中...
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波
点击右上角即可分享
微信分享提示