- 网络:了解如何配置 AlloyDB Omni 数据库集群,以便使用 Kubernetes
ClusterIP服务进行内部访问,或使用LoadBalancer进行外部访问,包括如何使用来源无类别域间路由 (CIDR) 范围限制外部流量。 - 连接池:使用
PgBouncer自定义资源实现连接池,以实现高效的连接管理并减少数据库实例上的负载。 - 身份验证和授权:使用支持的方法(例如基于密码的方法以及 Active Directory 和 Kerberos 集成)安全访问,并通过 Kubernetes 网络政策和 PostgreSQL 角色实现精细控制。
网络
您可以将由 DBCluster 自定义资源管理的 AlloyDB Omni 数据库集群配置为支持内部或外部访问。
如需详细了解 DBCluster 网络选项,请参阅 DBCluster CRD 参考文档。
内部连接
默认情况下,AlloyDB Omni 实例使用 Kubernetes ClusterIP Service 公开。这样可以确保只有在同一 Kubernetes 集群中运行的其他应用才能访问这些实例。您可以在 DBCluster 状态中找到主实例的端点。
外部连接
如需允许从 Kubernetes 集群外部进行连接,请更新 DBCluster 规范:
- 启用外部流量:设置
spec.allowExternalIncomingTraffic: true,这通常会预配LoadBalancerService。 - 实施精细控制:使用
spec.primarySpec.dbLoadBalancerOptions。例如,在Google Cloud上,设置gcp.loadBalancerType: "External"以获取可从公共互联网访问的 IP 地址。
限制访问
如需保护外部连接,请使用 spec.primarySpec.sourceCidrRanges 定义允许的 CIDR 范围列表。系统会阻止来自这些范围之外的 IP 地址的所有连接。
使用 PgBouncer 进行连接池管理
如需高效管理连接并减少实例负载,请使用 PgBouncer。AlloyDB Omni 操作器 提供了一个 PgBouncer 自定义资源 (CR) 来简化此操作。
如需详细了解如何配置 PgBouncer,请参阅 PgBouncer CRD 参考文档。
部署和配置
创建 PgBouncer 资源,并在 spec.dbclusterRef 中引用您的数据库集群。spec.parameters 中的关键参数包括:
pool_mode:确定何时重复使用连接(session、transaction或statement)。default_pool_size:每个用户和数据库的服务器连接数。max_client_conn:允许的最大客户端连接数。max_db_connections:与 AlloyDB Omni 实例建立的最大连接数。
公开 PgBouncer
使用 spec.serviceOptions.type 控制可见性。
ClusterIP:仅限内部集群访问。LoadBalancer:外部访问。您可以使用 CIDR 块通过spec.serviceOptions.loadBalancerSourceRanges限制此操作。
身份验证和授权
AlloyDB Omni 支持多种方法来验证身份和控制访问权限。
身份验证方法
- 基于密码:标准 PostgreSQL 用户名和密码身份验证。管理员密码通常使用 Kubernetes Secret 提供,如完整 DBCluster 示例中所示。
Active Directory 和 Kerberos:使用
UserDefinedAuthenticationCR 进行管理。这支持使用以下各项进行 GSSAPI 和 LDAP 群组同步:spec.keytabSecretRef:用于 Kerberos keytab。spec.ldapConfiguration:用于群组映射和 LDAP 设置。spec.pgHbaEntries:配置pg_hba.conf规则,例如gss或ldap。
如需了解详情,请参阅 UserDefinedAuthentication CRD 参考文档。
基于证书(计划中):我们计划在未来版本中支持无密码 TLS 证书身份验证。
授权和访问权限控制
- Kubernetes 网络政策:定义 Pod 级规则,以保护应用与 AlloyDB Omni 或
PgBouncerPod 之间的流量。 - 来源 CIDR 范围:在
LoadBalancer级别限制流量。 - PostgreSQL 角色:使用标准数据库角色和权限在用户通过身份验证后管理用户权限。
后续步骤
- 如需了解所有配置选项,请参阅 DBCluster CRD 参考文档。
- 通过 PgBouncer CRD 参考文档了解如何部署连接池。
- 在 UserDefinedAuthentication CRD 参考文档中了解 Active Directory 集成。
- 如需查看完整示例,请参阅完整 DBCluster 示例。
- 请参阅有关网络政策的 Kubernetes 文档。