Gestione ruoli utente
AlloyDB Omni utilizza i seguenti ruoli:
AlloyDB Omni include un ruolo di superutente denominato
alloydbadmine un ruolo non di superutente denominatoalloydbmetadata.L'utente
postgrespredefinito ha un ruolo di superutente.Tutti gli altri ruoli utente predefiniti non hanno privilegi. Sono riservati per potenziali utilizzi futuri.
Configurare un database AlloyDB Omni
Ti consigliamo di seguire questi passaggi durante la configurazione di un database AlloyDB Omni:
Definisci o importa i database utilizzando il ruolo utente
postgres. In una nuova installazione, questo ruolo ha privilegi di superutente.Crea nuovi ruoli utente con il livello di accesso corretto alle tabelle dell'applicazione, utilizzando di nuovo il ruolo utente
postgres.Configura l'applicazione per connettersi al database utilizzando questi nuovi ruoli con accesso limitato.
Puoi creare e definire tutti i nuovi ruoli utente di cui hai bisogno. Non modificare o eliminare nessuno dei ruoli utente forniti con AlloyDB Omni.
Per saperne di più, consulta Gestire utenti e ruoli di AlloyDB Omni.
Monitorare AlloyDB Omni
Il monitoraggio dell'installazione di AlloyDB Omni include il recupero e l'analisi delle metriche di AlloyDB Omni.
AlloyDB Omni in esecuzione su Kubernetes fornisce un insieme di metriche di base disponibili come endpoint Prometheus. Per un elenco delle metriche disponibili, consulta Metriche di AlloyDB Omni.
Inoltre, AlloyDB Omni in esecuzione su Kubernetes espone le metriche delle risorse personalizzate che utilizzano kube-state-metrics (KSM). Per attivare le metriche delle risorse personalizzate, consulta Monitorare le risorse personalizzate dell'operatore AlloyDB Omni Kubernetes.
Kubernetes
Trovare i file di log del cluster di database
I file postgresql.audit e postgresql.log si trovano nel file system del pod del database. postgresql.audit è presente solo se hai
abilitato pgaudit.
Per accedere a questi file:
Definisci una variabile di ambiente contenente il nome del pod del database.
export DB_POD=`kubectl get pod -l alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`Sostituisci
DB_CLUSTER_NAMEcon il nome del cluster di database. È lo stesso nome del cluster di database che hai dichiarato quando hai creato l'istanza.Esegui una shell sul pod del database come root.
kubectl exec ${DB_POD} -it -- /bin/bashTrova i file di log nella directory
/obs/diagnostic/:/obs/diagnostic/postgresql.audit/obs/diagnostic/postgresql.log
Elencare i servizi di monitoraggio
v1.0
Quando crei un cluster di database, AlloyDB Omni crea il seguente servizio di monitoraggio per ogni CR dell'istanza del cluster di database nello stesso spazio dei nomi:
al-INSTANCE_NAME-monitoring-system
Per elencare i servizi di monitoraggio, esegui il comando seguente.
kubectl get svc -n NAMESPACE | grep monitoring
Sostituisci NAMESPACE con uno spazio dei nomi a cui appartiene il cluster.
La seguente risposta di esempio mostra i servizi al-1060-dbc-monitoring-system, al-3de6-dbc-monitoring-system e al-4bc0-dbc-monitoring-system. Ogni servizio corrisponde a un'istanza.
al-1060-dbc-monitoring-system ClusterIP 10.0.15.227 <none> 9187/TCP 7d20h
al-3de6-dbc-monitoring-system ClusterIP 10.0.5.205 <none> 9187/TCP 7d19h
al-4bc0-dbc-monitoring-system ClusterIP 10.0.15.92 <none> 9187/TCP 7d19h
Versione < 1.0
Quando crei un cluster di database, AlloyDB Omni crea i seguenti servizi di monitoraggio nello stesso spazio dei nomi del cluster di database:
DB_CLUSTER-monitoring-dbDB_CLUSTER-monitoring-system
Per elencare i servizi di monitoraggio, esegui il comando seguente.
kubectl get svc -n NAMESPACE | grep monitoring
Sostituisci NAMESPACE con uno spazio dei nomi a cui appartiene il cluster.
La seguente risposta di esempio mostra il servizio al-2953-dbcluster-foo7-monitoring-system e al-2953-dbcluster-foo7-monitoring-db.
al-2953-dbcluster-foo7-monitoring-db ClusterIP 10.36.3.243 <none> 9187/TCP 44m
al-2953-dbcluster-foo7-monitoring-system ClusterIP 10.36.7.72 <none> 9187/TCP 44m
Visualizzare le metriche Prometheus dalla riga di comando
La porta 9187 è denominata metricsalloydbomni per tutti i servizi di monitoraggio.
Configura l'inoltro delle porte dall'ambiente locale al servizio di monitoraggio.
kubectl port-forward service/MONITORING_SERVICE -n NAMESPACE MONITORING_METRICS_PORT:metricsalloydbomniSostituisci quanto segue:
MONITORING_SERVICE: il nome del servizio di monitoraggio che vuoi inoltrare, ad esempioal-1060-dbc-monitoring-system.NAMESPACE: lo spazio dei nomi a cui appartiene il cluster.MONITORING_METRICS_PORT: una porta TCP locale disponibile.
La seguente risposta mostra che i servizi vengono inoltrati.
Forwarding from 127.0.0.1:9187 -> 9187 Forwarding from [::1]:9187 -> 9187Mentre il comando precedente è in esecuzione, puoi accedere alle metriche di monitoraggio tramite HTTP sulla porta che hai specificato. Ad esempio, puoi utilizzare
curlper visualizzare tutte le metriche come testo normale:curl http://localhost:MONITORING_METRICS_PORT/metrics
Visualizzare le metriche utilizzando l'API Prometheus
La chiave di etichetta alloydbomni.internal.dbadmin.goog/task-type e la porta metricsalloydbomni sono disponibili per impostazione predefinita per tutti i servizi di monitoraggio in AlloyDB Omni. Puoi utilizzarli insieme a una singola serviceMonitor risorsa personalizzata per selezionare tutti i servizi per tutti gli spazi dei nomi nel cluster di database.
Per saperne di più sull'utilizzo dell'API Prometheus, consulta la documentazione dell'operatore Prometheus.
Di seguito è riportato un esempio del campo spec della risorsa personalizzata serviceMonitor che include la chiave di etichetta alloydbomni.internal.dbadmin.gdc.goog/task-type e la porta metricsalloydbomni. La risorsa personalizzata serviceMonitor monitora e raccoglie tutti i servizi Kubernetes in tutti gli spazi dei nomi
Per saperne di più sulla definizione completa di ServiceMonitor, consulta la definizione della risorsa personalizzata ServiceMonitor .
v1.0
spec:
selector:
matchLabels:
alloydbomni.internal.dbadmin.goog/task-type: monitoring
namespaceSelector:
any: true
endpoints:
- port: metricsalloydbomni
Versione < 1.0
spec:
selector:
matchExpressions:
- key: alloydbomni.internal.dbadmin.gdc.goog/task-type
operator: Exists
values: []
namespaceSelector:
any: true
endpoints:
- port: metricsalloydbomni
Visualizzare le metriche utilizzando Grafana
Per una rappresentazione visiva delle metriche in AlloyDB Omni su Kubernetes, utilizza la dashboard di monitoraggio. La dashboard di monitoraggio si basa su uno stack di osservabilità di base composto da Prometheus e Grafana. Per configurare la dashboard di monitoraggio in modo che raccolga le metriche da AlloyDB Omni:
Per scaricare la dashboard di Grafana, utilizza il comando
wget:wget https://raw.githubusercontent.com/GoogleCloudPlatform/alloydb-omni-samples/refs/heads/main/monitoring-dashboards/grafana/alloydbomni_dashboard.yamlDevi scaricare e installare grafana-operator prima di eseguire il deployment di Grafana in Kubernetes. Per istruzioni dettagliate, consulta Installazione.
Aggiungi l'etichetta
monitoring.dashboard/product=alloydb-omniall'istanza di Grafana in cui installi la dashboard:kubectl label grafana/GRAFANA_INSTANCE_NAME monitoring.dashboard/product=alloydb-omni -n NAMESPACESostituisci quanto segue:
GRAFANA_INSTANCE_NAME: il nome dell'istanza di Grafana in cui inserisci la dashboard.NAMESPACE: lo spazio dei nomi in cui hai eseguito il deployment dell'operatore Grafana.
Per applicare la configurazione della dashboard di Grafana al cluster AlloyDB Omni su Kubernetes, utilizza il comando seguente:
kubectl apply -f alloydbomni_dashboard.yaml -n NAMESPACEPer informazioni sull'utilizzo dell'operatore Grafana, consulta la documentazione dell'operatore Grafana.
Per configurare Grafana in modo che utilizzi Prometheus come origine dati, consulta Origini dati.
Per verificare che Grafana sia configurato correttamente, esegui una delle seguenti operazioni:
- Visualizza la raccolta di pannelli di Grafana nella dashboard di AlloyDB Omni.
Recupera le informazioni sulla dashboard di Grafana in un cluster Kubernetes:
kubectl get grafanadashboard alloydb-omni-dashboard -n NAMESPACE -o jsonpath='{.status.conditions[?(@.type=="DashboardSynchronized")].status}'Se il comando restituisce
True,alloydb-omni-dashboardè stato eseguito correttamente il deployment nell'istanza di Grafana.
Disinstallare AlloyDB Omni
Kubernetes
Eliminare il cluster di database
Per eliminare il cluster di database, imposta isDeleted su true nel relativo manifest.
Puoi farlo con il comando seguente.
kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"isDeleted":true}}' --type=mergeSostituisci DB_CLUSTER_NAME con il nome del cluster di database. È lo stesso nome del cluster di database che hai dichiarato quando l'hai creato.
Disinstallare l'operatore AlloyDB Omni
Per disinstallare l'operatore AlloyDB Omni Kubernetes dal cluster Kubernetes:
Elimina tutti i cluster di database:
for ns in $(kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces -o=jsonpath='{range .items[*]}{.metadata.namespace}{"\n"}{end}'); do for cr in $(kubectl get dbclusters.alloydbomni.dbadmin.goog -n $ns -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'); do kubectl patch dbclusters.alloydbomni.dbadmin.goog $cr -n $ns --type=merge -p '{"spec":{"isDeleted":true}}' done doneAttendi che l'operatore AlloyDB Omni Kubernetes elimini tutti i cluster di database. Utilizza il comando seguente per verificare se sono rimaste risorse di database:
kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespacesElimina altre risorse create dall'operatore AlloyDB Omni Kubernetes:
kubectl delete failovers.alloydbomni.dbadmin.goog --all --all-namespaceskubectl delete restores.alloydbomni.dbadmin.goog --all --all-namespaceskubectl delete switchovers.alloydbomni.dbadmin.goog --all --all-namespacesDisinstalla l'operatore AlloyDB Omni Kubernetes:
helm uninstall alloydbomni-operator --namespace alloydb-omni-systemLibera spazio per secret, descrizioni delle risorse personalizzate e spazi dei nomi correlati all'operatore AlloyDB Omni Kubernetes:
kubectl delete certificate -n alloydb-omni-system --allkubectl get secrets --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,ANNOTATION:.metadata.annotations.cert-manager\.io/issuer-name | grep -E 'alloydbomni|dbs-al' | awk '{print $1 " " $2}' | xargs -n 2 kubectl delete secret -nkubectl delete crd -l alloydb-omni=truekubectl delete ns alloydb-omni-system
Ridimensionare il cluster di database basato su Kubernetes
Per ridimensionare la CPU, la memoria o lo spazio di archiviazione del cluster di database basato su Kubernetes, aggiorna il campo resources dei manifest che definiscono il relativo pod. L'operatore AlloyDB Omni applica immediatamente le nuove specifiche al pod del database.
Per saperne di più sulla sintassi del manifest dell'operatore AlloyDB Omni, consulta Creare un cluster di database.
Le seguenti limitazioni si applicano alla modifica delle risorse di un cluster di database in esecuzione:
- Puoi aumentare le dimensioni di un disco solo se lo
storageClassspecificato supporta l'espansione del volume. - Non puoi ridurre le dimensioni di un disco.