2.2. 在基于模板的安装中,从 2.11 升级到 2.12
按照本节所述步骤,在基于模板的安装中将 3scale 2.11 升级到 2.12。
要开始升级,请转至部署了 3scale 的项目。
oc project <3scale-project>
$ oc project <3scale-project>
然后,按照以下顺序执行这些步骤:
2.2.1. 创建 3scale 项目的备份 复制链接链接已复制到粘贴板!
前一步
无。
当前步骤
此步骤列出了创建 3scale 项目的备份所需的操作。
流程
根据与 3scale 一起使用的数据库,使用以下值之一设置 ${SYSTEM_DB}:
-
如果数据库是 MySQL,则为
SYSTEM_DB=system-mysql
。 -
如果数据库是 PostgreSQL,则为
SYSTEM_DB=system-postgresql
。
-
如果数据库是 MySQL,则为
使用现有 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"
$ 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 Copied! Toggle word wrap Toggle overflow 备份通过
export all
命令导出的项目中所有现有 OpenShift 资源:oc get -o yaml --export all > threescale-project-elements.yaml
$ oc get -o yaml --export all > threescale-project-elements.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用没有使用
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
$ 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 Copied! Toggle word wrap Toggle overflow - 验证所有生成的文件是否都为空,并且所有这些文件都具有预期内容。
2.2.2. 删除未使用的 AMP_RELEASE 变量 复制链接链接已复制到粘贴板!
前一步
当前步骤
此步骤从 system-app
容器 (system-app
pre hook) 中移除未使用的 AMP_RELEASE 变量,然后验证 AMP_RELEASE 不存在。
流程
从
system-app
容器中删除该变量:请注意变量名称后面的横线字符。
oc set env dc/system-app AMP_RELEASE-
$ oc set env dc/system-app AMP_RELEASE-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
从
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)')
$ 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 Copied! Toggle word wrap Toggle overflow 验证 AMP_RELEASE 不存在:
oc get dc system-app -o yaml | grep AMP_RELEASE
$ oc get dc system-app -o yaml | grep AMP_RELEASE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
后续步骤
2.2.3. 升级 MySQL 配置 复制链接链接已复制到粘贴板!
如果您的 3scale 部署启用了外部数据库模式并使用 MySQL 8.0,请将身份验证插件设置为 3scale 2.12 的 mysql_native_password
。
在 MySQL 配置文件中添加以下内容:
[mysqld] default_authentication_plugin=mysql_native_password
[mysqld]
default_authentication_plugin=mysql_native_password
当前步骤
此步骤对 MySQL 配置 configmap
进行补丁,以启用升级到 MySQL 8.0。
只有在您当前的 3scale 安装中存在 system-mysql
部署时才应遵循这个步骤。
流程
对
configmap
进行补丁:oc patch configmap/mysql-extra-conf --type merge -p '{"data": {"mysql-default-authentication-plugin.cnf": "[mysqld]\ndefault_authentication_plugin=mysql_native_password"}}'
$ 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 Copied! Toggle word wrap Toggle overflow 验证
configmap
已更新:oc get cm mysql-extra-conf -o jsonpath='{.data.mysql-default-authentication-plugin\.cnf}'
$ oc get cm mysql-extra-conf -o jsonpath='{.data.mysql-default-authentication-plugin\.cnf}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应该返回:
[mysqld] default_authentication_plugin=mysql_native_password
[mysqld] default_authentication_plugin=mysql_native_password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
后续步骤
2.2.4. 升级 3scale 镜像 复制链接链接已复制到粘贴板!
前一步
当前步骤
此步骤更新升级过程所需的 3scale 镜像。
2.2.4.1. 对 system 镜像进行补丁 复制链接链接已复制到粘贴板!
创建新镜像流标签:
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"}}}]'
$ 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 Copied! Toggle word wrap Toggle overflow 要继续这个过程,请考虑 3scale 部署中使用的数据库:
- 如果数据库是 Oracle DB,请按照 Patching system 镜像中列出的步骤进行:3scale 使用 Oracle 数据库
- 如果数据库与 Oracle DB 不同,请按照补丁系统镜像中列出的步骤进行操作:3scale 与其他数据库
2.2.4.1.1. 修补系统镜像:3scale 使用 Oracle 数据库 复制链接链接已复制到粘贴板!
要使用 Oracle 数据库启动对 3scale 的系统镜像进行补丁,您必须构建系统镜像:
从 GitHub 存储库下载 3scale OpenShift 模板并提取存档:
tar -xzf 3scale-amp-openshift-templates-3scale-2.12.0-GA.tar.gz
tar -xzf 3scale-amp-openshift-templates-3scale-2.12.0-GA.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 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 -
$ oc process -f build.yml | oc apply -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入
oc start-build
命令以构建新系统镜像:oc start-build 3scale-amp-system-oracle --from-dir=.
$ oc start-build 3scale-amp-system-oracle --from-dir=.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
对
system-app
ImageChangeTrigger 进行补丁:删除旧的
2.11-oracle
触发器:oc set triggers dc/system-app --from-image=amp-system:2.11-oracle --containers=system-master,system-developer,system-provider --remove
$ oc set triggers dc/system-app --from-image=amp-system:2.11-oracle --containers=system-master,system-developer,system-provider --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-app --from-image=amp-system:2.12-oracle --containers=system-master,system-developer,system-provider
$ oc set triggers dc/system-app --from-image=amp-system:2.12-oracle --containers=system-master,system-developer,system-provider
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-app
的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
system-sidekiq
ImageChange 触发器进行补丁:删除旧的
2.11-oracle
触发器:oc set triggers dc/system-sidekiq --from-image=amp-system:2.11-oracle --containers=system-sidekiq,check-svc --remove
$ oc set triggers dc/system-sidekiq --from-image=amp-system:2.11-oracle --containers=system-sidekiq,check-svc --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-sidekiq --from-image=amp-system:2.12-oracle --containers=system-sidekiq,check-svc
$ oc set triggers dc/system-sidekiq --from-image=amp-system:2.12-oracle --containers=system-sidekiq,check-svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-sidekiq
的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
system-sphinx
ImageChange 触发器进行补丁:删除旧的
2.11-oracle
触发器:oc set triggers dc/system-sphinx --from-image=amp-system:2.11-oracle --containers=system-sphinx,system-master-svc --remove
$ oc set triggers dc/system-sphinx --from-image=amp-system:2.11-oracle --containers=system-sphinx,system-master-svc --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-sphinx --from-image=amp-system:2.12-oracle --containers=system-sphinx,system-master-svc
$ oc set triggers dc/system-sphinx --from-image=amp-system:2.12-oracle --containers=system-sphinx,system-master-svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-sphinx
的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
- 如果要缩减,请缩减 3scale。
2.2.4.1.2. 修补系统镜像:3scale 与其他数据库 复制链接链接已复制到粘贴板!
对
system-app
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/system-app --from-image=amp-system:2.11 --containers=system-master,system-developer,system-provider --remove
$ oc set triggers dc/system-app --from-image=amp-system:2.11 --containers=system-master,system-developer,system-provider --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-app --from-image=amp-system:2.12 --containers=system-master,system-developer,system-provider
$ oc set triggers dc/system-app --from-image=amp-system:2.12 --containers=system-master,system-developer,system-provider
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-app
的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
system-sidekiq
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/system-sidekiq --from-image=amp-system:2.11 --containers=system-sidekiq,check-svc --remove
$ oc set triggers dc/system-sidekiq --from-image=amp-system:2.11 --containers=system-sidekiq,check-svc --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-sidekiq --from-image=amp-system:2.12 --containers=system-sidekiq,check-svc
$ oc set triggers dc/system-sidekiq --from-image=amp-system:2.12 --containers=system-sidekiq,check-svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-sidekiq
的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
system-sphinx
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/system-sphinx --from-image=amp-system:2.11 --containers=system-sphinx,system-master-svc --remove
$ oc set triggers dc/system-sphinx --from-image=amp-system:2.11 --containers=system-sphinx,system-master-svc --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-sphinx --from-image=amp-system:2.12 --containers=system-sphinx,system-master-svc
$ oc set triggers dc/system-sphinx --from-image=amp-system:2.12 --containers=system-sphinx,system-master-svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-sphinx
的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
2.2.4.2. 对 apicast 镜像进行补丁 复制链接链接已复制到粘贴板!
对
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"}}}]'
$ 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 Copied! Toggle word wrap Toggle overflow 对
apicast-staging
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/apicast-staging --from-image=amp-apicast:2.11 --containers=apicast-staging --remove
$ oc set triggers dc/apicast-staging --from-image=amp-apicast:2.11 --containers=apicast-staging --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/apicast-staging --from-image=amp-apicast:2.12 --containers=apicast-staging
$ oc set triggers dc/apicast-staging --from-image=amp-apicast:2.12 --containers=apicast-staging
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
apicast-staging
的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
apicast-production
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/apicast-production --from-image=amp-apicast:2.11 --containers=apicast-production,system-master-svc --remove
$ oc set triggers dc/apicast-production --from-image=amp-apicast:2.11 --containers=apicast-production,system-master-svc --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/apicast-production --from-image=amp-apicast:2.12 --containers=apicast-production,system-master-svc
$ oc set triggers dc/apicast-production --from-image=amp-apicast:2.12 --containers=apicast-production,system-master-svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
apicast-production
的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
2.2.4.3. 修补 backend 镜像 复制链接链接已复制到粘贴板!
对
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"}}}]'
$ 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 Copied! Toggle word wrap Toggle overflow 对
backend-listener
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/backend-listener --from-image=amp-backend:2.11 --containers=backend-listener --remove
$ oc set triggers dc/backend-listener --from-image=amp-backend:2.11 --containers=backend-listener --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/backend-listener --from-image=amp-backend:2.12 --containers=backend-listener
$ oc set triggers dc/backend-listener --from-image=amp-backend:2.12 --containers=backend-listener
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
backend-listener
的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
backend-worker
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/backend-worker --from-image=amp-backend:2.11 --containers=backend-worker,backend-redis-svc --remove
$ oc set triggers dc/backend-worker --from-image=amp-backend:2.11 --containers=backend-worker,backend-redis-svc --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/backend-worker --from-image=amp-backend:2.12 --containers=backend-worker,backend-redis-svc
$ oc set triggers dc/backend-worker --from-image=amp-backend:2.12 --containers=backend-worker,backend-redis-svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
backend-worker
的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
backend-cron
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/backend-cron --from-image=amp-backend:2.11 --containers=backend-cron,backend-redis-svc --remove
$ oc set triggers dc/backend-cron --from-image=amp-backend:2.11 --containers=backend-cron,backend-redis-svc --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/backend-cron --from-image=amp-backend:2.12 --containers=backend-cron,backend-redis-svc
$ oc set triggers dc/backend-cron --from-image=amp-backend:2.12 --containers=backend-cron,backend-redis-svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令会触发
backend-cron
的重新部署。等待它重新部署、对应的新容器集就绪,并且前面的容器集终止。
2.2.4.4. 对 zync 镜像进行补丁 复制链接链接已复制到粘贴板!
对
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"}}}]'
$ 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 Copied! Toggle word wrap Toggle overflow 对
zync
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/zync --from-image=amp-zync:2.11 --containers=zync,zync-db-svc --remove
$ oc set triggers dc/zync --from-image=amp-zync:2.11 --containers=zync,zync-db-svc --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/zync --from-image=amp-zync:2.12 --containers=zync,zync-db-svc
$ oc set triggers dc/zync --from-image=amp-zync:2.12 --containers=zync,zync-db-svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发重新部署
zync
。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
zync-que
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/zync-que --from-image=amp-zync:2.11 --containers=que --remove
$ oc set triggers dc/zync-que --from-image=amp-zync:2.11 --containers=que --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/zync-que --from-image=amp-zync:2.12 --containers=que
$ oc set triggers dc/zync-que --from-image=amp-zync:2.12 --containers=que
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发重新部署
zync-que
。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
2.2.4.5. 对 system-memcached 镜像进行补丁 复制链接链接已复制到粘贴板!
对
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"}}}]'
$ 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 Copied! Toggle word wrap Toggle overflow 对
system-memcache
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/system-memcache --from-image=system-memcached:2.11 --containers=memcache --remove
$ oc set triggers dc/system-memcache --from-image=system-memcached:2.11 --containers=memcache --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-memcache --from-image=system-memcached:2.12 --containers=memcache
$ oc set triggers dc/system-memcache --from-image=system-memcached:2.12 --containers=memcache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-memcache
DeploymentConfig 的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
2.2.4.6. 对 zync-database-postgresql 镜像进行补丁 复制链接链接已复制到粘贴板!
对
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"}}}]'
$ 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 Copied! Toggle word wrap Toggle overflow 此 patch 命令更新
zync-database-postgresql
镜像流,使其包含 2.12 标签。您可以使用这些步骤验证 2.12 标签是否已创建:运行这个命令:
oc get is zync-database-postgresql
$ oc get is zync-database-postgresql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 检查 Tags 列是否显示 2.12 标签。
对
zync-database
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/zync-database --from-image=zync-database-postgresql:2.11 --containers=postgresql --remove
$ oc set triggers dc/zync-database --from-image=zync-database-postgresql:2.11 --containers=postgresql --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/zync-database --from-image=zync-database-postgresql:2.12 --containers=postgresql
$ oc set triggers dc/zync-database --from-image=zync-database-postgresql:2.12 --containers=postgresql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果镜像有新的更新,此补丁还可能触发重新部署
zync-database
DeploymentConfig。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。
2.2.4.7. 其他镜像更改 复制链接链接已复制到粘贴板!
如果您的 3scale 2.11 安装中提供了一个或多个 DeploymentConfig,请点击适用链接来获取如何继续的更多信息:
backend-redis
DeploymentConfig
如果在当前 3scale 安装中存在 backend-redis
DeploymentConfig,请为 backend-redis
对 redis
镜像进行补丁:
对
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"}}}]'
$ 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 Copied! Toggle word wrap Toggle overflow 这个补丁更新了 backend-redis 镜像流,使其包含 2.12 标签。使用以下命令,如果 Tags 列显示了 2.12,则确认标签已创建:
oc get is backend-redis
$ oc get is backend-redis
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
backend-redis
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/backend-redis --from-image=backend-redis:2.11 --containers=backend-redis --remove
$ oc set triggers dc/backend-redis --from-image=backend-redis:2.11 --containers=backend-redis --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/backend-redis --from-image=backend-redis:2.12 --containers=backend-redis
$ oc set triggers dc/backend-redis --from-image=backend-redis:2.12 --containers=backend-redis
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果镜像有新的更新,此补丁还可能触发
backend-redis
DeploymentConfig 的重新部署。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。
system-redis
DeploymentConfig
如果在当前 3scale 安装中存在 system-redis
DeploymentConfig,请为 system-redis
对 redis
镜像进行补丁。
对
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"}}}]'
$ 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 Copied! Toggle word wrap Toggle overflow 此补丁更新了
system-redis
镜像流,使其包含 2.12 标签。使用以下命令,如果 Tags 列显示了 2.12,则确认标签已创建:oc get is system-redis
$ oc get is system-redis
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
system-redis
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/system-redis --from-image=system-redis:2.11 --containers=system-redis --remove
$ oc set triggers dc/system-redis --from-image=system-redis:2.11 --containers=system-redis --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-redis --from-image=system-redis:2.12 --containers=system-redis
$ oc set triggers dc/system-redis --from-image=system-redis:2.12 --containers=system-redis
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果镜像有新的更新,此补丁还可能触发
system-redis
DeploymentConfig 的重新部署。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。
system-mysql
DeploymentConfig
如果当前 3scale 安装中存在 system-mysql
DeploymentConfig,请为 system-mysql
修补 MySQL 镜像。
对
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"}}}]'
$ 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 Copied! Toggle word wrap Toggle overflow 此补丁更新了
system-mysql
镜像流,使其包含 2.12 标签。使用以下命令,如果 Tags 列显示了 2.12,则确认标签已创建:oc get is system-mysql
$ oc get is system-mysql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
system-mysql
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/system-mysql --from-image=system-mysql:2.11 --containers=system-mysql --remove
$ oc set triggers dc/system-mysql --from-image=system-mysql:2.11 --containers=system-mysql --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-mysql --from-image=system-mysql:2.12 --containers=system-mysql
$ oc set triggers dc/system-mysql --from-image=system-mysql:2.12 --containers=system-mysql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果镜像上有新的更新,此补丁还可能触发
system-mysql
DeploymentConfig 的重新部署。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。
system-postgresql
DeploymentConfig
如果当前 3scale 安装中存在 system-postgresql
DeploymentConfig,请为 system-postgresql
修补 PostgreSQL 镜像。
对
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"}}}]'
$ 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 Copied! Toggle word wrap Toggle overflow 这个补丁更新了
system-postgresql
镜像流,使其包含 2.12 标签。使用以下命令,如果 Tags 列显示了 2.12,则确认标签已创建:oc get is system-postgresql
$ oc get is system-postgresql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
system-postgresql
ImageChange 触发器进行补丁:删除旧的
2.11
触发器:oc set triggers dc/system-postgresql --from-image=system-postgresql:2.11 --containers=system-postgresql --remove
$ oc set triggers dc/system-postgresql --from-image=system-postgresql:2.11 --containers=system-postgresql --remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-postgresql --from-image=system-postgresql:2.12 --containers=system-postgresql
$ oc set triggers dc/system-postgresql --from-image=system-postgresql:2.12 --containers=system-postgresql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果镜像上有新的更新,此补丁还可能触发
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
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
后续步骤
2.2.5. 删除未使用的 MessageBus 变量 复制链接链接已复制到粘贴板!
前一步
当前步骤
此步骤删除未使用的 MESSAGE_BUS_REDIS_* 变量。
从
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-
$ 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 Copied! Toggle word wrap Toggle overflow
从
system-app
pre hook 中删除 MESSAGE_BUS_REDIS_* 变量:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 MESSAGE_BUS_REDIS_* 环境变量不存在:
oc get dc system-app -o yaml | grep MESSAGE_BUS_REDIS
$ oc get dc system-app -o yaml | grep MESSAGE_BUS_REDIS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
从
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-
$ 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 Copied! Toggle word wrap Toggle overflow
从
system-sidekiq
init-container 中删除 MESSAGE_BUS_REDIS_* 变量:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 MESSAGE_BUS_REDIS_* 环境变量不存在:
oc get dc system-sidekiq -o yaml | grep MESSAGE_BUS_REDIS
$ oc get dc system-sidekiq -o yaml | grep MESSAGE_BUS_REDIS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
从
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-
$ 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 Copied! Toggle word wrap Toggle overflow
验证 MESSAGE_BUS_REDIS_* 环境变量不存在:
oc get dc system-sphinx -o yaml | grep MESSAGE_BUS_REDIS
$ oc get dc system-sphinx -o yaml | grep MESSAGE_BUS_REDIS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
从
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'}]"
$ 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 Copied! Toggle word wrap Toggle overflow 验证 MESSAGE_BUS_REDIS_* 环境变量不存在:
oc get secret system-redis -o yaml | grep MESSAGE_BUS
$ oc get secret system-redis -o yaml | grep MESSAGE_BUS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
此升级支持使用 PostgreSQL 10 的外部 system-database
。您应当先完成 3scale 升级,然后升级到 PostgreSQL 13。
后续步骤
无。执行所有列出的步骤后,基于模板的部署中的 3scale 从 2.11 升级到 2.12 现已完成。