Questa pagina mostra come mettere il database in modalità di manutenzione in un cluster Kubernetes.
Se il database viene eseguito in un cluster Kubernetes, puoi metterlo in modalità di manutenzione disattivando i probe di attività e i probe di avvio, che vengono eseguiti nell'applicazione containerizzata, per assicurarti che il pod del database sia in uno stato corretto. La modalità di manutenzione ti consente di mettere un pod in stato di esecuzione quando devi eseguire un aggiornamento di manutenzione o riparare il pod.
Attivare la modalità di manutenzione
Verifica che i controlli esistano in un pod di database:
Probe di attività:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'
Sostituisci quanto segue:
NAMESPACE
: il nome di un ambito utilizzato per eseguire il database, ad esempiodb
.DATABASE_POD_NAME
: il nome del pod del database, ad esempioal-4017-dbcluster-sample-0
.
Di seguito è riportato un output di esempio con un probe di attività:
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Probe di avvio:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'
Di seguito è riportato un output di esempio con un'indagine di avvio:
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}
Imposta
mode
sumaintenance
nella sezionespec
del manifest DBCluster:apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: DB_CLUSTER_NAME namespace: NAMESPACE spec: allowExternalIncomingTraffic: false isDeleted: false mode: maintenance primarySpec: ...
Sostituisci
DB_CLUSTER_NAME
con il nome di questo cluster di database, ad esempiomy-db-cluster
.Applica il manifest:
kubectl apply -f DB_CLUSTER_YAML
Sostituisci
DB_CLUSTER_YAML
con il nome del file manifest del cluster di database, ad esempioalloydb-omni-db-cluster.yaml
.Per verificare che la modalità di manutenzione sia attiva, esegui i seguenti comandi:
Probe di attività:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'
Probe di avvio:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'
L'output non contiene i campi
Liveness
eStartup
nella sezionespec
del podPOD_NAME
.
Disattivare la modalità di manutenzione
Per tornare al comportamento standard del cluster di database con i controlli di attivazione e attività in esecuzione, utilizza il seguente comando per rimuovere maintenance
dalla sezione spec
del manifest DBCluster:
kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"mode":""}}' --type=merge -n DB_CLUSTER_NAMESPACE --type=merge
Output di esempio:
Con un probe di attività:
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Con una sonda di avvio:
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180, "periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}