如何一次重新启动1000个Pod

时间:2020-06-22 11:40:01

标签: kubernetes kubernetes-helm kubernetes-pod amazon-eks

我们正在为应用程序运行1000个Pod。由于某些原因,我们需要重新启动100个Pod。

有什么方法可以使用Kubectl或任何其他工具在kubernetes中做到这一点。请指教。应该是纯粹的pod重启。

3 个答案:

答案 0 :(得分:2)

一种方式

kubectl scale deploymennt <your-deployment-goes-here> --replicas=0

然后

kubectl scale deploymennt <your-deployment-goes-here> --replicas=1000

另一种方式:

编写一个脚本,该脚本:

  1. 将获取属于特定部署的所有活动Pod的列表
  2. issue kubectl循环删除pod

另一种方式(如果您的pod属于专用命名空间“ foo”,则可以使用):

kubectl delete --all pods --namespace=foo

答案 1 :(得分:1)

如果所有Pod都属于特定的命名空间,则可以使用以下命令将其全部删除 kubectl delete pods --all --namespace=foo来重新创建它们(这可能会导致停机)。

如果所有吊舱都由同一部署控制,则可以使用kubectl rollout restart deployment/my-deployment-name.

触发滚动重启。

编辑一些琐碎的部署值也会触发所有受控Pod的Rolling Update(可能不会造成停机)(例如,将terminationGracePeriodSeconds30更改为31)。

如果pod来自多个不同的部署,则以下是"refreshes" all pods in all deployments by namespace.

的bash脚本

rollout restart仅在kubernetes v1.15+

上可用

答案 2 :(得分:0)

您可以使用选择器执行此操作。请注意,这是在删除Pod,因此您需要确保它们以更高级别的结构(如部署)运行。并且请确保您的选择器与您不想触摸的吊舱不匹配。

kubectl delete pods -l name=myLabel