Menu Close

11.2. 构建系统镜像

本节提供构建系统镜像的步骤。

先决条件

流程

  1. GitHub 存储库下载 3scale OpenShift 模板并提取存档:

    tar -xzf 3scale-amp-openshift-templates-3scale-2.11.1-GA.tar.gz
  2. 将 Oracle Database Instant Client Package 文件放在 3scale-amp-openshift-templates-3scale-2.11.1-GA/amp/system-oracle/oracle-client-files 目录中。
  3. 下载 3scale 2.11 amp.yml 模板。
  4. 使用 -f 选项运行 oc new-app 命令并指定 build.yml OpenShift 模板:

    $ oc new-app -f build.yml
  5. 使用 -f 选项运行 oc new-app 命令以指示 amp.yml OpenShift 模板,并使用 -p 选项指定带有 OpenShift 集群域的 WILDCARD_DOMAIN 参数:

    $ oc new-app -f amp.yml -p WILDCARD_DOMAIN=mydomain.com
  6. 输入以下 oc patch 命令,将 SYSTEM_PASSWORD 替换为您在准备 Oracle 数据库中设置的 Oracle Database system 密码:

    $ oc patch dc/system-app -p '[{"op": "add", "path": "/spec/strategy/rollingParams/pre/execNewPod/env/-", "value": {"name": "ORACLE_SYSTEM_PASSWORD", "value": "SYSTEM_PASSWORD"}}]' --type=json
    
    $ oc patch dc/system-app -p '{"spec": {"strategy": {"rollingParams": {"post":{"execNewPod": {"env": [{"name": "ORACLE_SYSTEM_PASSWORD", "value": "SYSTEM_PASSWORD"}]}}}}}}'
  7. 输入以下命令,替换 DATABASE_URL 以指向在准备 Oracle 数据库中指定的 Oracle 数据库

    $ oc patch secret/system-database -p '{"stringData": {"URL": "DATABASE_URL"}}'
  8. 输入 oc start-build 命令以构建新系统镜像:

    $ oc start-build 3scale-amp-system-oracle --from-dir=.
  9. 等待构建完成。要查看构建的状态,请运行以下命令:

    $ oc get build <build-name> -o jsonpath="{.status.phase}"
    1. 等待构建处于 Complete 状态。

11.2.1. 更新 ImageChange 触发器

更新使用系统镜像的 DeploymentConfig 的 ImageChange 触发器,以便它们使用基于 Oracle 的新系统镜像。

先决条件

流程

  1. 将当前的 3scale 发行版本保存到环境变量中:

    $ export THREESCALE_RELEASE=2.11
  2. 更新 system-app ImageChange 触发器:

    $ oc set triggers dc/system-app --from-image=amp-system:${THREESCALE_RELEASE} --containers=system-master,system-developer,system-provider --remove
    
    $ oc set triggers dc/system-app --from-image=amp-system:${THREESCALE_RELEASE}-oracle --containers=system-master,system-developer,system-provider

    这会触发 system-app DeploymentConfig 的重新部署。等待它重新部署,其对应的新容器集就绪,并且旧的容器集已停止。

  3. 更新 system-sidekiq ImageChange 触发器:

    $ oc set triggers dc/system-sidekiq --from-image=amp-system:${THREESCALE_RELEASE} --containers=system-sidekiq,check-svc --remove
    
    $ oc set triggers dc/system-sidekiq --from-image=amp-system:${THREESCALE_RELEASE}-oracle --containers=system-sidekiq,check-svc

    这会触发 system-sidekiq DeploymentConfig 的重新部署。等待它重新部署,其对应的新容器集就绪,并且旧的容器集已停止。

  4. 更新 system-sphinx ImageChange 触发器:

    $ oc set triggers dc/system-sphinx --from-image=amp-system:${THREESCALE_RELEASE} --containers=system-sphinx,system-master-svc --remove
    
    $ oc set triggers dc/system-sphinx --from-image=amp-system:${THREESCALE_RELEASE}-oracle --containers=system-sphinx,system-master-svc

    这会触发 system-sphinx DeploymentConfig 的重新部署。等待它重新部署,其对应的新容器集就绪,并且旧的容器集已停止。

    注意

    以下步骤是可选的。在安装 3scale 后使用它来删除 ORACLE_SYSTEM_PASSWORD

  5. 使用 Oracle 数据库设置 3scale 系统镜像后,从 system-app DeploymentConfig 中删除 ORACLE_SYSTEM_PASSWORD。在升级到新版本的 3scale 前,不需要再次执行它。

    $ oc set env dc/system-app ORACLE_SYSTEM_PASSWORD-

其它资源

有关 3scale 和 Oracle 数据库支持的更多信息,请参阅 Red Hat 3scale API 管理支持的配置