实现方式: 通过容器平台的configmap
概念对配置进行外部化.
好处:
以campaign
为例, 目录结构和之前类似
先设个变量, 方便后面批量操作: APP_NAME=campaign
首先, 创建配置的configmap
:
$ oc create configmap ${APP_NAME}-config --from-file=./config
configmap/campaign-config created
其次, 将配置的configmap
挂载到指定目录: (该应用容器里的配置目录为: /deployments/config
)
$ oc set volume dc/${APP_NAME} --add --mount-path=/deployments/config --configmap-name=${APP_NAME}-config
info: Generated volume name: volume-77txt
deploymentconfig.apps.openshift.io/campaign volume updated
最后, 配置外部化已经完成. 应用会自动更新来使配置生效. 可以通过如下来查看:
$ oc rollout status dc/${APP_NAME}
replication controller "campaign-26" successfully rolled out
如果配置能热加载, 那么就会及时生效. 如果需要实例重启生效, 则需要重启实例:
更新配置的configmap
并更新.
更新后重启实例.
$ oc create configmap ${APP_NAME}-config --dry-run -o json --from-file=./config | oc apply -f -
$ oc rollout latest dc/${APP_NAME}