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 containerizzata, 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.
Attiva la modalità di manutenzione
Verifica che i probe esistano in un pod del 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 di 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 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
LivenesseStartupnella sezionespecdel podPOD_NAME.
Disattiva la modalità di manutenzione
Per ripristinare il comportamento standard del cluster di database con i probe di attività e di avvio in esecuzione, utilizza il seguente comando per rimuovere maintenance dalla sezione spec del manifest di 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}