2.2. 在基于模板的安装中,从 2.11 升级到 2.12


按照本节所述步骤,在基于模板的安装中将 3scale 2.11 升级到 2.12。

要开始升级,请转至部署了 3scale 的项目。

$ oc project <3scale-project>
Copy to Clipboard Toggle word wrap

然后,按照以下顺序执行这些步骤:

2.2.1. 创建 3scale 项目的备份

前一步

无。

当前步骤

此步骤列出了创建 3scale 项目的备份所需的操作。

流程

  1. 根据与 3scale 一起使用的数据库,使用以下值之一设置 ${SYSTEM_DB}:

    • 如果数据库是 MySQL,则为 SYSTEM_DB=system-mysql
    • 如果数据库是 PostgreSQL,则为 SYSTEM_DB=system-postgresql
  2. 使用现有 DeploymentConfig 创建备份文件:

    $ THREESCALE_DC_NAMES="apicast-production apicast-staging backend-cron backend-listener backend-redis backend-worker system-app system-memcache ${SYSTEM_DB} system-redis system-sidekiq system-sphinx zync zync-database zync-que"
    
    for component in ${THREESCALE_DC_NAMES}; do oc get --export -o yaml dc ${component} > ${component}_dc.yml ; done
    Copy to Clipboard Toggle word wrap
  3. 备份通过 export all 命令导出的项目中所有现有 OpenShift 资源:

    $ oc get -o yaml --export all > threescale-project-elements.yaml
    Copy to Clipboard Toggle word wrap
  4. 使用没有使用 export all 命令导出的额外元素创建备份文件:

    $ for object in rolebindings serviceaccounts secrets imagestreamtags cm rolebindingrestrictions limitranges resourcequotas pvc templates cronjobs statefulsets hpa deployments replicasets poddisruptionbudget endpoints
    do
      oc get -o yaml --export $object > $object.yaml
    done
    Copy to Clipboard Toggle word wrap
  5. 验证所有生成的文件是否都为空,并且所有这些文件都具有预期内容。

2.2.2. 删除未使用的 AMP_RELEASE 变量

当前步骤

此步骤从 system-app 容器 (system-app pre hook) 中移除未使用的 AMP_RELEASE 变量,然后验证 AMP_RELEASE 不存在。

流程

  1. system-app 容器中删除该变量:

    • 请注意变量名称后面的横线字符。

      $ oc set env dc/system-app AMP_RELEASE-
      Copy to Clipboard Toggle word wrap
  2. system-app pre hook 中删除该变量:

    $ INDEX=$(oc get dc system-app -o json | jq '.spec.strategy.rollingParams.pre.execNewPod.env | map(.name == "AMP_RELEASE") | index(true)')
    oc patch dc/system-app --type=json -p "[{'op': 'remove', 'path': '/spec/strategy/rollingParams/pre/execNewPod/env/$INDEX'}]"
    Copy to Clipboard Toggle word wrap
  3. 验证 AMP_RELEASE 不存在:

    $ oc get dc system-app -o yaml | grep AMP_RELEASE
    Copy to Clipboard Toggle word wrap

后续步骤

升级 MySQL 配置

2.2.3. 升级 MySQL 配置

注意

如果您的 3scale 部署启用了外部数据库模式并使用 MySQL 8.0,请将身份验证插件设置为 3scale 2.12 的 mysql_native_password

在 MySQL 配置文件中添加以下内容:

[mysqld]
default_authentication_plugin=mysql_native_password
Copy to Clipboard Toggle word wrap

当前步骤

此步骤对 MySQL 配置 configmap 进行补丁,以启用升级到 MySQL 8.0。

注意

只有在您当前的 3scale 安装中存在 system-mysql 部署时才应遵循这个步骤。

流程

  1. configmap 进行补丁:

    $ oc patch configmap/mysql-extra-conf --type merge -p '{"data": {"mysql-default-authentication-plugin.cnf": "[mysqld]\ndefault_authentication_plugin=mysql_native_password"}}'
    Copy to Clipboard Toggle word wrap
  2. 验证 configmap 已更新:

    $ oc get cm mysql-extra-conf -o jsonpath='{.data.mysql-default-authentication-plugin\.cnf}'
    Copy to Clipboard Toggle word wrap
    • 应该返回:

      [mysqld]
      default_authentication_plugin=mysql_native_password
      Copy to Clipboard Toggle word wrap

后续步骤

升级 3scale 镜像

2.2.4. 升级 3scale 镜像

当前步骤

此步骤更新升级过程所需的 3scale 镜像。

2.2.4.1. 对 system 镜像进行补丁

  1. 创建新镜像流标签:

    $ oc patch imagestream/amp-system --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP system 2.12"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/system-rhel7:3scale2.12"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap
  2. 要继续这个过程,请考虑 3scale 部署中使用的数据库:

  1. 要使用 Oracle 数据库启动对 3scale 的系统镜像进行补丁,您必须构建系统镜像:

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

      tar -xzf 3scale-amp-openshift-templates-3scale-2.12.0-GA.tar.gz
      Copy to Clipboard Toggle word wrap
    • 将 Oracle Database Instant Client Package 文件放在 3scale-amp-openshift-templates-3scale-2.12.0-GA/amp/system-oracle/oracle-client-files 目录中。
    • 使用 -f 选项运行 oc process 命令,并使用 oc apply 命令指定 build.yml OpenShift 模板,并使用 -f 选项指定现有构建:

      $ oc process -f build.yml | oc apply -f -
      Copy to Clipboard Toggle word wrap
    • 输入 oc start-build 命令以构建新系统镜像:

      $ oc start-build 3scale-amp-system-oracle --from-dir=.
      Copy to Clipboard Toggle word wrap
  2. system-app ImageChangeTrigger 进行补丁:

    1. 删除旧的 2.11-oracle 触发器:

      $ oc set triggers dc/system-app --from-image=amp-system:2.11-oracle --containers=system-master,system-developer,system-provider --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/system-app --from-image=amp-system:2.12-oracle --containers=system-master,system-developer,system-provider
      Copy to Clipboard Toggle word wrap

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

  3. system-sidekiq ImageChange 触发器进行补丁:

    1. 删除旧的 2.11-oracle 触发器:

      $ oc set triggers dc/system-sidekiq --from-image=amp-system:2.11-oracle --containers=system-sidekiq,check-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/system-sidekiq --from-image=amp-system:2.12-oracle --containers=system-sidekiq,check-svc
      Copy to Clipboard Toggle word wrap

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

  4. system-sphinx ImageChange 触发器进行补丁:

    1. 删除旧的 2.11-oracle 触发器:

      $ oc set triggers dc/system-sphinx --from-image=amp-system:2.11-oracle --containers=system-sphinx,system-master-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/system-sphinx --from-image=amp-system:2.12-oracle --containers=system-sphinx,system-master-svc
      Copy to Clipboard Toggle word wrap

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

  5. 如果要缩减,请缩减 3scale。
2.2.4.1.2. 修补系统镜像:3scale 与其他数据库
  1. system-app ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/system-app --from-image=amp-system:2.11 --containers=system-master,system-developer,system-provider --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/system-app --from-image=amp-system:2.12 --containers=system-master,system-developer,system-provider
      Copy to Clipboard Toggle word wrap

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

  2. system-sidekiq ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/system-sidekiq --from-image=amp-system:2.11 --containers=system-sidekiq,check-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/system-sidekiq --from-image=amp-system:2.12 --containers=system-sidekiq,check-svc
      Copy to Clipboard Toggle word wrap

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

  3. system-sphinx ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/system-sphinx --from-image=amp-system:2.11 --containers=system-sphinx,system-master-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/system-sphinx --from-image=amp-system:2.12 --containers=system-sphinx,system-master-svc
      Copy to Clipboard Toggle word wrap

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

2.2.4.2. 对 apicast 镜像进行补丁

  1. amp-apicast 镜像流进行补丁:

    $ oc patch imagestream/amp-apicast --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP APIcast 2.12"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.12"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap
  2. apicast-staging ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/apicast-staging --from-image=amp-apicast:2.11 --containers=apicast-staging --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/apicast-staging --from-image=amp-apicast:2.12 --containers=apicast-staging
      Copy to Clipboard Toggle word wrap

      这会触发 apicast-staging 的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。

  3. apicast-production ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/apicast-production --from-image=amp-apicast:2.11 --containers=apicast-production,system-master-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/apicast-production --from-image=amp-apicast:2.12 --containers=apicast-production,system-master-svc
      Copy to Clipboard Toggle word wrap

      这会触发 apicast-production 的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。

2.2.4.3. 修补 backend 镜像

  1. amp-backend 镜像流进行补丁:

    $ oc patch imagestream/amp-backend --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Backend 2.12"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/backend-rhel8:3scale2.12"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap
  2. backend-listener ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/backend-listener --from-image=amp-backend:2.11 --containers=backend-listener --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/backend-listener --from-image=amp-backend:2.12 --containers=backend-listener
      Copy to Clipboard Toggle word wrap

      这会触发 backend-listener 的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。

  3. backend-worker ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/backend-worker --from-image=amp-backend:2.11 --containers=backend-worker,backend-redis-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/backend-worker --from-image=amp-backend:2.12 --containers=backend-worker,backend-redis-svc
      Copy to Clipboard Toggle word wrap

      这会触发 backend-worker 的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。

  4. backend-cron ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/backend-cron --from-image=amp-backend:2.11 --containers=backend-cron,backend-redis-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/backend-cron --from-image=amp-backend:2.12 --containers=backend-cron,backend-redis-svc
      Copy to Clipboard Toggle word wrap

      此命令会触发 backend-cron 的重新部署。等待它重新部署、对应的新容器集就绪,并且前面的容器集终止。

2.2.4.4. 对 zync 镜像进行补丁

  1. amp-zync 镜像流进行补丁:

    $ oc patch imagestream/amp-zync --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Zync 2.12"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/zync-rhel8:3scale2.12"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap
  2. zync ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/zync --from-image=amp-zync:2.11 --containers=zync,zync-db-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/zync --from-image=amp-zync:2.12 --containers=zync,zync-db-svc
      Copy to Clipboard Toggle word wrap

      这会触发重新部署 zync。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。

  3. zync-que ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/zync-que --from-image=amp-zync:2.11 --containers=que --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/zync-que --from-image=amp-zync:2.12 --containers=que
      Copy to Clipboard Toggle word wrap

      这会触发重新部署 zync-que。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。

2.2.4.5. 对 system-memcached 镜像进行补丁

  1. system-memcached 镜像流进行补丁:

    $ oc patch imagestream/system-memcached --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.12 Memcached"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/memcached-rhel7:3scale2.12"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap
  2. system-memcache ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/system-memcache --from-image=system-memcached:2.11 --containers=memcache --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/system-memcache --from-image=system-memcached:2.12 --containers=memcache
      Copy to Clipboard Toggle word wrap

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

2.2.4.6. 对 zync-database-postgresql 镜像进行补丁

  1. zync-database-postgresql 镜像流进行补丁:

    $ oc patch imagestream/zync-database-postgresql --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "Zync 2.12 PostgreSQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/postgresql-10-rhel7"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap
    • 此 patch 命令更新 zync-database-postgresql 镜像流,使其包含 2.12 标签。您可以使用这些步骤验证 2.12 标签是否已创建:

      1. 运行这个命令:

        $ oc get is zync-database-postgresql
        Copy to Clipboard Toggle word wrap
      2. 检查 Tags 列是否显示 2.12 标签。
  2. zync-database ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/zync-database --from-image=zync-database-postgresql:2.11 --containers=postgresql --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/zync-database --from-image=zync-database-postgresql:2.12 --containers=postgresql
      Copy to Clipboard Toggle word wrap

      如果镜像有新的更新,此补丁还可能触发重新部署 zync-database DeploymentConfig。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。

2.2.4.7. 其他镜像更改

如果您的 3scale 2.11 安装中提供了一个或多个 DeploymentConfig,请点击适用链接来获取如何继续的更多信息:

backend-redis DeploymentConfig

如果在当前 3scale 安装中存在 backend-redis DeploymentConfig,请为 backend-redisredis 镜像进行补丁:

  1. backend-redis 镜像流进行补丁:

    $ oc patch imagestream/backend-redis --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "Backend 2.12 Redis"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/redis-5-rhel7:5"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap

    这个补丁更新了 backend-redis 镜像流,使其包含 2.12 标签。使用以下命令,如果 Tags 列显示了 2.12,则确认标签已创建:

    $ oc get is backend-redis
    Copy to Clipboard Toggle word wrap
  2. backend-redis ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/backend-redis --from-image=backend-redis:2.11 --containers=backend-redis --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/backend-redis --from-image=backend-redis:2.12 --containers=backend-redis
      Copy to Clipboard Toggle word wrap

      如果镜像有新的更新,此补丁还可能触发 backend-redis DeploymentConfig 的重新部署。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。

system-redis DeploymentConfig

如果在当前 3scale 安装中存在 system-redis DeploymentConfig,请为 system-redisredis 镜像进行补丁。

  1. system-redis 镜像流进行补丁:

    $ oc patch imagestream/system-redis --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.12 Redis"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/redis-5-rhel7:5"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap

    此补丁更新了 system-redis 镜像流,使其包含 2.12 标签。使用以下命令,如果 Tags 列显示了 2.12,则确认标签已创建:

    $ oc get is system-redis
    Copy to Clipboard Toggle word wrap
  2. system-redis ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/system-redis --from-image=system-redis:2.11 --containers=system-redis --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/system-redis --from-image=system-redis:2.12 --containers=system-redis
      Copy to Clipboard Toggle word wrap

      如果镜像有新的更新,此补丁还可能触发 system-redis DeploymentConfig 的重新部署。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。

system-mysql DeploymentConfig

如果当前 3scale 安装中存在 system-mysql DeploymentConfig,请为 system-mysql 修补 MySQL 镜像。

  1. system-mysql 镜像流进行补丁:

    $ oc patch imagestream/system-mysql --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.12 MySQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhel8/mysql-80:1"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap

    此补丁更新了 system-mysql 镜像流,使其包含 2.12 标签。使用以下命令,如果 Tags 列显示了 2.12,则确认标签已创建:

    $ oc get is system-mysql
    Copy to Clipboard Toggle word wrap
  2. system-mysql ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/system-mysql --from-image=system-mysql:2.11 --containers=system-mysql --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/system-mysql --from-image=system-mysql:2.12 --containers=system-mysql
      Copy to Clipboard Toggle word wrap

      如果镜像上有新的更新,此补丁还可能触发 system-mysql DeploymentConfig 的重新部署。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。

system-postgresql DeploymentConfig

如果当前 3scale 安装中存在 system-postgresql DeploymentConfig,请为 system-postgresql 修补 PostgreSQL 镜像。

  1. system-postgresql 镜像流进行补丁:

    $ oc patch imagestream/system-postgresql --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.12 PostgreSQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/postgresql-10-rhel7"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap

    这个补丁更新了 system-postgresql 镜像流,使其包含 2.12 标签。使用以下命令,如果 Tags 列显示了 2.12,则确认标签已创建:

    $ oc get is system-postgresql
    Copy to Clipboard Toggle word wrap
  2. system-postgresql ImageChange 触发器进行补丁:

    1. 删除旧的 2.11 触发器:

      $ oc set triggers dc/system-postgresql --from-image=system-postgresql:2.11 --containers=system-postgresql --remove
      Copy to Clipboard Toggle word wrap
    2. 添加新的特定于版本的触发器:

      $ oc set triggers dc/system-postgresql --from-image=system-postgresql:2.12 --containers=system-postgresql
      Copy to Clipboard Toggle word wrap

      如果镜像上有新的更新,此补丁还可能触发 system-postgresql DeploymentConfig 的重新部署。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。

2.2.4.8. 确认镜像 URL

确认 DeploymentConfig 的所有镜像 URL 包含新的镜像 registry URL,并在各个 URL 地址末尾添加一个哈希:

THREESCALE_DC_NAMES="apicast-production apicast-staging backend-cron backend-listener backend-redis backend-worker system-app system-memcache system-mysql system-redis system-sidekiq system-sphinx zync zync-database zync-que"
for component in ${THREESCALE_DC_NAMES}; do echo -n "${component} image: " && oc get dc $component -o json | jq .spec.template.spec.containers[0].image ; done
Copy to Clipboard Toggle word wrap

2.2.5. 删除未使用的 MessageBus 变量

当前步骤

此步骤删除未使用的 MESSAGE_BUS_REDIS_* 变量。

  1. system-app 容器中移除 MESSAGE_BUS_REDIS_* 变量:

    • 请注意变量名称后面的横线字符。

      $ oc set env dc/system-app MESSAGE_BUS_REDIS_URL-
      $ oc set env dc/system-app MESSAGE_BUS_REDIS_NAMESPACE-
      $ oc set env dc/system-app MESSAGE_BUS_REDIS_SENTINEL_HOSTS-
      $ oc set env dc/system-app MESSAGE_BUS_REDIS_SENTINEL_ROLE-
      Copy to Clipboard Toggle word wrap
  2. system-app pre hook 中删除 MESSAGE_BUS_REDIS_* 变量:

    $ INDEX=$(oc get dc system-app -o json | jq '.spec.strategy.rollingParams.pre.execNewPod.env | map(.name == "MESSAGE_BUS_REDIS_URL") | index(true)')
    oc patch dc/system-app --type=json -p "[{'op': 'remove', 'path': '/spec/strategy/rollingParams/pre/execNewPod/env/$INDEX'}]"
    
    $ INDEX=$(oc get dc system-app -o json | jq '.spec.strategy.rollingParams.pre.execNewPod.env | map(.name == "MESSAGE_BUS_REDIS_NAMESPACE") | index(true)')
    oc patch dc/system-app --type=json -p "[{'op': 'remove', 'path': '/spec/strategy/rollingParams/pre/execNewPod/env/$INDEX'}]"
    
    $ INDEX=$(oc get dc system-app -o json | jq '.spec.strategy.rollingParams.pre.execNewPod.env | map(.name == "MESSAGE_BUS_REDIS_SENTINEL_HOSTS") | index(true)')
    oc patch dc/system-app --type=json -p "[{'op': 'remove', 'path': '/spec/strategy/rollingParams/pre/execNewPod/env/$INDEX'}]"
    
    $ INDEX=$(oc get dc system-app -o json | jq '.spec.strategy.rollingParams.pre.execNewPod.env | map(.name == "MESSAGE_BUS_REDIS_SENTINEL_ROLE") | index(true)')
    oc patch dc/system-app --type=json -p "[{'op': 'remove', 'path': '/spec/strategy/rollingParams/pre/execNewPod/env/$INDEX'}]"
    Copy to Clipboard Toggle word wrap
  3. 验证 MESSAGE_BUS_REDIS_* 环境变量不存在:

    $ oc get dc system-app -o yaml | grep MESSAGE_BUS_REDIS
    Copy to Clipboard Toggle word wrap
  1. system-sidekiq 容器中删除 MESSAGE_BUS_REDIS_* 变量:

    • 请注意变量名称后面的横线字符。

      $ oc set env dc/system-sidekiq MESSAGE_BUS_REDIS_URL-
      $ oc set env dc/system-sidekiq MESSAGE_BUS_REDIS_NAMESPACE-
      $ oc set env dc/system-sidekiq MESSAGE_BUS_REDIS_SENTINEL_HOSTS-
      $ oc set env dc/system-sidekiq MESSAGE_BUS_REDIS_SENTINEL_ROLE-
      Copy to Clipboard Toggle word wrap
  2. system-sidekiq init-container 中删除 MESSAGE_BUS_REDIS_* 变量:

    $ INDEX=$(oc get dc system-sidekiq -o json | jq '.spec.template.spec.initContainers[].env | map(.name == "MESSAGE_BUS_REDIS_URL") | index(true)')
    oc patch dc/system-sidekiq --type=json -p "[{'op': 'remove', 'path': '/spec/template/spec/initContainers/0/env/$INDEX'}]"
    
    $ INDEX=$(oc get dc system-sidekiq -o json | jq '.spec.template.spec.initContainers[].env | map(.name == "MESSAGE_BUS_REDIS_NAMESPACE") | index(true)')
    oc patch dc/system-sidekiq --type=json -p "[{'op': 'remove', 'path': '/spec/template/spec/initContainers/0/env/$INDEX'}]"
    
    $ INDEX=$(oc get dc system-sidekiq -o json | jq '.spec.template.spec.initContainers[].env | map(.name == "MESSAGE_BUS_REDIS_SENTINEL_HOSTS") | index(true)')
    oc patch dc/system-sidekiq --type=json -p "[{'op': 'remove', 'path': '/spec/template/spec/initContainers/0/env/$INDEX'}]"
    
    $ INDEX=$(oc get dc system-sidekiq -o json | jq '.spec.template.spec.initContainers[].env | map(.name == "MESSAGE_BUS_REDIS_SENTINEL_ROLE") | index(true)')
    oc patch dc/system-sidekiq --type=json -p "[{'op': 'remove', 'path': '/spec/template/spec/initContainers/0/env/$INDEX'}]"
    Copy to Clipboard Toggle word wrap
  3. 验证 MESSAGE_BUS_REDIS_* 环境变量不存在:

    $ oc get dc system-sidekiq -o yaml | grep MESSAGE_BUS_REDIS
    Copy to Clipboard Toggle word wrap
  1. system-sphinx 容器中删除 MESSAGE_BUS_REDIS_* 变量:

    • 请注意变量名称后面的横线字符。

      $ oc set env dc/system-sphinx MESSAGE_BUS_REDIS_URL-
      $ oc set env dc/system-sphinx MESSAGE_BUS_REDIS_NAMESPACE-
      $ oc set env dc/system-sphinx MESSAGE_BUS_REDIS_SENTINEL_HOSTS-
      $ oc set env dc/system-sphinx MESSAGE_BUS_REDIS_SENTINEL_ROLE-
      Copy to Clipboard Toggle word wrap
  2. 验证 MESSAGE_BUS_REDIS_* 环境变量不存在:

    $ oc get dc system-sphinx -o yaml | grep MESSAGE_BUS_REDIS
    Copy to Clipboard Toggle word wrap
  1. system-redis secret 中删除 MESSAGE_BUS_REDIS_* 变量:

    $ oc patch secret/system-redis --type=json -p "[{'op': 'remove', 'path': '/data/MESSAGE_BUS_URL'}]"
    $ oc patch secret/system-redis --type=json -p "[{'op': 'remove', 'path': '/data/MESSAGE_BUS_NAMESPACE'}]"
    $ oc patch secret/system-redis --type=json -p "[{'op': 'remove', 'path': '/data/MESSAGE_BUS_SENTINEL_HOSTS'}]"
    $ oc patch secret/system-redis --type=json -p "[{'op': 'remove', 'path': '/data/MESSAGE_BUS_SENTINEL_ROLE'}]"
    Copy to Clipboard Toggle word wrap
  2. 验证 MESSAGE_BUS_REDIS_* 环境变量不存在:

    $ oc get secret system-redis -o yaml | grep MESSAGE_BUS
    Copy to Clipboard Toggle word wrap

此升级支持使用 PostgreSQL 10 的外部 system-database。您应当先完成 3scale 升级,然后升级到 PostgreSQL 13。

后续步骤

无。执行所有列出的步骤后,基于模板的部署中的 3scale 从 2.11 升级到 2.12 现已完成。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat