迁移 3scale
迁移或升级 3scale API 管理及其组件
摘要
前言 复制链接链接已复制到粘贴板!
本指南提供了将 Red Hat 3scale API Management 从模板迁移到基于 operator 的安装、将 3scale 安装从 2.10 升级到 2.11 所需的详情,以及在基于 operator 的部署中升级 APIcast 的步骤。
要从基于模板的部署迁移到基于 Operator 的部署,请参阅 3scale 迁移指南中列出的步骤。
要将 3scale On-premises 部署从 2.10 升级到 2.11,请参阅以下步骤之一,具体取决于安装类型:
要在基于 operator 的部署中升级 APIcast,请参阅 APIcast 升级指南中列出的步骤。
让开源更具包容性 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看我们的 CTO Chris Wright 信息。
第 1 章 3scale 迁移指南:从模板到基于 operator 的部署 复制链接链接已复制到粘贴板!
本节介绍使用 Red Hat OpenShift 3.11 将 Red Hat 3scale API 管理从基于模板的部署迁移到使用 Red Hat OpenShift 4.x 基于 Operator 的部署。
为了了解所需的条件和程序,请在应用列出的步骤前阅读整个迁移指南。迁移过程会破坏服务的调配,直到过程完成为止。因为这个过程需要涉及到系统中断,请确保计划有一个维护窗口进行。
1.1. 执行迁移的先决条件 复制链接链接已复制到粘贴板!
在将 3scale 安装从模板迁移到基于 Operator 的部署之前,请通过咨询以下指南确认您的部署受支持:
1.2. 将 3scale 模板迁移到基于 operator 的部署 复制链接链接已复制到粘贴板!
迁移前的基本设置是 3scale 指向 OCP3 域:3scale.example.com → ocp3.example.com
要将 3scale 从使用 Red Hat OpenShift 3.11 的基于模板的部署迁移到使用 Red Hat OpenShift 4.1 的基于 operator 的部署,按照以下步骤进行:
- 从基于模板的部署创建一个 3scale 备份。
- 使用 operator 部署 3scale。
- 在基于 Operator 的部署中恢复备份。
-
将 3scale WILDCARD_DOMAIN(在本例中为
3scale.example.com)指向ocp4.example.com。
执行所有列出的步骤后,3scale 从模板迁移至基于 Operator 的部署现已完成。
第 2 章 使用模板将 3scale 版本 2.10 升级到 2.11 复制链接链接已复制到粘贴板!
您可以使用 OpenShift 3.11 基于模板的部署将 Red Hat 3scale API 管理从 2.10 升级到 2.11 版本。
要了解所需的条件和程序,请务必先阅读整个升级指南,然后再应用列出的步骤。升级过程会破坏服务的调配,直到过程完成为止。因为这个过程需要涉及到系统中断,请确保计划有一个维护窗口进行。
2.1. 执行升级的先决条件 复制链接链接已复制到粘贴板!
这部分论述了在基于模板的安装中将 3scale 从 2.10 升级到 2.11 所需的配置、任务和工具。
2.1.1. 配置 复制链接链接已复制到粘贴板!
- 3scale 支持通过 OpenShift 3.11 上的模板从 2.10 升级到 2.11。
2.1.2. 准备步骤 复制链接链接已复制到粘贴板!
- 确保 OpenShift CLI 工具已在部署了 3scale 的同一项目中配置。
- 对您用于 3scale 的数据库执行备份。备份过程特定于每种数据库类型和设置。
2.1.3. 工具 复制链接链接已复制到粘贴板!
您需要这些工具来执行升级:
- 3scale 2.10 使用 OpenShift 3.11 项目中的模板部署。
- Bash shell:要运行升级过程中详述的命令,请执行以下操作:
- base64:对机密信息进行编码和解码。
- jq:用于 JSON 转换目的。
2.2. 在基于模板的安装中从 2.10 升级到 2.11 复制链接链接已复制到粘贴板!
按照本节所述的步骤,在基于模板的安装中将 3scale 2.10 升级到 2.11。
要开始升级,请转至部署了 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" for component in ${THREESCALE_DC_NAMES}; do oc get --export -o yaml dc ${component} > ${component}_dc.yml ; done$ 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 ; doneCopy 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.yamlCopy 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 doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证所有生成的文件是否都为空,并且所有这些文件都具有预期内容。
后续步骤
2.2.2. 更新 3scale 版本号 复制链接链接已复制到粘贴板!
前一步
当前步骤
此步骤将 system-environment ConfigMap 中的 3scale 发行版本号从 2.10 更新到 2.11。AMP_RELEASE 是某些 DeploymentConfig 容器环境中引用的 ConfigMap 条目。
步骤
要修补 AMP_RELEASE,请运行以下命令:
oc patch cm system-environment --patch '{"data": {"AMP_RELEASE": "2.11"}}'$ oc patch cm system-environment --patch '{"data": {"AMP_RELEASE": "2.11"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认 system-environment ConfigMap 中的 AMP_RELEASE 键的值为
2.11:oc get cm system-environment -o json | jq '.data["AMP_RELEASE"]'
$ oc get cm system-environment -o json | jq '.data["AMP_RELEASE"]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.3. 更新 BACKEND_ROUTE 环境变量 复制链接链接已复制到粘贴板!
前一步
当前步骤
此步骤更新 system-app 和 system-sidekiq Pod 的 BACKEND_ROUTE 环境变量,以使用 backend-listener Kubernetes 服务而不是 OpenShift 路由。
步骤
通过编辑
system-appDeploymentConfig 来更新 system-app pre-hook pod 中的变量:oc edit dc system-app
$ oc edit dc system-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您将进入交互式编辑器会话。在
.spec.strategy.rollingParams.pre.execNewPod.env数组部分中找到 BACKEND_ROUTE 环境变量。替换以下条目:
- name: BACKEND_ROUTE valueFrom: secretKeyRef: key: route_endpoint name: backend-listener- name: BACKEND_ROUTE valueFrom: secretKeyRef: key: route_endpoint name: backend-listenerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用这个条目:
- name: BACKEND_ROUTE value: http://backend-listener:3000/internal/
- name: BACKEND_ROUTE value: http://backend-listener:3000/internal/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 保存更改并退出交互式编辑器会话。
更新
system-app容器中的条目:oc set env dc/system-app BACKEND_ROUTE="http://backend-listener:3000/internal/"
$ oc set env dc/system-app BACKEND_ROUTE="http://backend-listener:3000/internal/"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令会触发
system-app的重新部署。等待它重新部署、对应的新容器集就绪,并且前面的容器集终止。在
system-sidekiq容器中更新它:oc set env dc/system-sidekiq BACKEND_ROUTE="http://backend-listener:3000/internal/"
$ oc set env dc/system-sidekiq BACKEND_ROUTE="http://backend-listener:3000/internal/"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令会触发
system-sidekiq的重新部署。等待它重新部署、对应的新容器集就绪,并且前面的容器集终止。
当前步骤
此步骤将 prometheus.io/port 和 prometheus.io/scrape 注解从 zync DeploymentConfig 注解移到 PodTemplate 注解中。
步骤
运行以下命令来记录
prometheus.io/port 和 prometheus.io/scrape注解的当前值:oc get dc zync -o json | jq .metadata.annotations
$ oc get dc zync -o json | jq .metadata.annotationsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将注解添加到
zyncDeploymentConfig 的 PodTemplate 注解。如果prometheus.io/port 和 prometheus.io/scrape注解值与以下命令中所示的不同,则将它们替换为当前在zyncDeploymentConfig DeploymentConfig 中设置的值,如上一命令所示:oc patch dc zync --patch '{"spec":{"template":{"metadata":{"annotations":{"prometheus.io/port":"9393","prometheus.io/scrape":"true"}}}}}'$ oc patch dc zync --patch '{"spec":{"template":{"metadata":{"annotations":{"prometheus.io/port":"9393","prometheus.io/scrape":"true"}}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从 zync DeploymentConfig 注解中删除原始注解:
oc annotate dc zync prometheus.io/scrape- oc annotate dc zync prometheus.io/port-
$ oc annotate dc zync prometheus.io/scrape- $ oc annotate dc zync prometheus.io/port-Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令会触发 zync 的重新部署。等待它重新部署、对应的新容器集就绪,并且前面的容器集终止。
2.2.5. 增加 backend-cron DeploymentConfig 资源要求 复制链接链接已复制到粘贴板!
当前步骤
从 3scale 2.11 开始,backend-cron DeploymentConfig 消耗的内存可能比早期版本多。使用此流程从当前设置值增加最大内存限值。
3scale 2.11 中所需的 backend-cron 资源为:
如果当前 backend-cron 部署没有内存限制,或者资源要求较高,则不需要完成以下步骤。
步骤
使用以下命令检查
backend-cron设置的当前资源要求:oc get dc backend-cron -o json | jq .spec.template.spec.containers[0].resources
$ oc get dc backend-cron -o json | jq .spec.template.spec.containers[0].resourcesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果输出为空或
null,代表没有设置资源要求。要增加当前的
backend-cron资源要求,请运行以下命令:oc patch dc backend-cron --patch '{"spec":{"template":{"spec":{"containers":[{"name":"backend-cron","resources":{"limits":{"memory":"500Mi", "cpu": "500m"}, "requests":{"memory":"100Mi", "cpu": "100m"}}}]}}}}'$ oc patch dc backend-cron --patch '{"spec":{"template":{"spec":{"containers":[{"name":"backend-cron","resources":{"limits":{"memory":"500Mi", "cpu": "500m"}, "requests":{"memory":"100Mi", "cpu": "100m"}}}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令会触发
backend-cron的重新部署。等待它重新部署、对应的新容器集就绪,并且前面的容器集终止。
后续步骤
2.2.6. 升级 3scale 镜像 复制链接链接已复制到粘贴板!
当前步骤
此步骤更新升级过程所需的 3scale 镜像。
2.2.6.1. 对 system 镜像进行补丁 复制链接链接已复制到粘贴板!
创建新镜像流标签:
oc patch imagestream/amp-system --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP system 2.11"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/system-rhel7:3scale2.11"}, "name": "2.11", "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.11"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/system-rhel7:3scale2.11"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要继续这个过程,请考虑 3scale 部署中使用的数据库:
- 如果数据库是 Oracle DB,请按照 Patching system 镜像中列出的步骤进行:3scale 使用 Oracle 数据库
- 如果数据库与 Oracle DB 不同,请按照补丁系统镜像中列出的步骤进行操作:3scale 与其他数据库
2.2.6.1.1. 修补系统镜像:3scale 使用 Oracle 数据库 复制链接链接已复制到粘贴板!
- 要开始使用 Oracle 数据库修补 3scale 的系统镜像,请执行构建系统镜像的步骤 1、2、4 和 8。
对
system-appImageChangeTrigger 进行补丁:删除旧的
2.10-oracle触发器:oc set triggers dc/system-app --from-image=amp-system:2.10-oracle --containers=system-master,system-developer,system-provider --remove
$ oc set triggers dc/system-app --from-image=amp-system:2.10-oracle --containers=system-master,system-developer,system-provider --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-app --from-image=amp-system:2.11-oracle --containers=system-master,system-developer,system-provider
$ oc set triggers dc/system-app --from-image=amp-system:2.11-oracle --containers=system-master,system-developer,system-providerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-app的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
system-sidekiqImageChange 触发器进行补丁:删除旧的
2.10-oracle触发器:oc set triggers dc/system-sidekiq --from-image=amp-system:2.10-oracle --containers=system-sidekiq,check-svc --remove
$ oc set triggers dc/system-sidekiq --from-image=amp-system:2.10-oracle --containers=system-sidekiq,check-svc --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-sidekiq --from-image=amp-system:2.11-oracle --containers=system-sidekiq,check-svc
$ oc set triggers dc/system-sidekiq --from-image=amp-system:2.11-oracle --containers=system-sidekiq,check-svcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-sidekiq的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
system-sphinxImageChange 触发器进行补丁:删除旧的
2.10-oracle触发器:oc set triggers dc/system-sphinx --from-image=amp-system:2.10-oracle --containers=system-sphinx,system-master-svc --remove
$ oc set triggers dc/system-sphinx --from-image=amp-system:2.10-oracle --containers=system-sphinx,system-master-svc --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-sphinx --from-image=amp-system:2.11-oracle --containers=system-sphinx,system-master-svc
$ oc set triggers dc/system-sphinx --from-image=amp-system:2.11-oracle --containers=system-sphinx,system-master-svcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-sphinx的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
- 如果要缩减,请缩减 3scale。
2.2.6.1.2. 修补系统镜像:3scale 与其他数据库 复制链接链接已复制到粘贴板!
对
system-appImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/system-app --from-image=amp-system:2.10 --containers=system-master,system-developer,system-provider --remove
$ oc set triggers dc/system-app --from-image=amp-system:2.10 --containers=system-master,system-developer,system-provider --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-app --from-image=amp-system:2.11 --containers=system-master,system-developer,system-provider
$ oc set triggers dc/system-app --from-image=amp-system:2.11 --containers=system-master,system-developer,system-providerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-app的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
system-sidekiqImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/system-sidekiq --from-image=amp-system:2.10 --containers=system-sidekiq,check-svc --remove
$ oc set triggers dc/system-sidekiq --from-image=amp-system:2.10 --containers=system-sidekiq,check-svc --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-sidekiq --from-image=amp-system:2.11 --containers=system-sidekiq,check-svc
$ oc set triggers dc/system-sidekiq --from-image=amp-system:2.11 --containers=system-sidekiq,check-svcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-sidekiq的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
system-sphinxImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/system-sphinx --from-image=amp-system:2.10 --containers=system-sphinx,system-master-svc --remove
$ oc set triggers dc/system-sphinx --from-image=amp-system:2.10 --containers=system-sphinx,system-master-svc --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-sphinx --from-image=amp-system:2.11 --containers=system-sphinx,system-master-svc
$ oc set triggers dc/system-sphinx --from-image=amp-system:2.11 --containers=system-sphinx,system-master-svcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-sphinx的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
2.2.6.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.11"}, "from": {"kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11"}, "name": "2.11", "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.11"}, "from": {"kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
apicast-stagingImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/apicast-staging --from-image=amp-apicast:2.10 --containers=apicast-staging --remove
$ oc set triggers dc/apicast-staging --from-image=amp-apicast:2.10 --containers=apicast-staging --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/apicast-staging --from-image=amp-apicast:2.11 --containers=apicast-staging
$ oc set triggers dc/apicast-staging --from-image=amp-apicast:2.11 --containers=apicast-stagingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
apicast-staging的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
apicast-productionImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/apicast-production --from-image=amp-apicast:2.10 --containers=apicast-production,system-master-svc --remove
$ oc set triggers dc/apicast-production --from-image=amp-apicast:2.10 --containers=apicast-production,system-master-svc --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/apicast-production --from-image=amp-apicast:2.11 --containers=apicast-production,system-master-svc
$ oc set triggers dc/apicast-production --from-image=amp-apicast:2.11 --containers=apicast-production,system-master-svcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
apicast-production的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
2.2.6.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.11"}, "from": {"kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/backend-rhel8:3scale2.11"}, "name": "2.11", "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.11"}, "from": {"kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/backend-rhel8:3scale2.11"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
backend-listenerImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/backend-listener --from-image=amp-backend:2.10 --containers=backend-listener --remove
$ oc set triggers dc/backend-listener --from-image=amp-backend:2.10 --containers=backend-listener --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/backend-listener --from-image=amp-backend:2.11 --containers=backend-listener
$ oc set triggers dc/backend-listener --from-image=amp-backend:2.11 --containers=backend-listenerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
backend-listener的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
backend-workerImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/backend-worker --from-image=amp-backend:2.10 --containers=backend-worker,backend-redis-svc --remove
$ oc set triggers dc/backend-worker --from-image=amp-backend:2.10 --containers=backend-worker,backend-redis-svc --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/backend-worker --from-image=amp-backend:2.11 --containers=backend-worker,backend-redis-svc
$ oc set triggers dc/backend-worker --from-image=amp-backend:2.11 --containers=backend-worker,backend-redis-svcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
backend-worker的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
backend-cronImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/backend-cron --from-image=amp-backend:2.10 --containers=backend-cron,backend-redis-svc --remove
$ oc set triggers dc/backend-cron --from-image=amp-backend:2.10 --containers=backend-cron,backend-redis-svc --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/backend-cron --from-image=amp-backend:2.11 --containers=backend-cron,backend-redis-svc
$ oc set triggers dc/backend-cron --from-image=amp-backend:2.11 --containers=backend-cron,backend-redis-svcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令会触发
backend-cron的重新部署。等待它重新部署、对应的新容器集就绪,并且前面的容器集终止。
2.2.6.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.11"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/zync-rhel8:3scale2.11"}, "name": "2.11", "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.11"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/zync-rhel8:3scale2.11"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
zyncImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/zync --from-image=amp-zync:2.10 --containers=zync,zync-db-svc --remove
$ oc set triggers dc/zync --from-image=amp-zync:2.10 --containers=zync,zync-db-svc --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/zync --from-image=amp-zync:2.11 --containers=zync,zync-db-svc
$ oc set triggers dc/zync --from-image=amp-zync:2.11 --containers=zync,zync-db-svcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发重新部署
zync。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
对
zync-queImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/zync-que --from-image=amp-zync:2.10 --containers=que --remove
$ oc set triggers dc/zync-que --from-image=amp-zync:2.10 --containers=que --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/zync-que --from-image=amp-zync:2.11 --containers=que
$ oc set triggers dc/zync-que --from-image=amp-zync:2.11 --containers=queCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发重新部署
zync-que。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
2.2.6.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.11 Memcached"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/memcached-rhel7:3scale2.11"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'$ oc patch imagestream/system-memcached --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.11 Memcached"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/memcached-rhel7:3scale2.11"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
system-memcacheImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/system-memcache --from-image=system-memcached:2.10 --containers=memcache --remove
$ oc set triggers dc/system-memcache --from-image=system-memcached:2.10 --containers=memcache --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-memcache --from-image=system-memcached:2.11 --containers=memcache
$ oc set triggers dc/system-memcache --from-image=system-memcached:2.11 --containers=memcacheCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会触发
system-memcacheDeploymentConfig 的重新部署。等待它重新部署、对应的新容器集就绪,并且旧容器集终止。
2.2.6.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.11 PostgreSQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/postgresql-10-rhel7"}, "name": "2.11", "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.11 PostgreSQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/postgresql-10-rhel7"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此 patch 命令更新
zync-database-postgresql镜像流,使其包含 2.11 标签。您可以使用以下步骤验证 2.11 标签是否已创建:运行这个命令:
oc get is zync-database-postgresql
$ oc get is zync-database-postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 检查 Tags 列是否显示 2.11 标签。
对
zync-databaseImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/zync-database --from-image=zync-database-postgresql:2.10 --containers=postgresql --remove
$ oc set triggers dc/zync-database --from-image=zync-database-postgresql:2.10 --containers=postgresql --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/zync-database --from-image=zync-database-postgresql:2.11 --containers=postgresql
$ oc set triggers dc/zync-database --from-image=zync-database-postgresql:2.11 --containers=postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果镜像有新的更新,此补丁还可能触发重新部署
zync-databaseDeploymentConfig。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。
2.2.6.7. 其他镜像更改 复制链接链接已复制到粘贴板!
如果您的 3scale 2.10 安装中有一个或多个 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.11 Redis"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/redis-5-rhel7:5"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'$ oc patch imagestream/backend-redis --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "Backend 2.11 Redis"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/redis-5-rhel7:5"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此补丁更新 backend-redis 镜像流,使其包含 2.11 标签。通过以下命令,如果 Tags 列显示 2.11,您可以确认标签已创建:
oc get is backend-redis
$ oc get is backend-redisCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对
backend-redisImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/backend-redis --from-image=backend-redis:2.10 --containers=backend-redis --remove
$ oc set triggers dc/backend-redis --from-image=backend-redis:2.10 --containers=backend-redis --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 3scale 2.11 redis 镜像,从 Redis 3 升级到 5,它包含到 Redis 的不同二进制路径。
backend-redis部署容器命令必须更新才能使用新路径。备注:应用这个更改会临时使backend-redis部署处于错误状态 ,直到您在下一个子步骤中添加了特定于版本的触发器 :oc patch dc backend-redis --patch '{"spec":{"template":{"spec":{"containers":[{"name":"backend-redis","command":["/opt/rh/rh-redis5/root/usr/bin/redis-server"]}]}}}}'$ oc patch dc backend-redis --patch '{"spec":{"template":{"spec":{"containers":[{"name":"backend-redis","command":["/opt/rh/rh-redis5/root/usr/bin/redis-server"]}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/backend-redis --from-image=backend-redis:2.11 --containers=backend-redis
$ oc set triggers dc/backend-redis --from-image=backend-redis:2.11 --containers=backend-redisCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果镜像有新的更新,此补丁还可能触发
backend-redisDeploymentConfig 的重新部署。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。
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.11 Redis"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/redis-5-rhel7:5"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'$ oc patch imagestream/system-redis --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.11 Redis"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/redis-5-rhel7:5"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此补丁更新
system-redis镜像流,使其包含 2.11 标签。通过以下命令,如果 Tags 列显示 2.11,您可以确认标签已创建:oc get is system-redis
$ oc get is system-redisCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对
system-redisImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/system-redis --from-image=system-redis:2.10 --containers=system-redis --remove
$ oc set triggers dc/system-redis --from-image=system-redis:2.10 --containers=system-redis --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 3scale 2.11 redis 镜像,从 Redis 3 升级到 5,它包含到 Redis 的不同二进制路径。必须更新
system-redis部署容器命令以使用新路径。备注:应用这个更改会临时使system-redis部署处于错误状态,直到您在下一个子步骤中添加了特定于新版本的触发器 :oc patch dc system-redis --patch '{"spec":{"template":{"spec":{"containers":[{"name":"system-redis","command":["/opt/rh/rh-redis5/root/usr/bin/redis-server"]}]}}}}'$ oc patch dc system-redis --patch '{"spec":{"template":{"spec":{"containers":[{"name":"system-redis","command":["/opt/rh/rh-redis5/root/usr/bin/redis-server"]}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-redis --from-image=system-redis:2.11 --containers=system-redis
$ oc set triggers dc/system-redis --from-image=system-redis:2.11 --containers=system-redisCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果镜像有新的更新,此补丁还可能触发
system-redisDeploymentConfig 的重新部署。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。
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.11 MySQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/mysql-57-rhel7:5.7"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'$ oc patch imagestream/system-mysql --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.11 MySQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/mysql-57-rhel7:5.7"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此补丁更新
system-mysql镜像流,使其包含 2.11 标签。通过以下命令,如果 Tags 列显示 2.11,您可以确认标签已创建:oc get is system-mysql
$ oc get is system-mysqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对
system-mysqlImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/system-mysql --from-image=system-mysql:2.10 --containers=system-mysql --remove
$ oc set triggers dc/system-mysql --from-image=system-mysql:2.10 --containers=system-mysql --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-mysql --from-image=system-mysql:2.11 --containers=system-mysql
$ oc set triggers dc/system-mysql --from-image=system-mysql:2.11 --containers=system-mysqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果镜像上有新的更新,此补丁还可能触发
system-mysqlDeploymentConfig 的重新部署。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。
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.11 PostgreSQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/postgresql-10-rhel7"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'$ oc patch imagestream/system-postgresql --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.11 PostgreSQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/postgresql-10-rhel7"}, "name": "2.11", "referencePolicy": {"type": "Source"}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此补丁更新
system-postgresql镜像流,使其包含 2.11 标签。通过以下命令,如果 Tags 列显示 2.11,您可以确认标签已创建:oc get is system-postgresql
$ oc get is system-postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对
system-postgresqlImageChange 触发器进行补丁:删除旧的
2.10触发器:oc set triggers dc/system-postgresql --from-image=system-postgresql:2.10 --containers=system-postgresql --remove
$ oc set triggers dc/system-postgresql --from-image=system-postgresql:2.10 --containers=system-postgresql --removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新的特定于版本的触发器:
oc set triggers dc/system-postgresql --from-image=system-postgresql:2.11 --containers=system-postgresql
$ oc set triggers dc/system-postgresql --from-image=system-postgresql:2.11 --containers=system-postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果镜像上有新的更新,此补丁还可能触发
system-postgresqlDeploymentConfig 的重新部署。如果发生这种情况,请等待新容器集重新部署并就绪,并且旧容器集终止。
2.2.6.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
后续步骤
无。执行所有列出的步骤后,基于模板的部署中的 3scale 从 2.10 升级到 2.11 现已完成。
2.3. 在基于模板的安装中使用 Oracle 数据库升级 3scale 复制链接链接已复制到粘贴板!
本节介绍在 OpenShift 3.11 基于模板的安装中使用带有 Oracle 数据库的 3scale 系统镜像时,如何更新 Red Hat 3scale API 管理。
先决条件
带有 Oracle 数据库的 3scale 安装.请参阅使用 Oracle 数据库设置 3scale 系统镜像。
要在基于模板的安装中使用 Oracle 数据库升级 3scale 系统镜像,请执行以下步骤:
2.3.1. 使用 Oracle 19c 升级 3scale 复制链接链接已复制到粘贴板!
此流程指导您对现有 3scale 2.10 安装的 3scale 2.11 更新进行 Oracle Database 19c 更新。
重要:丢失与数据库的连接可能会损坏 3scale。在继续升级前进行备份。如需更多信息,请参阅 Oracle 数据库文档:Oracle 数据库备份和恢复用户指南。
先决条件
- 3scale 2.10 安装。
Oracle 数据库 19c 安装。
- 有关使用 Oracle 配置 3scale 的更多信息,请参阅 准备 Oracle 数据库。
步骤
从 GitHub 存储库下载 3scale OpenShift 模板并提取存档:
tar -xzf 3scale-amp-openshift-templates-3scale-2.11.1-GA.tar.gz
tar -xzf 3scale-amp-openshift-templates-3scale-2.11.1-GA.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 Oracle Database Instant Client Package 文件放在
3scale-amp-openshift-templates-3scale-2.11.1-GA/amp/system-oracle/oracle-client-files目录中。 使用
-f选项运行oc process命令并指定build.ymlOpenShift 模板: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 使用
-f选项运行oc new-app命令以指示amp.ymlOpenShift 模板,并使用-p选项指定带有 OpenShift 集群域的WILDCARD_DOMAIN参数:oc new-app -f amp.yml -p WILDCARD_DOMAIN=mydomain.com
$ oc new-app -f amp.yml -p WILDCARD_DOMAIN=mydomain.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意以下步骤是可选的。如果在安装或系统升级后删除
ORACLE_SYSTEM_PASSWORD,请使用它们。输入以下
oc patch命令,将SYSTEM_PASSWORD替换为您在准备 Oracle 数据库中设置的 Oracle Databasesystem密码: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"}]}}}}}}'$ 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"}]}}}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令,替换
DATABASE_URL以指向在准备 Oracle 数据库中指定的 Oracle 数据库 :oc patch secret/system-database -p '{"stringData": {"URL": "DATABASE_URL"}}'$ oc patch secret/system-database -p '{"stringData": {"URL": "DATABASE_URL"}}'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 等待构建完成。要查看构建的状态,请运行以下命令:
oc get build <build-name> -o jsonpath="{.status.phase}"$ oc get build <build-name> -o jsonpath="{.status.phase}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 等待构建处于 Complete 状态。
使用 Oracle 数据库设置 3scale 系统镜像后,从
system-appDeploymentConfig 中删除ORACLE_SYSTEM_PASSWORD。在升级到新版本的 3scale 前,不需要再次执行它。oc set env dc/system-app ORACLE_SYSTEM_PASSWORD-
$ oc set env dc/system-app ORACLE_SYSTEM_PASSWORD-Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
有关 3scale 和 Oracle 数据库支持的更多信息,请参阅 Red Hat 3scale API 管理支持的配置。
第 3 章 使用模板将 3scale 版本 2.11.0 升级到 2.11.1 复制链接链接已复制到粘贴板!
在 OpenShift 3.11 中,您可以使用基于模板的部署将 Red Hat 3scale API Management 从 2.11.0 升级到 2.11.1。
要了解所需的条件和程序,请务必先阅读整个升级指南,然后再应用列出的步骤。升级过程会破坏服务的调配,直到过程完成为止。因为这个过程需要涉及到系统中断,请确保计划有一个维护窗口进行。
3.1. 执行升级的先决条件 复制链接链接已复制到粘贴板!
本节介绍了在基于模板的安装中将 3scale 从 2.11.0 升级到 2.11.1 所需的配置、任务和工具。
3.1.1. 配置 复制链接链接已复制到粘贴板!
- 3scale 支持通过 OpenShift 3.11 上的模板将路径从 2.11.0 升级到 2.11.1。
3.1.2. 准备步骤 复制链接链接已复制到粘贴板!
- 确保 OpenShift CLI 工具已在部署了 3scale 的同一项目中配置。
- 对您用于 3scale 的数据库执行备份。备份过程特定于每种数据库类型和设置。
3.1.3. 工具 复制链接链接已复制到粘贴板!
您需要这些工具来执行升级:
- 3scale 2.11.0 使用 OpenShift 3.11 项目中的模板进行部署。
- Bash shell:要运行升级过程中详述的命令,请执行以下操作:
- base64:对机密信息进行编码和解码。
- jq:用于 JSON 转换目的。
3.2. 在基于模板的安装中从 3scale 2.11.0 升级到 2.11.1 复制链接链接已复制到粘贴板!
按照本节中的步骤,在基于模板的安装中将 3scale 2.11.0 升级到 2.11.1。
要开始升级,请转至部署了 3scale 的项目。
oc project <3scale-project>
$ oc project <3scale-project>
然后,按照以下顺序执行这些步骤:
3.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" for component in ${THREESCALE_DC_NAMES}; do oc get --export -o yaml dc ${component} > ${component}_dc.yml ; done$ 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 ; doneCopy 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.yamlCopy 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 doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证所有生成的文件是否都为空,并且所有这些文件都具有预期内容。
3.2.2. 增加 backend-cron DeploymentConfig 资源要求 复制链接链接已复制到粘贴板!
前一步
当前步骤
在此发行版本 backend-cron DeploymentConfig 中,可能会有更多资源使用量。使用此流程增加当前设置值的资源要求。
3scale 2.11.1 中所需的 backend-cron 资源有:
如果当前 backend-cron 部署没有内存限制,或者资源要求较高,则不需要完成以下步骤。
步骤
使用以下命令检查
backend-cron设置的当前资源要求:oc get dc backend-cron -o json | jq .spec.template.spec.containers[0].resources
$ oc get dc backend-cron -o json | jq .spec.template.spec.containers[0].resourcesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果输出为空或
null,代表没有设置资源要求。要增加当前的
backend-cron资源要求,请运行以下命令:oc patch dc backend-cron --patch '{"spec":{"template":{"spec":{"containers":[{"name":"backend-cron","resources":{"limits":{"memory":"500Mi", "cpu": "500m"}, "requests":{"memory":"100Mi", "cpu": "100m"}}}]}}}}'$ oc patch dc backend-cron --patch '{"spec":{"template":{"spec":{"containers":[{"name":"backend-cron","resources":{"limits":{"memory":"500Mi", "cpu": "500m"}, "requests":{"memory":"100Mi", "cpu": "100m"}}}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令会触发
backend-cron的重新部署。等待它重新部署、对应的新容器集就绪,并且前面的容器集终止。
后续步骤
3.2.3. 升级 3scale 镜像 复制链接链接已复制到粘贴板!
当前步骤
此步骤更新升级过程所需的 3scale 镜像。
3.2.3.1. 对 system 镜像进行补丁 复制链接链接已复制到粘贴板!
要继续这个过程,请考虑 3scale 部署中使用的数据库:
- 如果数据库是 Oracle DB,请按照 Patching system 镜像中列出的步骤进行:3scale 使用 Oracle 数据库
- 如果数据库与 Oracle DB 不同,请按照补丁系统镜像中列出的步骤进行操作:3scale 与其他数据库
3.2.3.2. 修补系统镜像:3scale 使用 Oracle 数据库 复制链接链接已复制到粘贴板!
- 要开始使用 Oracle 数据库修补 3scale 的系统镜像,请执行构建系统镜像的步骤 1、2、4 和 8。
导入最新的
amp-systemOracle Database 镜像:oc import-image amp-system:2.11-oracle
oc import-image amp-system:2.11-oracleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3.3. 修补系统镜像:3scale 与其他数据库 复制链接链接已复制到粘贴板!
导入最新的 system-app 镜像:
oc import-image amp-system:2.11
oc import-image amp-system:2.11
3.2.3.4. 对 apicast 镜像进行补丁 复制链接链接已复制到粘贴板!
导入最新的 amp-apicast 镜像:
oc import-image amp-apicast:2.11
oc import-image amp-apicast:2.11
3.2.3.5. 修补 backend 镜像 复制链接链接已复制到粘贴板!
导入最新的 amp-backend 镜像:
oc import-image amp-backend:2.11
oc import-image amp-backend:2.11
3.2.3.6. 对 zync 镜像进行补丁 复制链接链接已复制到粘贴板!
导入最新的 amp-zync 镜像:
oc import-image amp-zync:2.11
oc import-image amp-zync:2.11
3.2.3.7. 对 system-memcached 镜像进行补丁 复制链接链接已复制到粘贴板!
导入最新的 system-memcached 镜像:
oc import-image system-memcached:2.11
oc import-image system-memcached:2.11
后续步骤
无。执行所有列出的步骤后,基于模板的部署中的 3scale 从 2.11.0 升级到 2.11.1 现已完成。
第 4 章 3scale 基于 operator 的升级指南:从 2.10 升级到 2.11 复制链接链接已复制到粘贴板!
在基于 operator 的安装中,将 Red Hat 3scale API Management 从 2.10 升级到 2.11,以在 OpenShift 4.x 上管理 3scale。
要自动获得 3scale 的微版本,请确保自动更新已经启动。要进行检查,请参阅 为微发行版本设置 3scale operator。
为了了解所需的条件和程序,请在应用列出的步骤前阅读整个升级指南。升级过程会破坏服务的调配,直到过程完成为止。因为这个过程需要涉及到系统中断,请确保计划有一个维护窗口进行。
4.1. 执行升级的先决条件 复制链接链接已复制到粘贴板!
本节论述了在基于 operator 的安装中将 3scale 从 2.10 升级到 2.11 所需的配置。
具有管理员访问权限的 OpenShift Container Platform 4.6、4.7 或 4.8 集群。
- 您必须将 3scale 先从 2.10 升级到 2.11,然后才能升级到 OCP 4.9。
- 备注:如果您在升级 3scale 前将 OCP 升级到 4.9 或更高版本,则会出现一个未正常工作的安装。
- 3scale 2.10 以前通过 3scale operator 部署。
确保正在使用
3scale-2.10频道的最新 CSV。检查它:- 如果订阅的批准设置是 automatic ,您应该已位于该频道的最新 CSV 版本。
- 如果订阅的批准设置是 manual,请确保您批准所有待处理的 InstallPlans 并具有最新的 CSV 版本。
- 请记住,如果有一个待处理的安装计划,可能还有更多待处理的安装计划,只有在安装了现有待定计划后才会显示这些计划。
4.2. 在基于 operator 的安装中从 2.10 升级到 2.11 复制链接链接已复制到粘贴板!
要在基于 Operator 的部署中将 3scale 从 2.10 升级到 2.11:
- 使用具有管理员特权的帐户登录 OCP 控制台。
- 选择部署了 3scale-operator 的项目。
- 点 Operators > Installed Operators。
- 选择 Red Hat Integration - 3scale > Subscription > Channel。
选择 3scale-2.11 并保存更改,以编辑订阅的频道。
这将开始升级过程。
查询项目中 pod 的状态,直到您看到所有新版本都在运行并就绪且没有错误:
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意- pod 在升级过程中可能会出现临时错误。
- 升级 pod 所需的时间可能从 5 到 10 分钟。
- 新 pod 版本运行后,通过登录 3scale 管理门户并检查它是否按预期工作,确认升级是否成功。
运行以下命令,检查 APIManager 对象的状态并获取 YAML 内容。<myapimanager> 代表 APIManager 的名称:
oc get apimanager <myapimanager> -o yaml
$ oc get apimanager <myapimanager> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 带有值的新注解应如下所示:
apps.3scale.net/apimanager-threescale-version: "2.11" apps.3scale.net/threescale-operator-version: "0.8.0"
apps.3scale.net/apimanager-threescale-version: "2.11" apps.3scale.net/threescale-operator-version: "0.8.0"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
执行所有步骤后,基于 Operator 的部署中的 3scale 从 2.10 升级到 2.11 已完成。
第 5 章 基于 APIcast operator 的升级指南:从 2.10 升级到 2.11 复制链接链接已复制到粘贴板!
在基于 Operator 的安装中将 APIcast 从 2.10 升级到 2.11,可帮助您使用 APIcast API 网关将内部和外部 API 服务与 3scale 集成。
为了了解所需的条件和程序,请在应用列出的步骤前阅读整个升级指南。升级过程会破坏服务的调配,直到过程完成为止。因为这个过程需要涉及到系统中断,请确保计划有一个维护窗口进行。
5.1. 执行升级的先决条件 复制链接链接已复制到粘贴板!
要在基于 operator 的安装过程中执行 APIcast 从 2.10 升级到 2.11,需要满足以下先决条件:
具有管理员访问权限的 OpenShift Container Platform 4.6、4.7 或 4.8 集群。
- 您必须将 APIcast 从 2.10 升级到 2.11,再升级到 OCP 4.9
- 备注:如果在升级 APIcast 之前将 OCP 升级到 4.9 或更高,您将会获得非工作的安装。
- APIcast 2.10 之前通过 APIcast operator 部署。
确保正在使用
3scale-2.10频道的最新 CSV。检查它:- 如果订阅的批准设置是 automatic ,您应该已位于该频道的最新 CSV 版本。
- 如果订阅的批准设置是 manual,请确保您批准所有待处理的 InstallPlans 并具有最新的 CSV 版本。
- 请记住,如果有一个待处理的安装计划,可能还有更多待处理的安装计划,只有在安装了现有待定计划后才会显示这些计划。
5.2. 在基于 operator 的安装中,将 APIcast 从 2.10 升级到 2.11 复制链接链接已复制到粘贴板!
在基于 Operator 的安装中将 APIcast 从 2.10 升级到 2.11,以便 APIcast 可以作为 3scale 安装中的 API 网关。
步骤
- 使用具有管理员特权的帐户登录 OCP 控制台。
- 选择部署了 APIcast Operator 的项目。
- 点 Operators > Installed Operators。
- 在 Subscription > Channel 中,选择 Red Hat Integration - 3scale APIcast gateway。
选择 3scale-2.11 频道并保存更改,以编辑订阅的频道。
这将开始升级过程。
查询项目中 pod 的状态,直到您看到所有新版本都在运行并就绪且没有错误:
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意- pod 在升级过程中可能会出现临时错误。
- 升级 pod 所需的时间可能从 5 到 10 分钟。
运行以下命令,检查 APIcast 对象的状态,并获取 YAML 内容:
oc get apicast <myapicast> -o yaml
$ oc get apicast <myapicast> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 带有值的新注解应如下所示:
apicast.apps.3scale.net/operator-version: “0.5.0”
apicast.apps.3scale.net/operator-version: “0.5.0”Copy to Clipboard Copied! Toggle word wrap Toggle overflow
执行所有列出的步骤后,基于 operator 的部署中的 APIcast 从 2.10 升级到 2.11 现已完成。