对于卡巴斯基容器安全,您可以使用解决方案中包含的 PostgreSQL 数据库或您自己的 PostgreSQL 数据库。要安装不适用于卡巴斯基容器安全模式的外部 PostgreSQL 数据库,您必须创建单独的用户。您可以通过安装带有为外部 PostgreSQL 数据库指定的模式参数的 Helm Chart 包来执行此操作。
要使用外部 PostgreSQL 数据库:
--set default.postgresql.external="true"
--set configmap.infraconfig.envs.postgres_host="<PostgreSQL DBMS 的 IP 地址或 FQDN>"
--set configmap.infraconfig.envs.postgres_port="<用于连接到 PostgreSQL DBMS 的端口;默认使用端口 5432>"
--set configmap.infraconfig.envs.postgres_db_name="<PostgreSQL DBMS 管理员创建的数据库名称,默认使用 api>"
--set configmap.infraconfig.envs.postgres_verify_level= "disable" – 不验证服务器证书。--set configmap.infraconfig.envs.postgres_verify_level= "require" – 需要证书,解决方案信任所有证书,且不进行任何进一步验证。--set configmap.infraconfig.envs.postgres_verify_level= "verify-ca" – 需要证书,解决方案检查证书是否由受信任的 CA(证书颁发机构)签发。--set configmap.infraconfig.envs.postgres_verify_level= "verify-full" – 需要证书,解决方案验证证书是否由受信任的 CA 签发并包含正确的 IP 地址或 FQDN。certs/pgsql-ca.crt 掩码将 CA 证书的公共部分上传到文件夹以及 Helm Chart 包。--set configmap.infraconfig.envs.postgres_root_ca_path="/etc/ssl/certs/pgsql-ca.crt"。secret.cert-pgsql-ca 部分以创建 Secret。要为外部 PostgreSQL 数据库创建具有自定义模式的用户:
kubectl create ns kcspg
其中kcspg是外部 PostgreSQL 数据库的命名空间。
该参数指定数据库的密码。然后,您必须在 values.yaml 配置文件的infraconfig部分中指定此密码,该文件是解决方案分发套件中包含的Helm Chart 包的一部分。
kubectl apply -f pg.yaml -n kcspg
该外部数据库的名称格式如下:
<pod_name>.<命名空间名称>.<服务>.cluster.local
例如,postgres.kcspg.svc.cluster.local
kubectl apply -f svc.yaml -n kcspg
psql -h localhost -U postgres -d api
CREATE ROLE kks LOGIN PASSWORD 'kks' NOINHERIT CREATEDB;
CREATE SCHEMA kks AUTHORIZATION kks;
GRANT USAGE ON SCHEMA kks TO PUBLIC;
values.yaml 中指定的参数值必须与 pg.yaml 和 svc.yaml 配置文件中对应参数的值匹配。