内容提要
本文介绍了CloudNativePG如何使用PostgreSQL集群,重点关注configmaps和secrets,讨论了默认的私有密钥基础设施和用户/数据库设置,提供了实用技巧。
延伸解读
默认监控配置的集成方式
CloudNativePG 默认创建 cnpg-default-monitoring ConfigMap,其中包含内置的 Prometheus 导出器指标。该 ConfigMap 通过集群 spec.monitoring 中的 customQueriesConfigMap 字段关联,且 disableDefaultQueries 默认为 false,意味着默认查询处于启用状态。这种设计让用户无需额外配置即可获得基础监控能力,同时保留了通过自定义查询扩展指标的灵活性。
证书自动轮换与安全实践
CloudNativePG 默认创建 CA 并签发服务器、客户端及复制用的 TLS 证书,实现相互 TLS 认证。证书每 90 天自动轮换,减少了手动管理负担。对于需要更高安全性的场景,可以集成 cert-manager 等外部证书方案。这种安全默认值在 Kubernetes 生态中较为少见,但显著降低了 PostgreSQL 集群的运维复杂度。
微服务数据库范式的落地要点
CloudNativePG 默认创建 app 用户和 app 数据库,并推荐“一个集群一个数据库”的微服务数据库范式。这意味着不应在单个 PostgreSQL 集群中合并多个数据库,而应为每个微服务创建独立集群。在此模式下,数据库名称和所有者变得次要,集群的 namespace:name 唯一标识才是关键。这种约定优于配置的方式简化了部署和管理。
Q&A
CloudNativePG如何支持PostgreSQL集群的安全性?
CloudNativePG默认创建CA并发放TLS证书,实现与客户端应用的相互TLS认证,增强安全性。
CloudNativePG中configmaps的作用是什么?
configmaps用于存储配置数据,cnpg-default-monitoring ConfigMap包含内置的Prometheus导出器指标,支持监控功能。
如何查看CloudNativePG中的默认用户和数据库?
可以通过执行命令'kubectl exec -ti -c postgres cluster-example-1 -- psql -c ' du''查看默认用户,通过'kubectl exec -ti -c postgres cluster-example-1 -- psql -c ' l''查看默认数据库。
CloudNativePG如何管理TLS证书的轮换?
CloudNativePG系统地每90天轮换TLS证书,以增强安全性。
CloudNativePG推荐的微服务数据库范式是什么?
推荐的微服务数据库范式是每个集群一个数据库,避免在单个Postgres集群中合并多个数据库。
CloudNativePG中的secrets有什么作用?
secrets用于存储敏感信息,如应用用户的凭证和TLS证书,确保安全管理。