Lazy loaded image
k8s云原生运维
Kubernetes 驱逐 vs 封禁
字数 1017阅读时长 3 分钟
2026-3-4
2026-3-3
author
type
Post
status
Published
date
Mar 4, 2026
slug
summary
tags
category
k8s云原生运维
icon
password

概念对比

特性
驱逐 (Eviction)
封禁 (Cordon)
作用
强制删除 Pod
标记节点不可调度
对象
Pod
节点
触发条件
资源不足、策略触发
手动执行
Pod 状态
终止,重新调度
保持运行
是否可恢复
Pod 会被重新调度到其他节点
可解封 (Uncordon)

详细解释

🔴 驱逐 (Eviction)

将 Pod 从节点上强制移除
触发原因:
  • 节点资源不足(内存、磁盘、CPU)
  • 节点故障
  • 手动执行 kubectl evict
特点:
  • Pod 会被删除
  • Deployment/StatefulSet 会自动重新创建 Pod
  • Pod 会被调度到其他健康节点

🟡 封禁 (Cordon)

将节点标记为不可调度,新 Pod 不会分配到该节点
触发原因:
  • 节点维护
  • 节点准备下线
  • 节点资源不足预警
特点:
  • 节点上的现有 Pod 继续运行
  • 新 Pod 不会被调度到该节点
  • 可随时解封恢复

图示对比


使用场景

场景
使用命令
节点故障,需要迁移 Pod
kubectl drain(会驱逐 + 封禁)
节点维护,暂时不分配新 Pod
kubectl cordon
节点永久下线
kubectl drain
资源不足触发自动驱逐
自动执行,无需手动

注意事项


总结

操作
作用
影响
Evict
删除 Pod
Pod 重新调度
Cordon
禁止调度
现有 Pod 继续运行
Drain
驱逐 + 封禁
节点上 Pod 迁移,节点不可用
 
上一篇
k8s集群部署
下一篇
添加work节点