pod被删除原因,pod删除后又自动启动
原标题:pod被删除原因,pod删除后又自动启动
导读:
kubernetes删除deployment和pod1、删除Deployment: 步骤:首先,使用kubectl get deployment命令获取Deployment列...
kubernetes删除deployment和Pod
1、删除Deployment: 步骤:首先,使用kubectl get deployment命令获取Deployment列表,找到你想要删除的Deployment名称。然后,执行kubectl delete deployment [deployment 名字]命令来删除特定的Deployment。
2、kubectl delete deployment [deployment 名字]然而,你可能会发现,即使Deployment被删除,其关联的POD也会随之消失。这是因为删除Deployment时,控制器会确保pod的生命周期与Deployment保持一致。因此,当Deployment被清除时,相关的Pod也会被自动移除,以保持资源的整洁和一致性。
3、删除Pod:使用kubectl delete pod podname命令删除指定的Pod。这里的podname是你要删除的Pod的名称。需要注意的是,如果Pod是由Deployment、ReplicaSet或其他控制器管理的,Kubernetes会自动创建一个新的Pod来替代被删除的Pod,以确保应用程序的高可用性。
4、kubectl describe pod pod-name -n namespace:查看指定 Pod 的详细信息,包括事件、容器状态、环境变量等。kubectl describe node Node-name:查看指定节点的详细信息。删除资源 kubectl delete pod pod-name -n nameSpace:删除指定 Pod。
K8S——Pod入门理解
个人理解:Pod是容器组的一个抽象,类似于一栋出租楼里面的房子,房子的其他小房间像容器,房间里的水,电充当应用服务。出租屋内的小房间门跟容器端口差不多,出租屋大门像pod上的端口,整栋楼大门像Service对外暴露的端口。2使用Pod的原因?pod是K8s最小的运行,部署单位。
再来说说pod还有哪些功能,这些功能也是k8s为什么设计pod的原因之一 通过probe:LivenessProbe或者ReadinessProbe,可以探测应用是否处于健康状态,如果不健康做出相关的反应。 这就好比k8s可以定期的帮你监控、维持一整个应用的健康。
普通pod:最常见的pod类型,用于运行一个或多个容器。静态pod:一种特殊的pod类型,通常由kubelet直接在节点上管理,不通过K8S API服务器进行调度。pod的定义与创建:yaml文件:定义pod较为简单,通过编写yaml文件实现。yaml文件包含容器的配置信息,如镜像、端口、环境变量等。
在K8S环境中,pod是核心概念,每一个pod包含一个特殊根容器,即pause容器,该容器是K8S的一部分。pod内部可容纳多个容器,共享网络与存储资源。pause容器负责存储所有容器的状态,pod存在于节点中,通过二层网络通信。pod分为普通与静态两种类型。定义pod较为简单,通过编写yaml文件实现。
Pod Preemption in KuberneTES 之前有多篇博文分析过调度器,参见 深入分析kube-scheduler , k8s-调度算法 , k8s-scheduler ,对调度器有了基本认识。如果没有node满足Pod P的要求,就会触发Preemption。Preemption逻辑会试图找到一个node,在node上移除低优先级的Pod就可以满足P。
k8s删除pod一直处于terminating状态
k8s中处于Terminating状态的Pod无法删除时,可通过强制删除解决,具体步骤如下:常规删除操作使用kubectl -n test delete po podname命令删除Pod,其中test为命名空间名称,podname为待删除的Pod名称。执行后若Pod仍存在且状态显示为Terminating,说明常规删除未生效。
我这里的pod是与nfs有关,nfs挂载有问题导致pod有问题,执行完删除命令以后看到pod一直处于terminating的状态。这种情况下可以使用强制删除命令:kubectl delete pod [pod name] --force --grACE-period=0 -n [naMESpace]注意:必须加-n参数指明namespace,否则可能报错pod not found。
批量重启节点:通过SSH登录所有节点,执行systemctl restart kubelet重启服务。kubelet重启后会重新向K8s API注册节点信息,恢复kubectl Get node的显示。验证恢复:重启后检查节点状态是否变为Ready,并确认Pod能否正常调度。
在K8S中,当我们要删除Pod的时候,Pod会变成Terminating状态,kubelet看到Pod的状态如果为Terminating,就会开始执行关闭Pod的流程,给Pod发SIGTERM信号,如果达到宽限期Pod还未结束就给Pod发SIGKILL信号,从Endpoints中摘除Pod等。



