首页 > 其他分享 >在K8S中,Pod删除过程会发生什么?

在K8S中,Pod删除过程会发生什么?

时间:2024-01-27 14:22:23浏览次数:26  
标签:容器 控制器 删除 Kubernetes API Pod K8S

在Kubernetes(简称K8s)中,删除一个Pod时会发生以下一系列事件:

  1. 发出删除命令
    用户通过kubectl命令行工具或者API接口发出删除Pod的请求,例如执行kubectl delete pod <pod-name>

  2. API Server响应
    Kubernetes API Server接收到删除请求后,验证权限并更新其内部状态,标记指定Pod为待删除状态。

  3. 清理资源

    • 如果Pod是Deployment、StatefulSet等控制器管理的Pod,则控制器会注意到Pod被删除,并按照控制器策略创建新的Pod以保持期望的副本数。
    • kubelet监控到Pod的状态变化后,开始执行相应的生命周期钩子函数,如预停止(pre-stop hook),以便容器能优雅地结束服务或进行必要的清理工作。
    • 当kubelet确认可以安全删除Pod时,它将终止Pod内的所有容器,并释放该Pod所占用的本地节点资源,包括但不限于内存、CPU、磁盘空间和网络端口。
  4. 垃圾回收

    • 随着Pod的容器被终止,kubelet与容器运行时(如Docker、containerd)协作,彻底清除已终止容器的相关数据。
    • 对于由PersistentVolume(PV)提供持久化存储的Pod,即使Pod被删除,其数据通常不会丢失,因为PV与Pod解耦,除非明确设置了卷的回收策略为删除。
  5. 从etcd中删除记录
    在Pod的容器和资源完全清理完毕后,Kubernetes API Server最终会在etcd中删除Pod的相关记录。

  6. 更新集群状态

    • 控制器(如ReplicaSet/Deployment等)根据需要调整自身状态,确保达到预期的副本数量。
    • 负载均衡器(如Service)如果关联了这个Pod,也会自动重新配置,确保流量分配给其余可用的Pod实例。

综上所述,在Kubernetes中删除一个Pod是一个涉及多个组件协同工作的过程,旨在确保资源的有效回收和应用程序服务的连续性。

标签:容器,控制器,删除,Kubernetes,API,Pod,K8S
From: https://www.cnblogs.com/huangjiabobk/p/17991385

相关文章

  • 在K8S中,Pod创建过程包括什么?
    在Kubernetes(K8s)中,Pod的创建过程通常包括以下步骤:提交Pod定义:用户通过kubectl命令行工具或者调用APIServer接口,提交一个包含Pod配置信息的YAML或JSON文件。这个配置文件详细描述了Pod的元数据(如名称、标签等)、容器镜像、环境变量、端口映射、卷挂载以及其他运行时参数。接......
  • 80. 删除有序数组中的重复项 II(中)
    目录题目题解:双指针题目给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。说明:为什么返回数值是整数,但输......
  • [word] word粘贴文字,怎样删除背景的颜色-
    在复制网页上的文字并粘贴到Word文档中时,经常会把文字的背景色也粘贴到文档中,那么,Word文档粘贴文字,怎样删除背景的颜色?方法一:Word复制过来的文字背景色应该如何去掉?第一步:打开Word客户端,然后点击『页面布局』,找到『页面边框』,调出『边框和底纹』对话框;第二步:调出『边框和底纹』对......
  • [office] Excel文档个人信息如何删除
    Excel文档个人信息删除步骤1.打开Excel表格,点击工具栏的“文件”→“选项”2.在Excel选项里选择“信任中心”并点击“信任中心设置”3.接着点击“个人信息选项”→“文档检查器”4.勾选“文档属性和个人信息”接着点击“检查”5.在审阅检......
  • Linux命令:userdel 删除用户账户
    userdel命令使用1.删除用户账户$sudouserdeluser12.删除用户账户,并删除用户『主目录』和『邮件』【-r/--remove】$sudouserdel-ruser19$sudouserdel--removeuser203.强制删除用户账户【-f/--force】$sudouserdel-fuser1$sudouserdel--force......
  • 在K8S中各个组件及其作用?
    Kubernetes(简称K8s)是一个强大的容器编排系统,其主要组件及其作用如下:kube-apiserver:集群的主入口点,提供了RESTfulAPI接口供用户或内部组件与集群进行交互。它负责验证和配置数据,并将所有请求持久化存储在etcd中。etcd:分布式键值存储系统,用于保存集群的所有关键配置数据......
  • K8S中组件是如何实现高可用?
    在Kubernetes(K8S)中,各个组件实现高可用的主要方法包括冗余部署和自动故障恢复机制。以下是Kubernetes主要组件的高可用性实现方式:kube-apiserver:高可用策略:通过在多个节点上部署多个API服务器实例,并使用负载均衡器(如云服务商提供的负载均衡或自建的负载均衡解决方案如HAProxy......
  • YouTrack Pending 项目删除
    YouTrack项目在删除的时候可能没有办法马上就删除掉。我们还会看到类似下面的这种情况。 根据官方的解释说明是,如果项目有很多内容或者有很多的信息,那么在删除的时候会消耗很多的时间,所以YouTrack给出了一个Pending删除的状态。哪怕就是在Pending删除的这个状态的时候,我们......
  • YouTrack 如何删除项目
    要在YouTrack删除项目,首先你需要有项目的删除权限才可以。如果你删除权限的话,可以进入项目界面,然后选择右上侧的通用信息。  然后选择上侧的删除项目。  在弹出的界面中输入项目的名称后才能删除项目。然后单击删除即可。需要注意的是,删除的项目是没有办法恢复的。......
  • 【学习笔记】线性基(删除操作待填)
    基本对于一个值域为1-N的集合S它的线性基的值域与S相同它的线性基中的元素个数小于等于logN集合S中任意数异或和存在于线性基中线性基任意数异或和存在于集合S中插入首先,线性基大体长这样XXXXX称为第[线性基中数的个数]个数口XXXX口口口XX口口口口X称为第1个数d[i]......