データベースが Kubernetes クラスタで実行されている場合は、コンテナ化されたアプリケーションで実行される Liveness Probe と Startup Probe を無効にして、データベース Pod が正常な状態であることを確認することで、データベースをメンテナンス モードにできます。メンテナンス モードは、メンテナンス アップデートを行う場合や Pod を修復する必要がある場合に、Pod を実行状態に保つためのものです。
メンテナンス モードを有効にする
データベース Pod に Probe が存在することを確認します。
Liveness Probe:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'
次のように置き換えます。
NAMESPACE
: データベースの実行に使用される Namespace の名前(例:db
)。DATABASE_POD_NAME
: データベース Pod の名前(例:al-4017-dbcluster-sample-0
)。
Liveness Probe を使用した出力例を次に示します。
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Startup Probe:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'
Startup Probe を使用した出力例を次に示します。
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}
DBCluster マニフェストの
spec
セクションでmode
をmaintenance
に設定します。apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: DB_CLUSTER_NAME namespace: NAMESPACE spec: allowExternalIncomingTraffic: false isDeleted: false mode: maintenance primarySpec: ...
DB_CLUSTER_NAME
は、このデータベース クラスタの名前に置き換えます(例:my-db-cluster
)。次のようにマニフェストを適用します。
kubectl apply -f DB_CLUSTER_YAML
DB_CLUSTER_YAML
は、このデータベース クラスタのマニフェスト ファイルの名前に置き換えます(例:alloydb-omni-db-cluster.yaml
)。メンテナンス モードが有効になっていることを確認するには、次のコマンドを実行します。
Liveness Probe:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'
Startup Probe:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'
出力の
POD_NAME
Pod のspec
セクションにLiveness
フィールドとStartup
フィールドが含まれていません。
メンテナンス モードを無効にする
実行中の Liveness Probe と Startup Probe を使用して標準のデータベース クラスタの動作に戻すには、次のコマンドを使用し、DBCluster マニフェストの spec
セクションから maintenance
を削除します。
kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"mode":""}}' --type=merge -n DB_CLUSTER_NAMESPACE --type=merge
出力例:
Liveness Probe を使用する場合:
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Startup Probe を使用する場合:
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180, "periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}