我们正在为应用程序运行1000个Pod。由于某些原因,我们需要重新启动100个Pod。
有什么方法可以使用Kubectl或任何其他工具在kubernetes中做到这一点。请指教。应该是纯粹的pod重启。
答案 0 :(得分:2)
一种方式
kubectl scale deploymennt <your-deployment-goes-here> --replicas=0
然后
kubectl scale deploymennt <your-deployment-goes-here> --replicas=1000
另一种方式:
编写一个脚本,该脚本:
另一种方式(如果您的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(可能不会造成停机)(例如,将terminationGracePeriodSeconds
从30
更改为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