本文档介绍如何配置 Tekton Results 所需的数据库。
目前,我们仅支持连接外部数据库。原因如下:
版本:
数据库设置:
创建数据库命令:
Tekton Results 支持使用外部 PostgreSQL 数据库。配置分为两部分:
字段 | 描述 | 默认值 | 是否必填 |
---|---|---|---|
is_external_db | 是否使用外部数据库 | false | 是(外部数据库需设置为 true ) |
db_host | 数据库主机地址 | localhost | 是 |
db_port | 数据库端口 | 5432 | 是 |
db_name | 数据库名称 | tekton-results | 是 |
db_sslmode | SSL 连接模式 | disable | 否 |
db_sslrootcert | SSL 根证书路径 | 空 | 否(使用 SSL 时必填) |
db_secret_name | 数据库凭据 Secret 名称 | 空 | 是 |
db_sslmode
的有效选项详见 https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION。
以下示例为无 SSL 的基础外部数据库配置步骤:
Secret 中必填字段:
字段 | 描述 | 示例值 |
---|---|---|
POSTGRES_USER | 数据库用户名 | result |
POSTGRES_PASSWORD | 数据库密码 | your_secure_password |
创建 Secret 命令:
Secret YAML 示例:
本快速入门仅涵盖基础配置。生产环境中如需使用 SSL、高级安全或自定义 CA 证书,请参见下方的高级配置部分。
需要安全数据库连接时,可配置 SSL 相关参数:
SSL 模式选择指南:
环境 | 推荐模式 | 安全级别 | 说明 |
---|---|---|---|
开发 | disable | 无 | 不加密 |
测试 | require | 基础 | 加密连接 |
生产 | verify-full | 最高 | 加密且证书验证 |
SSL 模式说明
sslmode | 防止窃听 | 防止中间人攻击 | 说明 |
---|---|---|---|
disable | 否 | 否 | 不关心安全,不想承担加密开销。 |
allow | 可能 | 否 | 不关心安全,但如果服务器要求则接受加密。 |
prefer | 可能 | 否 | 不关心加密,但如果服务器支持则使用加密。 |
require | 是 | 否 | 希望数据加密,接受开销,信任网络确保连接到正确服务器。 |
verify-ca | 是 | 取决于 CA 策略 | 希望数据加密,接受开销,确保连接到受信任的服务器。 |
verify-full | 是 | 是 | 希望数据加密,接受开销,确保连接到受信任且指定的服务器。 |
verify-ca 与 verify-full 的区别取决于根 CA 策略。使用公共 CA 时,verify-ca 允许连接到可能被他人注册的服务器,建议使用 verify-full。使用本地 CA 或自签证书时,verify-ca 通常已足够。
重要提示: 使用 require
、verify-ca
或 verify-full
模式时,必须提供签署数据库服务器证书的 CA 证书。否则 Tekton Results 组件将无法启动。详细配置步骤请参见下方的配置自定义 CA 证书。
使用需要证书验证的 SSL 模式时(require
、verify-ca
、verify-full
),需提供签署数据库服务器证书的 CA 证书。通常将 CA 证书存储在 ConfigMap 中,并挂载到 Tekton Results Pod。
假设 CA 证书文件名为 root.crt
,执行:
为使 CA 证书在容器中可用,需在 TektonResult 资源中通过 options
配置挂载 ConfigMap:
配置说明:
/etc/tls/db/ca.crt
db_sslrootcert
设置为 /etc/tls/db/ca.crt
,与挂载路径对应修改数据库配置后,需重启 Tekton Results 组件使配置生效。
方案一:重启指定 Deployment
方案二:重新创建 TektonResult 资源
验证变更:
连接被拒绝:
认证失败:
SSL 证书错误:
Data Services
支持部署可用于 Tekton Results 的 PostgreSQL 实例。创建 PostgreSQL 实例时,请注意以下重要要求:
创建 PostgreSQL 实例时,会自动生成包含连接信息的 Secret。该 Secret 资源可通过标签 middleware.instance/type: PostgreSQL
过滤:
该 Secret 包含 host
、port
、username
、password
信息。您需要基于此 Secret 补充 database
和 sslmode
(设置为 allow
或 prefer
)信息,并在 Tekton Results 实例所在命名空间创建新的 Secret。
更多 PostgreSQL 部署参数和要求,请参见 。