You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kind集群中模拟K8s节点NotReady与Ready状态切换?

在Kind集群中切换节点NotReady/Ready状态的方法

一、Kind集群内直接实现节点状态切换

Kind的节点本质是Docker容器,可通过操作容器或节点内的kubelet进程模拟状态变化:

方法1:操作Docker容器

  • 查看集群节点列表,确认目标节点名称:
    kubectl get nodes
    
  • 让节点进入NotReady状态:停止对应Docker容器(示例节点名为kind-worker)
    docker stop kind-worker
    
    等待10-20秒后执行kubectl get nodes,该节点会显示为NotReady。
  • 恢复为Ready状态:启动停止的容器
    docker start kind-worker
    
    等待kubelet重新连接API Server,节点会自动恢复Ready状态。

方法2:操作节点内的kubelet进程

  • 进入目标节点容器:
    docker exec -it kind-worker bash
    
  • 暂停kubelet进程触发NotReady:
    kill -STOP $(pidof kubelet)
    
  • 恢复kubelet进程让节点回到Ready:
    kill -CONT $(pidof kubelet)
    

二、其他替代方案

如果Kind的模拟方式不符合测试需求,可尝试这些方法:

  • Minikube多节点集群:用Minikube创建多节点集群后,同样通过停止/启动节点对应的Docker容器(或虚拟机)切换状态,操作逻辑和Kind一致。
  • 手动模拟节点组件故障:进入节点容器后,停止kube-proxy、containerd等关键组件,也能触发节点状态变化,恢复时重启对应组件即可。
  • cordon/drain模拟不可用:若不需要严格的NotReady状态,仅需模拟节点不可调度,可用kubectl cordon <node-name>标记节点不可调度,kubectl uncordon <node-name>恢复调度,这种方式不会让节点进入NotReady,但能模拟节点无法接收新Pod的场景。

内容的提问来源于stack exchange,提问作者moluzhui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:55:15