2.7. 使用外部数据库安装 Fuse Online
如果要安装使用外部数据库来持久连接和集成定义的 Fuse Online 环境:
- 使用 OpenShift 集群可以找到的主机名创建一个 postgreSQL 数据库。
-
在安装 Fuse Online 之前,为外部数据库创建一个名为
syndesis-global-config
的 OpenShift secret。 - 在线安装 Fuse.
- 在部署 Fuse Online 之前,请编辑自定义资源以配置外部数据库的连接。
先决条件
-
对于 OCP 3.11,您编辑了
default-cr.yml
文件,以指定外部数据库的使用来持久连接和集成定义。 - Fuse Online 尚未安装。
-
已安装
oc
客户端工具,并将其连接到您要安装 Fuse Online 的 OCP 集群。 - 具有集群管理权限的用户可让您在集群中具有访问权限的任何项目中安装 Fuse Online。
流程
使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:
oc login -u developer -p developer
创建一个 postgreSQL 数据库,供您在其上安装 Fuse Online 的 OpenShift 集群,并定义以下配置选项的值:
- 连接用户名
- 数据库名称
数据库密码
以下示例使用了 OpenShift 默认提供的 PostgreSQL 模板之一。
注: 仅使用 PostgreSQL 临时(
postgresql-ephemeral
)模板进行开发或测试。对于生产环境,请使用 PostgreSQL (postgresql
)模板。oc new-app postgresql-ephemeral -p POSTGRESQL_USER=syndesis -p POSTGRESQL_PASSWORD=exdb-pwd -p POSTGRESQL_DATABASE=syndesisdb
此命令返回有关配置 Fuse Online 时所需的数据库的信息,如 URL。
有关创建数据库的详情,请参阅 OpenShift 文档中的 PostgreSQL 主题。
创建并保存包含以下内容的资源文件(如
my-fuse-online-secret-cr.yml
):apiVersion: v1 kind: Secret metadata: name: syndesis-global-config namespace: my-fuse-online-project type: Opaque stringData: POSTGRESQL_PASSWORD: exdb-pw
将
my-fuse-online-project
替换为您要为其指定外部数据库的 Fuse Online 环境安装的 OpenShift 项目的名称。将
exdb-pw
替换为第 2 步中的密码。Fuse Online 将将其用作访问外部数据库的密码。请注意,stringData
会将 password 值转换为 base64 编码的值(因此您不必进行转换)。如需有关 OpenShift 机密的信息,请参阅 Secret。
将 secret 添加到集群中,例如:
oc apply -f my-fuse-online-secret-cr.yml
在 OpenShift 集群中,可通过使用指定外部数据库的自定义资源安装的 Fuse Online 环境使用
syndesis-global-config
secret。在您在 secret 的
YAML
文件中指定的my-fuse-online-project
项目中安装 Fuse Online (在第 4 步中)。- 对于 OCP 3.11,在安装 Fuse Online 前,按照编辑默认 自定义资源文件中的说明进行操作。
对于 OCP 4.6 及更新的版本,请按照 从 OperatorHub 安装 Fuse Online Operator 中的说明进行操作。在部署 Fuse Online 项目之前,在 OpenShift 4.x 项目中添加 Fuse Online 实例,请编辑自定义资源以指定外部数据库的使用,例如:
apiVersion: syndesis.io/v1alpha1 kind: Syndesis metadata: name: app spec: components: database: externalDbURL: "postgresql://syndesis-external-db:5432" user: db-user-name name: db-name
-
将
syndesis-external-db:5432
替换为外部 PostgreSQL 数据库的主机名和端口。 -
使用连接用户名替换
db-user-name
。 -
将
db-name
替换为数据库的名称。
结果
Fuse Online 安装过程使用自定义资源中的设置来确定已安装的 Fuse 在线环境的配置。
当正确安装和部署时,Fuse Online 会调出所有所需的 pod,但 syndesis-db
除外。syndesis-db
不是 syndesis-
db,使用外部数据库的服务名称连接到数据库。如果外部数据库配置不正确,则 syndesis-server
无法初始化,Fuse Online 部署会出错。