- Netzwerk: Informationen zum Konfigurieren von AlloyDB Omni-Datenbankclustern für den internen Zugriff mit einem Kubernetes-
ClusterIP-Dienst oder für den externen Zugriff mit einemLoadBalancer. Außerdem wird beschrieben, wie Sie externen Traffic mit CIDR-Bereichen (Classless Inter-Domain Routing) der Quelle einschränken. - Verbindungs-Pooling: Verwenden Sie die benutzerdefinierte Ressource
PgBouncer, um Verbindungs-Pooling für eine effiziente Verbindungsverwaltung und eine geringere Last auf Datenbankinstanzen zu implementieren. - Authentifizierung und Autorisierung: Sichern Sie den Zugriff mit unterstützten Methoden wie passwortbasierter Authentifizierung und Active Directory- und Kerberos-Integration sowie mit detaillierter Steuerung, die über Kubernetes-Netzwerkrichtlinien und PostgreSQL-Rollen implementiert wird.
Netzwerk
Sie können AlloyDB Omni-Datenbankcluster, die von der benutzerdefinierten Ressource DBCluster verwaltet werden, für den internen oder externen Zugriff konfigurieren.
Weitere Informationen zu den DBCluster Netzwerkoptionen finden Sie in der DBCluster CRD
Referenz.
Interne Konnektivität
Standardmäßig werden AlloyDB Omni-Instanzen über einen Kubernetes-ClusterIP-Dienst bereitgestellt. Dadurch wird sichergestellt, dass die Instanzen nur für andere Anwendungen zugänglich sind, die im selben Kubernetes-Cluster ausgeführt werden. Sie finden den Endpunkt für die primäre Instanz im Status DBCluster.
Externe Konnektivität
Wenn Sie Verbindungen von außerhalb des Kubernetes-Clusters zulassen möchten, aktualisieren Sie die DBCluster-Spezifikation:
- Externen Traffic aktivieren: Legen Sie
spec.allowExternalIncomingTraffic: truefest. Dadurch wird in der Regel einLoadBalancer-Dienst bereitgestellt. - Detaillierte Steuerung implementieren: Verwenden Sie
spec.primarySpec.dbLoadBalancerOptions. Legen Sie beispielsweise unter Google Cloudfest, umgcp.loadBalancerType: "External"eine IP-Adresse zu erhalten, die über das öffentliche Internet zugänglich ist.
Zugriff einschränken
Verwenden Sie spec.primarySpec.sourceCidrRanges, um eine Liste zulässiger CIDR-Bereiche zu definieren und externe Verbindungen zu sichern. Das System blockiert alle Verbindungen, die von IP-Adressen außerhalb dieser Bereiche stammen.
Verbindungs-Pooling mit PgBouncer
Verwenden Sie PgBouncer, um Verbindungen effizient zu verwalten und die Instanzlast zu reduzieren. Der AlloyDB Omni-Operator bietet eine benutzerdefinierte Ressource PgBouncer (CR), um diesen Vorgang zu vereinfachen.
Ausführliche Informationen zum Konfigurieren von PgBouncer finden Sie in der PgBouncer CRD Referenz.
Bereitstellung und Konfiguration
Erstellen Sie eine PgBouncer-Ressource und verweisen Sie in spec.dbclusterRef auf Ihren Datenbankcluster. Wichtige Parameter in spec.parameters sind:
pool_mode: bestimmt, wann Verbindungen wiederverwendet werden (session,transactionoderstatement).default_pool_size: Serververbindungen pro Nutzer und Datenbank.max_client_conn: maximal zulässige Clientverbindungen.max_db_connections: maximale Anzahl von Verbindungen, die zur AlloyDB Omni-Instanz geöffnet werden.
PgBouncer freigeben
Verwenden Sie spec.serviceOptions.type, um die Sichtbarkeit zu steuern.
ClusterIP: nur interner Clusterzugriff.LoadBalancer: externer Zugriff. Sie können dies mitspec.serviceOptions.loadBalancerSourceRangesmithilfe von CIDR-Blöcken einschränken.
Authentifizierung und Autorisierung
AlloyDB Omni unterstützt mehrere Methoden zum Überprüfen von Identitäten und zum Steuern des Zugriffs.
Authentifizierungsmethoden
- Passwortbasiert: Standardmäßige PostgreSQL-Authentifizierung mit Nutzername und Passwort. Das Administratorpasswort wird in der Regel über ein Kubernetes-Secret bereitgestellt, wie im vollständigen DBCluster Beispiel gezeigt.
Active Directory und Kerberos: Verwaltet mit der benutzerdefinierten Ressource
UserDefinedAuthentication. Dies unterstützt die GSSAPI- und LDAP-Gruppensynchronisierung mit den folgenden Optionen:spec.keytabSecretRef: für Kerberos-Keytabs.spec.ldapConfiguration: für die Gruppenzuordnung und LDAP-Einstellungen.spec.pgHbaEntries: zum Konfigurieren vonpg_hba.conf-Regeln, z. B.gssoderldap.
Weitere Informationen finden Sie in der UserDefinedAuthentication CRD-Referenz.
Zertifikatbasiert (geplant): Die Unterstützung für die passwortlose TLS-Zertifikatsauthentifizierung ist für eine zukünftige Version geplant.
Autorisierung und Zugriffssteuerung
- Kubernetes-Netzwerkrichtlinien: Definieren Sie Regeln auf Pod-Ebene, um den Traffic zwischen Anwendungen und AlloyDB Omni- oder
PgBouncer-Pods zu sichern. - CIDR-Bereiche der Quelle: Schränken Sie den Traffic auf
LoadBalancer-Ebene ein. - PostgreSQL-Rollen: Verwenden Sie Standard-Datenbankrollen und -Berechtigungen, um Nutzerberechtigungen zu verwalten, nachdem die Nutzer authentifiziert wurden.
Nächste Schritte
- In der DBCluster CRD Referenz finden Sie alle Konfigurationsoptionen.
- Informationen zum Bereitstellen von Verbindungs-Pooling finden Sie in der PgBouncer CRD-Referenz.
- Informationen zur Active Directory-Integration finden Sie in der UserDefinedAuthentication CRD Referenz.
- Ein vollständiges Beispiel finden Sie im vollständigen DBCluster-Beispiel.
- Weitere Informationen finden Sie in der Kubernetes-Dokumentation zu Netzwerkrichtlinien.