3.2. 在基于 Operator 的安装中,从 2.11 升级到 2.12
在基于 Operator 的部署中,将 3scale 从 2.11 升级到 2.12:
- 使用具有管理员特权的帐户登录 OCP 控制台。
- 选择部署了 3scale-operator 的项目。
- 点 Operators > Installed Operators。
- 选择 Red Hat Integration - 3scale > Subscription > Channel。
选择 3scale-2.12 并保存更改,以编辑订阅的频道。
这将开始升级过程。
查询项目中 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.12" apps.3scale.net/threescale-operator-version: "0.9.0"
apps.3scale.net/apimanager-threescale-version: "2.12" apps.3scale.net/threescale-operator-version: "0.9.0"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
执行所有步骤后,基于 Operator 的部署中的 3scale 从 2.11 升级到 2.12 已完成。
3.2.1. 将外部 MySQL 版本升级到 8.0 复制链接链接已复制到粘贴板!
如果您的 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
3.2.2. 删除未使用的 MessageBus 变量 复制链接链接已复制到粘贴板!
如果您的 3scale 部署启用了外部数据库模式,您必须手动从 system-redis secret 中删除 MESSAGE_BUS_* 字段。
从
system-redissecret 中删除MESSAGE_BUS_*字段。如果 secret 不是由外部控制器管理,使用以下命令手动更新: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_*字段不存在。以下命令应该返回空的:oc get secret system-redis -o yaml | grep MESSAGE_BUS
$ oc get secret system-redis -o yaml | grep MESSAGE_BUSCopy to Clipboard Copied! Toggle word wrap Toggle overflow
此升级支持使用 PostgreSQL 10 的外部 system-database。您应当先完成 3scale 升级,然后升级到 PostgreSQL 13。