k8s delete pod后是如何创建新的pod

当您使用kubectl delete pod命令删除一个Pod时,Kubernetes控制平面会检测到该Pod已经被删除,然后会自动创建一个新的Pod。这是因为Kubernetes使用控制器来管理Pod的生命周期,当Pod被删除时,控制器会自动创建一个新的Pod来替换它。

控制器会根据Pod的定义和配置文件中的规则来创建新的Pod,例如:

  • 如果Pod的定义中指定了副本数,则控制器会确保在集群中始终有指定数量的Pod在运行,并自动创建新的Pod以替换已删除的Pod。
  • 如果Pod的定义中指定了标签,则控制器会根据标签选择器来选择要创建的新Pod的节点。
  • 如果Pod的定义中指定了容器镜像,则控制器会使用指定的镜像来创建新的Pod。

因此,当您使用kubectl delete pod命令删除一个Pod时,Kubernetes控制平面会自动创建一个新的Pod来替换它,以确保您的应用程序始终处于运行状态。

Kubernetes控制平面如何检测到Pod异常

Kubernetes控制平面会通过以下方式检测到Pod异常:

  1. 定期检查:Kubernetes控制平面会定期检查每个Pod的状态,以确保它们处于正常状态。

  2. 容器存活探针:Kubernetes支持在Pod中配置容器存活探针(liveness probe),以检测容器是否处于正常状态。如果探针检测到容器异常,则Kubernetes会将Pod标记为失败状态,并尝试重新启动该Pod中的容器。

  3. 容器就绪探针:Kubernetes还支持在Pod中配置容器就绪探针(readiness probe),以检测容器是否已准备就绪可以接收流量。如果探针检测到容器未准备就绪,则Kubernetes将不会将流量路由到该容器,并且该容器将不会被考虑在内,直到它准备就绪。

  4. 资源利用率:Kubernetes还可以检测Pod中容器的资源利用率,如CPU和内存使用情况。如果容器使用的资源超过了预设的阈值,Kubernetes将认为Pod处于异常状态,并尝试重新启动该Pod中的容器。

总之,Kubernetes控制平面会通过定期检查、容器存活探针、容器就绪探针和资源利用率等方式来检测到Pod异常,并尝试自动修复或重新启动异常Pod,以确保应用程序的高可用性和可靠性。

定期是多久?

Kubernetes控制平面定期检查Pod状态的时间间隔由kube-controller-manager组件中的--pod-eviction-timeout参数控制,默认值为5分钟。这意味着控制平面将每隔5分钟检查一次Pod的状态。但是,这个间隔时间可以通过修改该参数的值来进行调整。

需要注意的是,定期检查Pod状态的时间间隔并不是唯一的检测异常的方式,还有其他的方式,如前面提到的容器存活探针、容器就绪探针和资源利用率等。这些方式可以更快地检测到Pod异常,并进行相应的处理。

--pod-eviction-timeout参数是kube-controller-manager组件的启动参数之一,它用于控制控制平面定期检查Pod状态的时间间隔。默认情况下,该参数的值为5分钟。如果需要调整该参数的值,可以在kube-controller-manager组件的启动命令中添加该参数,并指定新的值。

在Kubernetes集群中,kube-controller-manager组件的启动命令通常存储在/etc/kubernetes/manifests/kube-controller-manager.yaml文件中,该文件是通过kubelet组件在节点上自动生成的。因此,如果需要修改--pod-eviction-timeout参数的值,可以编辑该文件,并在其中添加该参数,如下所示:

apiVersion: v1
kind: Pod
metadata:creationTimestamp: nulllabels:component: kube-controller-managertier: control-planename: kube-controller-managernamespace: kube-system
spec:containers:- command:- kube-controller-manager- --pod-eviction-timeout=10m   # 修改pod-eviction-timeout参数的值为10分钟image: k8s.gcr.io/kube-controller-manager:v1.22.2name: kube-controller-managervolumeMounts:- mountPath: /etc/kubernetes/pkiname: k8s-certsreadOnly: true- mountPath: /etc/kubernetes/controller-manager.confname: kubeconfigreadOnly: truevolumes:- hostPath:path: /etc/kubernetes/pkitype: DirectoryOrCreatename: k8s-certs- hostPath:path: /etc/kubernetes/controller-manager.conftype: FileOrCreatename: kubeconfigdnsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-scheduler

修改完毕后,保存文件并退出编辑器。然后,kubelet组件会自动检测到文件的更改,并重新启动kube-controller-manager组件,以使用新的参数值来定期检查Pod状态。

deletepod = restart pod?相关推荐

  1. K8S系列:重启deployment (restart pod)

    kubectl rollout restart deployment -n your-namespace xxx-deployment

  2. k8s replicaset controller源码分析(2)-核心处理逻辑分析

    replicaset controller分析 replicaset controller简介 replicaset controller是kube-controller-manager组件中众多控制 ...

  3. Kubernetes 1.12.0 Kube-controller-manager之replicaset-controller源码阅读分析

    前言 Kube-controller-manager组件最终启动了很多controller,本文将对其中的replicaset-controller的源码进行阅读分析. 启动replicaset-co ...

  4. 阿里云NAS存储部署简介

    近期在阿里云上部署OCP需要用到NAS,其中遇到NAS无法扩容的问题,在此简单笔记. 1.部署NAS 参照github.com\kubernetes-sigs\alibaba-cloud-csi-dr ...

  5. 银河麒麟v10-arm离线部署k8s集群(v1.23.4)

    目录 1.查看麒麟系统的内核 2. 环境初始化 3. 安装docker 4. 安装k8s组件 5. 准备镜像 6. 在master上操作 7. 在node1上操作 8. 在master上查看节点信息 ...

  6. 【容器】Podman和常用命令

    Podman常用命令 (摘自:Podman常用命令总结_假面生的博客-CSDN博客_podman命令 容器 podman ps/podman ps -a              查看容器 podma ...

  7. Flutter Doctor : CocoaPods not installed

    "当心你自己设备的异常,别让敌人有机可乘." ------阿玛拉斯箴言集,5.12 安装完Flutter, Flutter Doctor报错说"CocoaPods not ...

  8. 部署环境从docker swarm迁移到k8s后kie-server的发布方式变化

    书接swarm https://cloud.tencent.com/developer/news/475316 swarm的集群部署非常简单,但领导说docker和 docker swarm都不想用 ...

  9. [k8s] 第六章 Pod控制器详解(Controller-manager)

    本章节主要介绍各种Pod控制器的详细使用. Pod控制器介绍 Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类: 自主式pod:kuberne ...

最新文章

  1. window.unload ajax不执行_AJAX
  2. 我国人工智能五大开放创新平台集体亮相
  3. 边缘计算芯片格局分析
  4. linux查看cpu个数命令,Linux怎么查看物理CPU个数
  5. Darwin Streaming Server for Windows 安装
  6. CAR-T治疗的临床前药理学模型
  7. POJ 1273 (基础最大流) Drainage Ditches
  8. 花旗看好互联网板块 力荐Facebook等5支网络股
  9. 利用11行Python代码,盗取了室友的U盘,内容十分刺激!
  10. 一种基于平衡二叉树(AVL树)插入、查找和删除的简易图书管理系统
  11. Android,UbuntuCore,ROS;TuringOS,iBotOS,ROOBO
  12. Maven学习总结(16)——深入理解maven生命周期和插件
  13. html兼容手机浏览器
  14. Wampserver查看php配置信息
  15. aspose.pdf-17.8暴力破解,附破解过程和使用代码。仅供参考,不可用于商业用途
  16. 良品铺子的2021:营收创新高后的“战术调整”
  17. 文件太多,台式电脑迁移数据到笔记本怎么操作?
  18. 亚马逊开店pdf_Amazon S3教程–最终指南(PDF下载)
  19. facebook登录和分享
  20. 2017年PHP培训机构排名

热门文章

  1. 中国人非常喜欢6这个数字,因为大家总爱说66大顺啊。数学狂人李某人喜欢把什么都数字化,于是她把顺利这个词也定义了数量级,6代表1级顺利,66代表2级顺利,666代表3级顺利,以此类推。你看,数学狂人的
  2. 内存自source开始有20个数字、大写字母、小写字母的混合串(比如:1234567890abceFGHIJ)编程将其中的数字符号挑选出来存储到dst开始的内存中,并将结果显示到CRT上。
  3. mac osx 优化上网速度
  4. 事业单位中的编内和编外是什么意思?
  5. QBasicTimer
  6. replaceAll() 方法
  7. 针对垃圾分类问题的思考
  8. XNA-2D碰撞-使用像素偵測
  9. iPhone 9最新概念图曝光,或在官网直接上架!
  10. mysql软件分为几种_常见的数据库软件有哪几种