- Networking: scopri come configurare i cluster di database AlloyDB Omni per l'accesso interno utilizzando un servizio Kubernetes
ClusterIPo l'accesso esterno utilizzando unLoadBalancer, incluso come limitare il traffico esterno utilizzando intervalli CIDR (Classless Inter-Domain Routing) di origine. - Pool di connessioni: utilizza la risorsa personalizzata
PgBouncerper implementare il pool di connessioni per una gestione efficiente delle connessioni e un carico ridotto sulle istanze di database. - Autenticazione e autorizzazione: proteggi l'accesso utilizzando metodi supportati come l'integrazione basata su password, Active Directory e Kerberos, oltre a un controllo granulare implementato tramite policy di rete Kubernetes e ruoli PostgreSQL.
Networking
Puoi configurare i cluster di database AlloyDB Omni, gestiti dalla risorsa personalizzata DBCluster, per l'accesso interno o esterno.
Per maggiori dettagli sulle opzioni di networking di DBCluster, consulta il riferimento CRD DBCluster.
Connettività interna
Per impostazione predefinita, le istanze AlloyDB Omni vengono esposte utilizzando un servizio ClusterIP Kubernetes. In questo modo, le istanze sono accessibili solo ad altre applicazioni in esecuzione nello stesso cluster Kubernetes. Puoi trovare l'endpoint per l'istanza principale nello stato DBCluster.
Connettività esterna
Per consentire le connessioni dall'esterno del cluster Kubernetes, aggiorna la specifica DBCluster:
- Abilita il traffico esterno: imposta
spec.allowExternalIncomingTraffic: true, che in genere esegue il provisioning di un servizioLoadBalancer. - Implementa un controllo granulare: utilizza
spec.primarySpec.dbLoadBalancerOptions. Ad esempio, suGoogle Cloud, impostagcp.loadBalancerType: "External"per ottenere un indirizzo IP accessibile dalla rete internet pubblica.
Limita l'accesso
Per proteggere le connessioni esterne, utilizza spec.primarySpec.sourceCidrRanges per definire un elenco di intervalli CIDR consentiti. Il sistema blocca tutte le connessioni provenienti da indirizzi IP esterni a questi intervalli.
Pool di connessioni con PgBouncer
Per gestire le connessioni in modo efficiente e ridurre il carico dell'istanza, utilizza PgBouncer. L'operatore AlloyDB Omni fornisce una risorsa personalizzata (CR) PgBouncer per semplificare questa operazione.
Per informazioni dettagliate sulla configurazione di PgBouncer, consulta il riferimento CRD PgBouncer.
Deployment e configurazione
Crea una risorsa PgBouncer e fai riferimento al cluster di database in
spec.dbclusterRef. I parametri chiave di spec.parameters includono:
pool_mode: determina quando le connessioni vengono riutilizzate (session,transactionostatement).default_pool_size: connessioni al server per utente e database.max_client_conn: il numero massimo di connessioni client consentite.max_db_connections: connessioni massime aperte all'istanza AlloyDB Omni.
Esponi PgBouncer
Utilizza spec.serviceOptions.type per controllare la visibilità.
ClusterIP: accesso solo al cluster interno.LoadBalancer: accesso esterno. Puoi limitare questo accesso conspec.serviceOptions.loadBalancerSourceRangesutilizzando i blocchi CIDR.
Autenticazione e autorizzazione
AlloyDB Omni supporta più metodi per verificare le identità e controllare l'accesso.
Metodi di autenticazione
- Basata su password: autenticazione standard con nome utente e password PostgreSQL. La password dell'amministratore viene in genere fornita utilizzando un secret Kubernetes, come mostrato nell'esempio di DBCluster completo.
Active Directory e Kerberos: gestiti utilizzando la risorsa personalizzata
UserDefinedAuthentication. In questo modo, è supportata la sincronizzazione dei gruppi GSSAPI e LDAP utilizzando:spec.keytabSecretRef: per i keytab Kerberos.spec.ldapConfiguration: per la mappatura dei gruppi e le impostazioni LDAP.spec.pgHbaEntries: per configurare le regolepg_hba.conf, ad esempiogssoldap.
Per saperne di più, consulta il riferimento CRD UserDefinedAuthentication.
Basata su certificato (pianificata): il supporto per l'autenticazione con certificato TLS senza password è previsto per una release futura.
Autorizzazione e controllo dell'accesso
- Policy di rete Kubernetes: definisci regole a livello di pod per proteggere il traffico tra le applicazioni e i pod AlloyDB Omni o
PgBouncer. - Intervalli CIDR di origine:limita il traffico a livello di
LoadBalancer. - Ruoli PostgreSQL: utilizza i ruoli e i privilegi standard del database per gestire le autorizzazioni utente dopo l'autenticazione degli utenti.
Passaggi successivi
- Consulta il riferimento CRD DBCluster per tutte le opzioni di configurazione.
- Scopri come eseguire il deployment del pooling delle connessioni con il riferimento CRD PgBouncer.
- Scopri di più sull'integrazione di Active Directory nel riferimento CRD UserDefinedAuthentication.
- Per un esempio completo, consulta l'esempio completo di DBCluster.
- Consulta la documentazione di Kubernetes sulle policy di rete.