- Netzwerk: Hier erfahren Sie, wie Sie AlloyDB Omni-Datenbankcluster für den internen Zugriff mit einem Kubernetes-
ClusterIP-Dienst oder für den externen Zugriff mit einemLoadBalancerkonfigurieren. Außerdem erfahren Sie, wie Sie externen Traffic mithilfe von CIDR-Quellbereichen (Classless Inter-Domain Routing) 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 der passwortbasierten Authentifizierung und der Integration von Active Directory und Kerberos sowie mit einer detaillierten 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 Netzwerkoptionen für DBCluster finden Sie in der Referenz zur DBCluster-CRD.
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, wodurch normalerweise einLoadBalancer-Dienst bereitgestellt wird. - Detaillierte Steuerung implementieren: Verwenden Sie
spec.primarySpec.dbLoadBalancerOptions. Legen Sie beispielsweise aufGoogle Cloudgcp.loadBalancerType: "External"fest, um eine IP-Adresse zu erhalten, die über das öffentliche Internet erreichbar ist.
Zugriff einschränken
Verwenden Sie spec.primarySpec.sourceCidrRanges, um eine Liste der zulässigen 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 stellt eine benutzerdefinierte Ressource (CR) vom Typ PgBouncer bereit, um diesen Vorgang zu vereinfachen.
Ausführliche Informationen zur Konfiguration 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. Zu den wichtigsten Parametern in spec.parameters gehören:
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 zur Überprüfung von Identitäten und zur Steuerung des Zugriffs.
Authentifizierungsmethoden
- Passwortbasiert: Standardmäßige PostgreSQL-Authentifizierung mit Nutzername und Passwort. Das Administratorpasswort wird normalerweise über ein Kubernetes-Secret bereitgestellt, wie im vollständigen DBCluster-Beispiel gezeigt.
Active Directory und Kerberos: Werden mit der
UserDefinedAuthentication-CR verwaltet. Dies unterstützt die GSSAPI- und LDAP-Gruppensynchronisierung mit folgenden Elementen:spec.keytabSecretRef: für Kerberos-Schlüsseltabellen.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 CRD-Referenz zu UserDefinedAuthentication.
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. - Quell-CIDR-Bereiche: Schränken Sie den Traffic auf der
LoadBalancer-Ebene ein. - PostgreSQL-Rollen: Verwenden Sie Standarddatenbankrollen und -berechtigungen, um Nutzerberechtigungen nach der Authentifizierung der Nutzer zu verwalten.
Nächste Schritte
- Alle Konfigurationsoptionen finden Sie in der Referenz zur DBCluster-CRD.
- Informationen zum Bereitstellen von Verbindungspooling 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.
- Lesen Sie die Kubernetes-Dokumentation zu Netzwerkrichtlinien.