1.3. 为外部数据库修改 Central 自定义资源
先决条件
在您的数据库实例中有一个支持 PostgreSQL 13 或 15 的数据库实例,以及具有以下权限的用户:
- 对数据库的连接权利。
-
schema 的
Usage和Create。 -
对 schema 中的所有表的
Select,Insert,Update, 和Delete权限。 对 schema 中所有序列的
Usage。注意postgres 15 是推荐的和支持的版本。红帽弃用了对 Postgres 13 的支持,并将在新版本的 RHACS 中删除。
流程
使用 OpenShift Container Platform Web 控制台或终端在部署的命名空间中创建密码 secret。
-
在 OpenShift Container Platform web 控制台中进入 Workloads
Secrets 页面。使用密钥 password和值创建一个 Key/Value secret,作为纯文本文件的路径,其中包含调配数据库的超级用户密码。 或者,在终端中运行以下命令:
$ oc create secret generic external-db-password \1 --from-file=password=<password.txt>2
-
在 OpenShift Container Platform web 控制台中进入 Workloads
- 进入 OpenShift Container Platform Web 控制台中的 Red Hat Advanced Cluster Security for Kubernetes operator 页面。在顶部导航栏中选择 Central,再选择您要连接到数据库的实例。
- 进入 YAML 编辑器视图。
-
对于
db.passwordSecret.name,请指定您在前面的步骤中创建的引用的 secret。例如,external-db-password。 -
对于
db.connectionString,以keyword=value格式指定连接字符串,例如 host=<host> port=5432 database=stackrox user=stackrox sslmode=verify-ca -
对于
db.persistence,请删除整个块。 如果需要,您可以通过在顶层 spec 中添加 TLS 块来为 Central 指定证书颁发机构来信任数据库证书,如下例所示:
使用以下配置更新中央自定义资源:
spec: tls: additionalCAs: - name: db-ca content: | <certificate> central: db: isEnabled: Default1 connectionString: "host=<host> port=5432 user=<user> sslmode=verify-ca" passwordSecret: name: external-db-password- 1
- 您不能将
IsEnabled的值改为Enabled。
- 点击 Save。