• 一般重启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>]
    
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐