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
modesumaintenancenella sezionespecdel 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_NAMEcon il nome di questo cluster di database, ad esempiomy-db-cluster.Applica il manifest:
kubectl apply -f DB_CLUSTER_YAMLSostituisci
DB_CLUSTER_YAMLcon 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
LivenesseStartupnella sezionespecdel 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=mergeEsempi 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}