Gabriele Bartolini:CloudNativePG 配方 2 - 检查 CloudNativePG 集群中的默认资源

Gabriele Bartolini:CloudNativePG 配方 2 - 检查 CloudNativePG 集群中的默认资源

💡 原文英文,约1900词,阅读约需7分钟。
📝

内容提要

本文介绍了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证书,确保安全管理。

🏷️

标签

➡️

继续阅读