参考文档:

https://www.kokojia.com/article/61492.html

一:kubectl rollout restart

这个命令是比较推荐的

重建这个deployment下的 pod,和滚动升级类似,并不会一次性杀死Pod,比较平滑。

kubectl rollout restart deployment <deployment_name> -n

二:kubectl scale

这种方法相对来说,比较粗放,我们可以先将副本调成 0

kubectl scale deployment -n –replicas=0

然后再改回目的副本数

kubectl scale deployment -n –replicas=10

但这个会中断服务。但两条命令也能解决,下面介绍的就更直接了。

三: kubectl delete pod

kubectl delete pod <pod_name> -n

四:kubectl replace

这种方法是通过更新Pod ,从触发k8s pod 的更新

kubectl get pod <pod_name> -n -o yaml | kubectl replace –force -f -

或者:

kubectl replace –force -f xxx.yaml

五:kubectl set env

通过设置环境变量,其实也是更新pod spec从而触发滚动升级。

kubectl set env deployment -n DEPLOY_DATE="$(date)"