K8s 节点 NotReady 后 Pod的变化

news2026/2/14 18:12:20

NotReady 后 Pod的变化

当Kubernetes(K8s)节点进入NotReady状态时,该节点将无法接收新的Pod调度,这可能会影响服务的可用性。以下是节点变为NotReady后,其上Pod状态可能发生的一些情况和细节:

  1. Pod状态变为Pending:如果节点不健康,新的Pod将无法在该节点上启动,它们的状态会保持在Pending,等待节点恢复健康或被调度到其他健康的节点上。

  2. 现有Pod可能被终止:如果节点上的Pod没有设置适当的容忍(Tolerations)或亲和性(Affinities),它们可能会因为节点的NotReady状态而被终止。这是因为调度器可能会将这些Pod重新调度到其他节点上。

  3. Pod的重调度:对于没有在NotReady节点上运行的关键Pod,如DaemonSet或StatefulSets,它们可能会被调度到其他节点上。这取决于Pod的配置和集群的调度策略。

  4. Pod的驱逐:如果节点因为某些原因(如资源不足、网络问题等)变得不健康,节点上运行的Pod可能会被标记为驱逐(Eviction)。这意味着它们将被终止,并在其他节点上重新调度。

  5. 节点状态监控:Kubernetes会定期检查节点的健康状态。如果节点在一定时间内(由node-monitor-grace-period参数定义)没有向控制平面报告其状态,它将被标记为NotReady。这个状态会持续,直到节点恢复健康或被手动干预。

  6. 节点维护:如果节点需要维护或更新,它可能会被标记为不可调度(通过cordon命令)。在这种情况下,节点上的现有Pod将继续运行,但不会有新的Pod被调度到该节点上。

  7. 节点恢复:一旦节点问题得到解决,它需要重新变得健康(Ready状态),以便能够接收新的Pod调度。这可能涉及到重启kubelet服务、解决网络问题、增加资源等措施。

了解这些细节有助于在节点变为NotReady时,采取适当的措施来维护集群的稳定性和应用的可用性。

kube-controller-manager 日志

https://blog.csdn.net/hezuijiudexiaobai/article/details/141223614

从您提供的日志片段来看,这些日志条目涉及到 Kubernetes 中的 Taint(污点)和 Pod 的删除过程。以下是对日志的分析:

  1. TaintManager:这是 Kubernetes 中的一个组件,负责管理节点上的污点。污点是一种标记,用于防止某些 Pod 被调度到特定的节点上。

  2. NoExecuteTaintManager:这是一个特定的污点管理器,它处理 NoExecute 污点。NoExecute 污点会导致节点上的现有 Pod 被驱逐(删除),并且新的 Pod 不会被调度到该节点上。

  3. is deleting pod:这表明 TaintManager 正在删除一个或多个 Pod。这通常是因为节点被标记了 NoExecute 污点,导致所有未被容忍(Tolerations)的 Pod 需要被删除。

  4. Event occurred:日志的最后一行显示了一个事件已经被记录。这个事件是关于 Pod 被标记为删除的。

  5. reason=“TaintManagerEviction”:这表明 Pod 被删除的原因是 TaintManager 触发的驱逐。

  6. message=“Marking for deletion Pod”:这是事件的消息,表明 Pod 正在被标记为删除。

  7. Pod 名称:日志中列出了多个 Pod 的名称,这些 Pod 正在被删除。例如,qfusion-admin/mysql-935a51a501-0

  8. 时间戳:所有日志条目都有一个时间戳,显示了这些事件发生的具体时间。

这些日志条目表明,由于节点上的 NoExecute 污点,TaintManager 正在删除所有没有相应容忍的 Pod。这可能是由于节点状态变化(如维护、升级或资源不足)导致的,也可能是为了响应集群策略的变化。

解决这个问题通常需要:

  • 确认节点为何被标记了 NoExecute 污点。
  • 确保所有关键 Pod 都有适当的容忍,以便它们不会被驱逐。
  • 如果节点需要维护或更新,考虑使用 cordon 命令来防止新的 Pod 被调度到该节点上,而不是使用 NoExecute 污点。
  • 一旦节点恢复健康,它将需要被解除 NoExecute 污点,以便新的 Pod 可以被调度到该节点上。这可以通过 kubectl taint nodes <node-name> <taint-key>- 命令来实现。

Terminating

在Kubernetes中,Pod显示为Terminating状态通常意味着Pod正在被删除的过程之中。这种情况可能由以下几个原因引起:

  1. 节点状态变化:当节点变为NotReady,例如因为维护、资源不足或其他原因,节点上的Pod可能会被标记为Terminating,以便它们可以被重新调度到其他健康的节点上。

  2. 资源不足:如果节点资源不足,如CPU、内存或存储空间不足,可能会导致Pod被终止。

  3. Kubelet服务问题:如果Kubelet服务出现故障,可能会导致Pod被标记为Terminating

  4. 网络问题:网络连接问题可能导致节点与控制平面通信中断,进而使Pod被终止。

  5. Pod配置问题:Pod的配置错误,如资源请求和限制设置不当,也可能导致Pod被终止。

  6. 控制器管理:如果Pod是由控制器(如Deployment、StatefulSet等)管理的,控制器可能会因为策略或更新而终止Pod。

  7. 手动干预:管理员可能手动删除了Pod,或者使用了kubectl delete命令来删除Pod。

  8. 污点和容忍:如果节点被添加了污点,而Pod没有相应的容忍,Pod会被终止并尝试在其他节点上重新调度。

在处理Terminating状态的Pod时,您应该首先检查导致Pod终止的原因。您可以使用kubectl describe pod <pod-name>命令来获取更多关于Pod状态的信息,包括事件和警告,这将帮助您诊断问题所在。一旦确定了原因,您可以采取相应的措施来解决它,例如修复节点问题、调整Pod配置或更新控制器的设置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2263675.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

重拾设计模式--建造者模式

文章目录 建造者模式&#xff08;Builder Pattern&#xff09;概述建造者模式UML图作用&#xff1a;建造者模式的结构产品&#xff08;Product&#xff09;&#xff1a;抽象建造者&#xff08;Builder&#xff09;&#xff1a;具体建造者&#xff08;Concrete Builder&#xff…

Orleans异常传递测试

Orleans具备非常简单的异常传递机制&#xff0c;Grain或Placement注解逻辑抛异常&#xff0c;可以直接传递到客户端&#xff0c;测试代码如下&#xff1a; 首先在客户端、Silo服务程序的Main方法增加ThreadException事件处理函数&#xff0c;避免未处理异常导致进程闪退。 sta…

【Linux进程】基于管道实现进程池

目录 前言 1. 进程池 1.1 基本结构&#xff1a; 1.2. 池化技术 1.3. 思路分析 1.4. 代码实现 总结 前言 上篇文章介绍了管道及其使用&#xff0c;本文在管道的基础上&#xff0c;通过匿名管道来实现一个进程池&#xff1b; 1. 进程池 父进程创建一组子进程&#xff0c;子进…

PCL点云库入门——PCL库中点云数据拓扑关系之K-D树(KDtree)

1、点云的拓扑邻域 在三维空间数据处理的领域中&#xff0c;点云的邻域概念显得尤为关键&#xff0c;它不仅链接了点云数据之间的拓扑结构&#xff0c;而且在构建点云间的拓扑关系时起到了桥梁的作用。这种关系的建立&#xff0c;使得我们能够以一种高效、迅速的方式管理庞大的…

Leecode刷题C语言之根据第k场考试的分数排序

执行结果:通过 执行用时和内存消耗如下&#xff1a; int gk 0;int compare(const void* a, const void* b) {int* ua *(int**)a;int* ub *(int**)b;return ub[gk] - ua[gk]; }int** sortTheStudents(int** score, int scoreSize, int* scoreColSize, int k, int* returnSiz…

由popover框一起的操作demo问题

场景&#xff1a; 当popover框弹出的时候&#xff0c;又有MessageBox 提示&#xff0c;此时关闭MessageBox 提示&#xff0c;popover就关闭了。将popover改为手动激活&#xff0c;可以解决这个问题&#xff0c;但是会引起另外一个问题&#xff0c;之前&#xff08;click触发的时…

QT修改运行窗口的图标

首先&#xff0c;在.pro下添加两行&#xff1a; Debug:DESTDIR $$PWD Release:DESTDIR $$PWD 指定目标文件的路径 指定生成的debug和release文件夹路径在当前项目下 上面是为了防止爆奇怪的错 右键项目添加新文件 选择QT-》QT Resource File 起个名&#xff0c;然后下一步…

降低Mobx技术债问题-React前端数据流方案调研整理

我们现在主要是使用Mobx&#xff0c;但是Mobx的易于上手和灵活度也带来了很多预期以外的问题&#xff0c;随着项目的增长我们的代码技术债变得愈加沉重&#xff0c;不同的模块杂糅一起、单一store无限膨胀。 为此我们的调研是希望能找到一个更好的state配置、数据流的约定方案。…

sql server索引优化语句

第一步 建一个测试表 --create table TestUsers --( -- Id int primary key identity(1,1), -- Username varchar(30) not null, -- Password varchar(10) not null, -- CreateDateTime datetime not null --)第二步 插入100w数据 大概1分钟执行时间 ----插入数据…

aioice里面candidate固定UDP端口测试

环境&#xff1a; aioice0.9.0 问题描述&#xff1a; aioice里面candidate固定UDP端口测试 解决方案&#xff1a; /miniconda3/envs/nerfstream/lib/python3.10/site-packages/aioice import hashlib import ipaddress import random from typing import Optional import…

Java(二十五)final关键字

Java中的final关键字在编写程序中,比较常用。尤其是在上文中的匿名内部类中。 final 表示最终,也可以称为完结器,表示对象是最终形态的,不可改变的意思。 使用final修饰的的类,是“断子绝孙”的。 一:final修饰成员变量 Final修饰的类的成员变量是常量,不可被改变。 …

MySQL三大日志-Redo Log

Redo Log简介 事务中修改的任何数据&#xff0c;将最新的数据备份存储的位置&#xff08;Redo Log&#xff09;&#xff0c;被称为重做日志。 Redo Log 的生成和释放 随着事务操作的执行&#xff0c;就会生成Redo Log&#xff0c;在事务提交时会将产生Redo Log写入Log Buff…

【libuv】Fargo信令2:【深入】client为什么收不到服务端响应的ack消息

客户端处理server的ack回复,判断链接连接建立 【Fargo】28:字节序列【libuv】Fargo信令1:client发connect消息给到server客户端启动后理解监听read消息 但是,这个代码似乎没有触发ack消息的接收: // 客户端初始化 void start_client(uv_loop_t

html中实用标签dl dt dd(有些小众的标签 但是很好用)

背景描述 html <dl> <dt> <dd>是一组合标签&#xff0c;他们与ol li、ul li标签很相似 但是他却是没有默认前缀并且有缩进的标签 使用方式与table表格的标签一致 使用方式 dt和dd是放于dl标签内&#xff0c;dt与dd处于dl下相同级。就是dt不能放入dd内&am…

Mysql索引类型总结

按照数据结构维度划分&#xff1a; BTree 索引&#xff1a;MySQL 里默认和最常用的索引类型。只有叶子节点存储 value&#xff0c;非叶子节点只有指针和 key。存储引擎 MyISAM 和 InnoDB 实现 BTree 索引都是使用 BTree&#xff0c;但二者实现方式不一样&#xff08;前面已经介…

kubeadm_k8s_v1.31高可用部署教程

kubeadm_k8s_v1.31高可用部署教程 实验环境部署拓扑图**部署署架构****Load Balance****Control plane node****Worker node****资源分配&#xff08;8台虚拟机&#xff09;**集群列表 前置准备关闭swap开启ipv4转发更多设置 1、Verify the MAC address and product_uuid are u…

M3D: 基于多模态大模型的新型3D医学影像分析框架,将3D医学图像分析从“看图片“提升到“理解空间“的层次,支持检索、报告生成、问答、定位和分割等8类任务

M3D: 基于多模态大模型的新型3D医学影像分析框架&#xff0c;将3D医学图像分析从“看图片“提升到“理解空间“的层次&#xff0c;支持检索、报告生成、问答、定位和分割等8类任务 论文大纲理解1. 确认目标2. 分析过程&#xff08;目标-手段分析&#xff09;核心问题拆解 3. 实…

Word图片嵌入格式不正确的解决办法

问题描述: 如图, 粘贴到word的图片只显示底部一部分 解决方法: 第一步 先将图片嵌入文本行中 第二步 再将图片设置为正文格式 然后就出来了

深入浅出:内网黄金票据与白银票据

在域环境中&#xff0c;Kerberos认证是确保安全通信的基石&#xff0c;而黄金票据和白银票据则是攻击者常用的两种经典手段。为了帮助大家更形象地理解它们的工作原理及防御措施&#xff0c;我们不妨将其与在私人电影院购票的情景做类比。具体内容参考如下图示即可&#xff1a;…

Eclipse2024无法创建Dynamic Web project解决方法

Dynamic Web Project 是由 Eclipse Web Developer Tools 提供的&#xff0c;确保你已经安装了该插件。 在 Eclipse 中&#xff0c;点击菜单栏的 Help > Eclipse Marketplace&#xff0c;搜索 Eclipse Web Developer Tools&#xff0c;然后安装或更新它。 等待安装完成重启一…