我通常通过以下方式重新启动我的应用程序:
kubectl scale deployment my-app --replicas=0
Run Code Online (Sandbox Code Playgroud)
其次是:
kubectl scale deployment my-app --replicas=1
Run Code Online (Sandbox Code Playgroud)
效果很好。我还有另一个正在运行的应用程序,但是当我查看它的副本集时,我看到:
$ kubectl get rs
NAME DESIRED CURRENT READY AGE
another-app 2 2 2 2d
Run Code Online (Sandbox Code Playgroud)
因此,要正确重新启动,我当然需要:
kubectl scale deployment another-app --replicas=0
kubectl scale deployment another-app --replicas=2
Run Code Online (Sandbox Code Playgroud)
但是有没有更好的方法来做到这一点,这样我就不必在扩展/重新启动我的应用程序(可能有replicas > 1)之前手动查看复制集?
您可以使用 level 重新启动 pod
kubectl delete pods -l name=myLabel
Run Code Online (Sandbox Code Playgroud)
您可以滚动重新启动部署的所有 Pod,这样就不会关闭服务
kubectl patch deployment your_deployment_name -p \
"{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}"
Run Code Online (Sandbox Code Playgroud)
在 kubernetes 1.15 版本之后你可以
kubectl rollout restart deployment your_deployment_name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13468 次 |
| 最近记录: |