2.7. 使用 Oracle 作为系统数据库的操作器安装 3scale
作为红帽 3scale API 管理管理员,您可以使用 Oracle 数据库使用操作器安装 3scale。默认情况下,3scale 2.12 有一个名为 system
的组件,它将在 MySQL 数据库中存储配置数据 。您可以覆盖默认数据库,并将信息存储在外部 Oracle 数据库中。
- 当您只执行 3scale 的 Operator 安装时,OpenShift Container Platform(OCP)版本 4.2 和 4.3 不支持 Oracle 数据库。如需更多信息,请参阅 Red Hat 3scale API 管理支持的配置 页面。
-
在本文档中,
myregistry.example.com
用作 registry URL 的示例。将它替换为您的 registry URL。 - 免责声明:包括在此处的外部网络链接仅为方便用户而提供。红帽没有审阅链接的内容,并不对其内容负责。包含任何指向外部网站的链接并不表示红帽认可该网站或其实体、产品或服务。您同意红帽对因您使用(或依赖)外部网站或内容而导致的任何损失或费用不承担任何责任。
先决条件
- 一个容器 registry,用于推送容器镜像,该镜像可由安装 3scale 的 OCP 集群访问。
- 不要安装 APIManager 自定义资源,因为它将在以下步骤中创建。
- 3scale 的 Registry 服务帐户。
- 可以从 OpenShift cluster 访问的一个 Oracle Database 的支持版本。
- 访问 Oracle Database 系统用户以获取安装过程
要使用 Oracle 作为系统数据库通过操作器安装 3scale,请执行以下步骤:
2.7.1. 准备 Oracle 数据库
作为 3scale 管理员,当您决定将其用作默认值时,您必须为 3scale 安装准备 Oracle 数据库。
流程
- 创建新数据库。
应用以下设置:
ALTER SYSTEM SET max_string_size=extended SCOPE=SPFILE;
在使用 3scale 安装 Oracle 数据库前,需要先创建一个常规的、非系统用户。
-
Oracle 数据库的常规的、非系统用户的密码必须是唯一的,且与
system
的密码不匹配。 Oracle Database 初始化脚本运行以下 SQL 命令:
ALTER USER {DB_USER} IDENTIFIED BY {DB_PASSWORD}
- 在启动 3scale 安装前,请确保此 SQL 命令正确执行。
-
{DB_USER}
和{DB_PASSWORD}
是常规的非系统用户的用户名和密码。 -
如果参数
PASSWORD_REUSE_TIME
andPASSWORD_REUSE_MAX
被设置为限制重新使用相同的密码,则数据库配置可能会阻止这个命令成功完成。 Oracle 数据库
system
用户以系统权限执行命令。- 详情包括在此GitHub 仓库中。
- 在数据库中初始化表时,可以在 Oracle Database initializer 中执行最新的操作。其他命令可能未列在这些链接中。
-
当有要运行的模式迁移时,也需要升级
system
用户,因此可能会执行前面链接中包括的其他命令。
-
Oracle 数据库的常规的、非系统用户的密码必须是唯一的,且与
其他资源
- 有关创建新数据库的详情,请查看 Oracle 数据库 19c 文档。
2.7.2. 构建自定义系统容器镜像
流程
从 GitHub 存储库下载 3scale OpenShift 模板并提取存档:
tar -xzf 3scale-amp-openshift-templates-3scale-2.12.0-GA.tar.gz
在 Instant Client Downloads 页面中下载:
- 客户端:可以是 basic-lite 或 basic。
- ODBC driver。
Oracle 数据库 19c 的 SDK。
- 对于 3scale,使用 Instant Client Downloads for Linux x86-64 (64-bit)
- 对于 ppc64le 和 3scale,使用 Oracle Instant Client Downloads for Linux on Power Little Endian (64-bit)
查看 Red Hat 3scale API Management 支持的配置中的以下 Oracle 软件组件:
- Oracle Instant 客户端软件包:Basic 或 Basic Light
- Oracle Instant 客户端软件包:SDK
Oracle Instant 客户端软件包:ODBC
表 2.3. Oracle 19c 示例软件包(3scale) Oracle 19c 软件包名称 压缩的文件名 基本的
instantclient-basic-linux.x64-19.8.0.0.0dbru.zip
Basic Light
instantclient-basiclite-linux.x64-19.8.0.0.0dbru.zip
SDK
instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip
ODBC
instantclient-odbc-linux.x64-19.8.0.0.0dbru.zip
表 2.4. Oracle 19c 示例软件包用于 ppc64le 和 3scale Oracle 19c 软件包名称 压缩的文件名 基本的
instantclient-basic-linux.leppc64.c64-19.3.0.0.0dbru.zip
Basic Light
instantclient-basiclite-linux.leppc64.c64-19.3.0.0.0dbru.zip
SDK
instantclient-sdk-linux.leppc64.c64-19.3.0.0.0dbru.zip
ODBC
instantclient-odbc-linux.leppc64.c64-19.3.0.0.0dbru.zip
注意如果本地下载并存储的客户端软件包版本与 3scale 期望不匹配,3scale 将自动下载并使用以下步骤中的相应版本。
-
将 Oracle Database Instant Client Package 文件放在
3scale-amp-openshift-templates-3scale-2.12-GA/amp/system-oracle/oracle-client-files
目录中。 使用您在创建 registry 服务帐户中创建的凭证登录到
registry.redhat.io
帐户。$ docker login registry.redhat.io
构建基于 Oracle 的自定义系统镜像.镜像标签必须是固定镜像标签,如下例所示:
$ docker build . --tag myregistry.example.com/system-oracle:2.12.0-1
将基于 Oracle 的系统镜像推送到 OCP 集群可访问的容器注册表。此容器 registry 是安装 3scale 解决方案的位置:
$ docker push myregistry.example.com/system-oracle:2.12.0-1
2.7.3. 使用操作器安装带有 Oracle 的 3scale
流程
-
通过使用对应字段创建
system-database
secret,设置 Oracle Database URL 连接字符串和 Oracle Database 系统密码。请参阅为 Oracle 数据库安装外部数据库。 通过创建 APIManager 自定义资源来安装 3scale 解决方案。按照使用 operator 部署 3scale 中的说明进行操作。
APIManager 自定义资源必须指定设置为您之前构建的基于 Oracle 的系统的
.spec.system.image
字段:apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: name: example-apimanager spec: imagePullSecrets: - name: threescale-registry-auth - name: custom-registry-auth system: image: "myregistry.example.com/system-oracle:2.12.0-1" externalComponents: system: database: true