k8s打污点、取消污点、驱动pod

在 Kubernetes 中,可以使用 kubectl taint 命令来打污点,它有以下语法:

kubectl taint nodes <node-name> <key>=<value>:<effect>

其中,<node-name> 是节点的名称,<key><value> 是用于标识污点的键和值,<effect> 则指定了污点的影响。

例如,要在名为 node-1 的节点上打一个污点,使它不能被调度 NoSchedule,可以使用以下命令:

kubectl taint nodes node-1 example.com/zone=us-west:NoSchedule

这将在 node-1 上打一个名为 example.com/zone=us-west 的污点,它的影响是 NoSchedule,这意味着 Kubernetes 将不会将 Pod 调度到该节点上,除非该 Pod 显式容忍该污点。

还可以使用其他影响选项,例如:

  • NoExecute:从节点上删除 Pod,如果 Pod 在指定的时间内不满足该污点,则将 Pod 驱逐。
  • PreferNoSchedule:与 NoSchedule 相似,但是调度程序将避免将 Pod 调度到带有该污点的节点上。

请注意,打污点需要适当的权限,因此请确保您具有足够的权限来管理节点。

在 Kubernetes 中,要取消节点上的污点,可以使用以下命令:

kubectl taint nodes <node-name> <taint-key>-

其中,<node-name> 是节点的名称,<taint-key> 是要取消的污点的键。在命令的末尾加上 “-” 符号表示要删除该污点。

例如,如果要取消名为 node-1 的节点上的 example.com/zone:NoSchedule 污点,可以使用以下命令:

kubectl taint nodes node-1 example.com/zone:NoSchedule-

当您运行此命令时,该节点上的该污点将被删除,Kubernetes 将能够在该节点上调度具有该污点要求的 Pod。

请注意,如果要删除其他类型的污点(例如NoExecutePreferNoSchedule),则需要将命令中的 NoSchedule 更改为相应的污点键。

在 Kubernetes 中,您可以使用以下命令将节点驱逐(即从该节点上删除):

kubectl drain <node-name>

这将驱逐该节点上的所有 Pod,并将它们迁移到其他节点上。在驱逐过程中,调度程序将遵循 Pod 的亲和性和反亲和性规则,以确保它们被调度到适当的节点上。

如果您想在驱逐节点之前强制删除它上面的所有 Pod,可以使用 --force 标志,例如:

kubectl drain <node-name> --force

此外,如果您希望在驱逐节点之前排除某些 Pod,请使用 --ignore-daemonsets 标志。例如,以下命令将排除 DaemonSet 类型的 Pod:

kubectl drain <node-name> --ignore-daemonsets

请注意,驱逐节点需要适当的权限,因此请确保您具有足够的权限来管理节点。此外,在驱逐节点之前,请确保将工作负载重新调度到其他节点,以确保集群的可用性。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三朝看客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值