准备在专用网络中安装
要准备在专用公司网络中安装解决方案:
- 连接包含 Helm Chart 软件包的供应商 Helm 存储库。
export CHART_URL="xxxxxx"
export CHART_USERNAME="xxxxxx"
export CHART_PASSWORD="xxxxxx"
export VERSION="xxxxxx"
CHART_URL、CHART_USERNAME、CHART_PASSWORD 和 VERSION
值由供应商提供。 - 填写解决方案分发包中包含的带有安装设置的文件 (values.yaml),按照该文件中的注释进行填写。
我们不建议在启动 Helm Chart 包时使用的 values.yaml 文件中指定账户数据。
您可以使用以下安全方法之一来管理 Secret:
- 使用 CI/CD 系统。Secret 使用受保护的环境变量或内置 Secret 管理机制来指定。在部署期间,数据会动态插入到 Helm Chart 中;不需要在 values.yaml 配置文件中公开指定。
- 与 HashiCorp Vault 集成。Helm Chart 支持与 HashiCorp Vault 集成,您可以在其中存储 Secret,并且您必须在 values.yaml 中仅指定此类 Secret 路径。
Docker Registry 的
pull-secret
值无法完全存储在 HashiCorp Vault 中。我们建议您在具有 Kubernetes 集群参数的部分中手动指定pull-secret
值,并从 Helm Chart 中引用它们。
以下主要安装设置必须在 values.yaml 文件中指定:
- 命名空间名称。
helm upgrade --install kcs . \
--create-namespace \
--namespace kcs \
--values values.yaml \
- 卡巴斯基容器安全用于入站连接的域名。
--set default.domain="kcs.example.domain.ru" \
启用网络策略时,您必须为集群 Ingress 控制器指定至少一个命名空间。
--set default.networkPolicies.ingressControllerNamespaces="{ingress-nginx}" \
默认启用网络策略。
- 解决方案组件的的 Secret。
--set secret.infracreds.envs.POSTGRES_USER="user" \
--set-string secret.infracreds.envs.POSTGRES_PASSWORD="pass" \
--set secret.infracreds.envs.MINIO_ROOT_USER="user" \
--set-string secret.infracreds.envs.MINIO_ROOT_PASSWORD="password" \
--set-string secret.infracreds.envs.CLICKHOUSE_ADMIN_PASSWORD="pass" \
--set secret.infracreds.envs.MCHD_USER="user" \
--set-string secret.infracreds.envs.MCHD_PASS="pass" \
为确保安全,解决方案组件必须使用由系统管理员依据公司安全策略单独生成的凭证。在解决方案内部署目标组件时,会自动创建指定的用户和密码。当使用第三方服务时,您必须提供该服务的管理员创建的用户名和密码。
- 与访问解决方案安装存储库相关的 Secret。
--set pullSecret.kcs-pullsecret.username="user" \
--set pullSecret.kcs-pullsecret.password="pass"
如果您打算使用卡巴斯基注册表部署系统,则必须指定购买卡巴斯基容器安全时提供给您的凭证。如果您打算使用私有注册表或代理注册表,则必须指定您的注册表凭证。
- HashiCorp Vault secret 存储设置:
enabled
标志可启用与存储的集成。vault.enabled = true
值表示与 HashiCorp Vault 的集成已建立;环境变量的值从存储中获取。mountPath
是包含存储中 secret 的目录的路径。role
是在存储中用于身份验证的角色。
我们建议不要改变基本安装设置的组成。
- 如果您使用外部 PostgresSQL DBMS,请指定以下信息:
--set default.postgresql.external="true"
--set configmap.infraconfig.envs.postgres_host="
<PostgresSQL DBMS 的 IP 地址或 FQDN>
"--set configmap.infraconfig.envs.postgres_port="<
用于连接到 PostgresSQL DBMS 的端口;默认使用端口 5432
>"--set configmap.infraconfig.envs.postgres_db_name="
PostgresSQL DBMS 管理员创建的数据库名称,默认使用 api
>"您还应该要求 PostgreSQL DBMS 管理员明确 DBMS 服务器证书验证的要求。卡巴斯基容器安全支持以下验证模式:
--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。
如果需要验证外部 PostgresSQL DBMS 的证书,请执行以下操作:
- 使用
certs/pgsql-ca.crt
掩码将 CA 证书的公共部分上传到文件夹以及 Helm Chart 包。 - 指定以下验证参数:
--set configmap.infraconfig.envs.postgres_root_ca_path="/etc/ssl/certs/pgsql-ca.crt"
。 - 取消注释 values.yaml 配置文件中的
secret.cert-pgsql-ca
部分以创建 secret。
- 保存包含安装设置的文件并继续安装解决方案。