本文档介绍如何配置 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 时必填) |
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 组件使配置生效。
方案一:重启指定部署
方案二:重新创建 TektonResult 资源
验证变更:
如果更新了 db_sslmode
字段,可能需要重新创建 TektonResult
资源以使变更生效。
连接被拒绝:
认证失败:
SSL 证书错误:
Data Services
支持部署可用于 Tekton Results 的 PostgreSQL 实例。创建 PostgreSQL 实例时,请注意以下重要要求:
创建 PostgreSQL 实例时,会自动生成包含连接信息的 Secret。该 Secret 资源可通过标签 middleware.instance/type: PostgreSQL
进行筛选。
该 Secret 包含 host
、port
、username
、password
信息。您需要基于该 Secret 补充 database
信息,并在 Tekton Results 实例所在命名空间创建新的 Secret。
若需设置 sslmode
,请在 TektonResult
中将 db_sslmode
设置为 allow
或 prefer
等。
更多 PostgreSQL 部署参数和要求,请参见 。