k8s-Deployment重启方案

Depolyment重启方案

本文介绍K8S depolyment重启的三种方法。

一般重启deployment,常规操作是删掉对应的pod, 但如果有多个副本集的话,一个个删很麻烦。
除了删除pod,还可以:

方案一: 加上环境变量

kubectl patch deploy <deployment-name> \
  -p '{"spec":{"template":{"spec":{"containers":[{"name":"<container-name>","env":[{"name":"RESTART_TIME","value":"'$(date +%s)'"}]}]}}}}'

方案二: 重新设置镜像

kubectl set image deploy/<deployment-name> <container>=<image> -n <namespace>

方案三: 使用rollout

kubectl rollout restart deploy <deployment-name> -n <namespace>

PS: rollout restart需要集群版本大于1.15才能支持
以上重启方法均会生成Replicasets(副本集), 可通进行回滚:

# 查看历史版本
kubectl rollout histoty deployment/<deployment-name -n <namespace>
# 进行回滚,默认回退到上个版本
kubectl rollout undo deployment/<deployment-name> -n <namespace> [--to-revision=<version>]
posted @ 2020-11-17 11:35  Ashin5800  阅读(854)  评论(0编辑  收藏  举报