其他分享
首页 > 其他分享> > 使用 kubectl drain 从集群中移除节点

使用 kubectl drain 从集群中移除节点

作者:互联网

使用 kubectl drain 从集群中移除节点

 

对节点执行维护操作之前(例如:内核升级,硬件维护等),您可以使用 kubectl drain 安全驱逐节点上面所有的 pod。安全驱逐的方式将会允许 pod 里面的容器遵循指定的 PodDisruptionBudgets 执行优雅的中止

注: 默认情况下,kubectl drain 会忽略那些不能杀死的系统类型的 pod,如果您想了解更多详细的内容,请参考kubectl drain

kubectl drain 返回成功表明所有的 pod (除了前面排除的那些)已经被安全驱逐(遵循期望优雅的中止期,并且没有违反任何应用程序级别的中断预算)。然后,通过对物理机断电或者在云平台上删除节点所在的虚拟机,都能安全的将节点移除。

首先,需要确定希望移除的节点的名称。您可以通过下面命令列出集群里面所有的节点:

kubectl get nodes

接下来,告知 Kubernetes 移除节点:

kubectl drain <node name>

执行完成后,如果没有任何错误返回,您可以关闭节点(如果是在云平台上,可以删除支持该节点的虚拟机)。如果在维护操作期间想要将节点留在集群,那么您需要运行下面命令:

kubectl uncordon <node name>

然后,它将告知 Kubernetes 允许调度新的 pod 到该节点。

 

 

 

 

example

设置node不可调度

$kubectl cordon 172.16.21.26

$ kubectl drain foo --force

$ kubectl drain foo --grace-period=900

$ kubectl drain 172.16.21.26 --delete-local-data --ignore-daemonsets --force

参数说明:

–delete-local-data: 即使pod使用了emptyDir也删除
–ignore-daemonsets: 忽略deamonset控制器的pod,如果不忽略,deamonset控制器控制的pod被删除后可能马上又在此节点上启动起来,会成为死循环;
–force: 不加force参数只会删除该NODE上由ReplicationController, ReplicaSet, DaemonSet,StatefulSet or Job创建的Pod,加了后还会删除’裸奔的pod’(没有绑定到任何replication controller)
--pod-selector="" Label selector to filter pods on the node;按标签过滤掉不驱逐得pod
-l, --selector="" Selector (label query) to filter on
--skip-wait-for-delete-timeout=0 If pod DeletionTimestamp older than N seconds, skip waiting for the pod.  Seconds must be greater than 0 to skip.
--timeout=0s The length of time to wait before giving up, zero means infinite

观察pod重建情况后,对节点进行维护操作。
维护结束后对节点重新配置可以调度。

kubectl uncordon 172.16.21.26
现在学习还不晚;   分类: k8s,kubernetes TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back     此页面的语言为中文(简体)   翻译为          

标签:kubectl,drain,--,移除,pod,节点
来源: https://www.cnblogs.com/gaoyuechen/p/16488014.html