本文最后更新于:2023年12月5日 晚上
部署
滚动更新
滚动更新策略 spec.strategy
:
更新策略有两种:
- RollingUpdate :默认的更新策略,表示滚动更新
- Recreate:重建,会终止所有正在运行的实例,然后用较新的版本来重新创建它们,即在创建新 Pods 之前,所有现有的 Pods 会被杀死,测试环境可以使用
Pod 有多个副本,滚动更新的过程就是轮流更新 pod,直至所有 pod 都更新成功,至于如何轮流更新,取决于 maxSurge 和 maxUnavailable 这两个参数,示例:
升级命令 kubectl set
:
除了使用 kubectl get
命令升级,还可以直接 kubectl apply -f
升级,但是需要先手动修改 yaml 文件,所以不推荐使用
回滚
回滚到上一个版本
回滚到指定版本
Jenkins 持续继承与部署
参考以下脚本:
代码升级和回滚
代码升级:Jenkins 负责 pull 最新代码,编译成 war 包(如果需要),然后将编译后的包发送到 k8s 或者专门负责制作镜像的服务器,使用 dockerfile 制作完新镜像后,就上传到 harbor,最后再由 kubectl 执行更新镜像的操作
代码回滚:直接回滚镜像即可