[英]How to implement Kubernetes horizontal pod autoscaling with scale up/down policies?
[英]Correct way to scale/restart an application down/up in kubernetes (replicaset, deployments and pod deletion)?
我通常通过以下方式重新启动我的应用程序:
kubectl scale deployment my-app --replicas=0
其次是:
kubectl scale deployment my-app --replicas=1
效果很好。 我还有另一个正在运行的应用程序,但是当我查看它的副本集时,我看到:
$ kubectl get rs
NAME DESIRED CURRENT READY AGE
another-app 2 2 2 2d
因此,要正确重新启动,我当然需要:
kubectl scale deployment another-app --replicas=0
kubectl scale deployment another-app --replicas=2
但是有没有更好的方法来做到这一点,所以我不必在缩放/重新启动我的应用程序(可能有replicas > 1
)之前手动查看副本集?
您可以使用 level 重新启动 pod
kubectl delete pods -l name=myLabel
您可以滚动重启部署的所有 pod,这样您就不会关闭服务
kubectl patch deployment your_deployment_name -p \
"{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}"
而kubernetes 1.15版之后就可以
kubectl rollout restart deployment your_deployment_name
要更改当前部署,您可以使用kubectl rollout pause deployment/YOUR_DEPLOYMENT
。 这样,部署将被标记为暂停,并且不会被 controller 协调。 暂停后,您可以对配置进行必要的更改,然后使用kubectl rollout resume deployment/YOUR_DEPLOYMENT
恢复它。 这样,它将创建一个具有更新配置的新replicaset
。
新配置的 Pod 将被启动,当它处于running
状态时,旧配置的 Pod 将被终止。
使用此方法,您将能够使用以下方法将部署部署到以前的版本:
kubectl rollout history deployment/YOUR_DEPLOYMENT
检查推出的历史记录,然后执行以下命令进行回滚:
kubectl rollout undo deployment/YOUR_DEPLOYMENT --to-revision=REVISION_NO
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.