Se il tuo 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 sull'applicazione in container, per assicurarti che il pod del database sia in uno stato integro. La modalità di manutenzione ti consente di impostare un pod in stato di esecuzione quando devi eseguire un aggiornamento di manutenzione o riparare il pod.
Attivare la modalità di manutenzione
Verifica che esistano probe su 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 uno spazio dei nomi 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 probe 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 di questo cluster di database, ad esempioalloydb-omni-db-cluster.yaml
.Per verificare che la modalità di manutenzione sia abilitata, esegui questi 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 ripristinare il comportamento standard del cluster di database con l'esecuzione di probe di vivacità e avvio, 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
Esempi di output:
Con un probe di attività:
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Con un probe di avvio:
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180, "periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}