Spinnaker流水线切换为Recreate部署策略时执行失败
解决Kubernetes部署策略从Rolling Update切换到Recreate的报错问题
我之前也碰到过一模一样的问题,其实原因特别直白:当你把部署策略设置为Recreate时,Kubernetes会严格禁止同时存在rollingUpdate相关配置。毕竟Recreate的逻辑是先销毁所有旧Pod再创建新Pod,完全不需要滚动更新的参数,两者根本不兼容。
具体解决步骤:
- 修改Deployment配置
找到你Deployment YAML里的spec.strategy部分,把rollingUpdate的整个配置块删掉,只保留策略类型为Recreate:
原来的错误配置可能长这样:
修改后应该是:spec: strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0spec: strategy: type: Recreate - 应用更新后的配置
用kubectl命令提交修改:
如果是用patch命令直接更新,要确保patch内容里不包含kubectl apply -f your-deployment-file.yamlrollingUpdate字段:kubectl patch deployment xxxxxx -p '{"spec":{"strategy":{"type":"Recreate"}}}'
另外提醒一句:如果是用kubectl edit在线编辑的话,一定要仔细检查有没有遗留rollingUpdate的配置项,有时候编辑时容易不小心留下这部分内容,导致校验失败。
内容的提问来源于stack exchange,提问作者Sourav
相关产品推荐
相关产品推荐

