You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OpenShift中部署数据库且不创建DeploymentConfig资源?

解决方案

直接用oc命令创建Deployment(无需模板)

如果不想依赖旧模板,可直接通过oc命令组合创建PVC、Deployment和Service,全程生成的是Deployment资源,示例如下:

  1. 创建持久化卷声明(PVC):
oc create pvc mongodb-pvc --access-modes=ReadWriteOnce --resources=requests.storage=512Mi
  1. 创建MongoDB Deployment并设置环境变量:
oc create deployment mongodb-test \
  --image=registry.redhat.io/rhel8/mongodb-44:latest \
  --env=MONGODB_DATABASE=sampledb \
  --env=MONGODB_USER=admin \
  --env=MONGODB_PASSWORD=your-secret-password \
  --env=MONGODB_ADMIN_PASSWORD=your-admin-secret
  1. 暴露Service供其他应用访问:
oc expose deployment mongodb-test --port=27017 --name=mongodb-test

这种方式完全基于oc命令,便于文档记录和重复执行,且不会生成已弃用的DeploymentConfig。

自定义转换旧模板为Deployment版本

如果偏好使用模板,可将现有的DeploymentConfig模板转换为Deployment版本:

  1. 导出旧的数据库模板:
oc get template mongodb-persistent -o yaml > mongodb-persistent-deployment.yaml
  1. 编辑导出的YAML文件,做以下调整:

    • 将kind: DeploymentConfig改为kind: Deployment
    • 删除triggers字段中的ConfigChange触发器(Deployment依赖ReplicaSet的默认更新策略)
    • 移除DeploymentConfig特有的字段(如spec下的test字段等)
  2. 导入修改后的模板到OpenShift:

oc create -f mongodb-persistent-deployment.yaml

之后就可以用你熟悉的oc new-app命令基于这个新模板部署,生成的是Deployment资源。

关于Deployment策略的说明

RedHat文档提到的Deployments do not support user-specified custom deployment strategies确实存在,但数据库部署通常不需要复杂的自定义策略,默认的滚动更新或重建策略(可通过spec.strategy.type设置为RollingUpdate或Recreate)完全能满足需求,比如MongoDB这类有状态服务,使用Recreate策略更合适。


内容的提问来源于stack exchange,提问作者w. Patrick Gale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 03:55:06