Rancher选择「先启动再停止」升级容器时出现报错
Rancher v1.6.30升级报错问题解决
核心冲突原因
在Rancher v1.6.30中,配置retain_ip: true(固定容器IP)与升级时选择的「Start before stopping」(对应API的StartFirst选项)是互斥的。这是因为固定IP模式下容器IP唯一绑定,若先启动新容器,会出现新旧容器争抢同一IP的网络冲突,因此Rancher直接禁止这种组合操作,触发报错。
你尝试将retain_ip改为retainIp或调整配置位置无效,是因为Rancher 1.6.x版本的rancher-compose.yml中,该字段的正确写法是下划线格式retain_ip,驼峰写法不生效,但核心问题是固定IP与StartFirst的互斥性,所以调整写法无法解决根本问题。
可选解决方案
需保留固定IP场景:
放弃「Start before stopping」升级选项,使用默认的「Stop before starting」方式。若要缩短停机时间,可依赖已配置的健康检查机制:旧容器停止后,新容器启动并通过健康检查后再对外提供服务,停机时长即为容器启动与健康检查的耗时。可放弃固定IP场景:
删除retain_ip: true配置,即可正常使用「Start before stopping」实现无停机(或近似无停机)升级。若业务需要固定访问入口,可通过Rancher负载均衡服务指向应用,或用DNS解析到服务访问地址,替代容器固定IP的需求。
内容的提问来源于stack exchange,提问作者Vlad
相关产品推荐
相关产品推荐

