使用滚动部署策略在OpenShift上部署Quarkus应用的配置咨询
使用滚动部署策略在OpenShift上部署Quarkus应用的配置咨询
我来帮你搞定这个问题!你遇到的旧Pod先被销毁的情况,大概率是因为默认部署策略没配置成滚动更新,或者滚动更新的关键参数没调好。Quarkus的OpenShift扩展其实提供了专门的配置项来控制部署策略,下面给你两种可行的配置方式:
方式一:在application.properties中持久化配置
直接在项目的src/main/resources/application.properties里添加以下配置:
# 指定部署策略为滚动更新 quarkus.openshift.deployment-strategy=RollingUpdate # 配置滚动更新时最大不可用的Pod数量为0(确保旧Pod不会提前销毁) quarkus.openshift.rolling-update.max-unavailable=0 # 配置滚动更新时允许额外启动的Pod数量(可根据资源情况调整,比如设为1或百分比) quarkus.openshift.rolling-update.max-surge=25%
设置max-unavailable=0是核心,这样OpenShift会等新Pod完全就绪、通过健康检查后,才会终止旧的Pod,刚好解决你遇到的旧Pod先被销毁的问题。
方式二:通过Maven命令行临时传递参数
如果你不想修改配置文件,也可以直接在部署命令里追加参数:
mvn clean package -Dquarkus.kubernetes.deploy=true -Dquarkus.openshift.namespace=my_target_namespace \ -Dquarkus.openshift.deployment-strategy=RollingUpdate \ -Dquarkus.openshift.rolling-update.max-unavailable=0
这种方式适合临时调整部署策略的场景。
另外要注意,确保你使用的Quarkus版本(建议2.x及以上)支持这些配置项。部署完成后,你可以登录OpenShift控制台,查看对应Deployment的策略配置,确认滚动更新是否已正确生效。
备注:内容来源于stack exchange,提问作者mkonzal
相关产品推荐
相关产品推荐

