Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes:如何优雅地删除守护进程中的pod?_Kubernetes - Fatal编程技术网

Kubernetes:如何优雅地删除守护进程中的pod?

Kubernetes:如何优雅地删除守护进程中的pod?,kubernetes,Kubernetes,如果docker映像中有更新,滚动更新策略将逐个更新守护程序集中的所有POD,同样,是否可以在不更改守护程序配置的情况下优雅地重新启动POD,或者是否可以显式触发 目前,我正在手动完成这项工作 kubectl删除pod 一个接一个,直到每个吊舱进入运行状态。您可以尝试使用: 使用kubectl drain以优雅地终止节点上的所有POD,同时将节点标记为不可调度(使用,从): 这可以防止新的吊舱在您试图将其卸下时降落到节点上 然后: 使节点再次可调度: 要触发重新启动命名空间[namespace_

如果docker映像中有更新,滚动更新策略将逐个更新守护程序集中的所有POD,同样,是否可以在不更改守护程序配置的情况下优雅地重新启动POD,或者是否可以显式触发

目前,我正在手动完成这项工作

kubectl删除pod
一个接一个,直到每个吊舱进入运行状态。

您可以尝试使用:

使用kubectl drain以优雅地终止节点上的所有POD,同时将节点标记为不可调度(使用,从):

这可以防止新的吊舱在您试图将其卸下时降落到节点上

然后:

使节点再次可调度:


要触发重新启动命名空间[namespace_name]中由deamonset管理的所有POD,请执行以下操作:

 kubectl rollout restart de -n [namespace_name]

守护程序集
控制器忽略不可计划的标记,因此属于
守护程序集
的pod将立即被替换。如果节点上有属于
守护程序集的pod,则仅当
--ignore daemonsets
标志设置为true时,drain命令才会继续,但即使是这样,它也不会删除pod,因为
守护程序集
控制器。@KonstantinVustin因此,请先删除守护程序,然后在排空节点后重新创建它?您将不得不使用标志
--忽略守护程序
,因为每个节点上都会有
kube system
命名空间守护程序,例如
flannel
或其他。因此,您不需要删除用户定义的守护程序,因为没有此标志,
kubectl drain
将无法继续。您唯一能做的就是修改守护程序集中的NodeSelector筛选器,将其从应该排空的节点中排除
kubectl uncordon $NODENAME
 kubectl rollout restart de -n [namespace_name]