9.2. 构建系统镜像


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

先决条件

步骤

  1. 从 GitHub 存储库克隆 3scale 的 OpenShift 模板。使用以下命令:

    $ git clone --branch 3scale-2.10.0-GA https://github.com/3scale/3scale-amp-openshift-templates.git
  2. 将您的 Oracle Database Instant 客户端软件包文件放在 3scale-amp-openshift-templates/amp/system-oracle/oracle-client-files 目录中。
  3. 下载 3scale 2.10 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 状态。

9.2.1. 更新 ImageChange 触发器

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

先决条件

步骤

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

    $ export THREESCALE_RELEASE=2.10
  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 管理支持的配置

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.