Dynamic Engineデプロイメント向けのPodDisruptionBudgetの設定
Last updated: 2026/08/07インスタンスおよび環境のHelmチャートで、PodDisruptionBudgetの設定を有効化、無効化、調整します。
Kubernetesにおいて、PodDisruptionBudgetオブジェクトは、同時に自発的に中断できるポッドの数を定義します。背景情報については、ポッドの中断を参照してください。
PodDisruptionBudgetは、ノードのメンテナンスやクラスターのスケーリングといった計画的な中断の際、サービスの可用性を維持するのに役立ちます。この手順は、初期デプロイ時、または既存のリリースをアップグレードする際に適用してください。
KubernetesのPodDisruptionBudgetへのサポートは、Dynamic Engine v1.6.0で導入されました。
始める前に
-
dynamic-engine-crdカスタムリソース定義は、oci://ghcr.io/talend/helm/dynamic-engine-crd Helmチャートを使用してインストールされている必要があります。インストールされていない場合は、次のコマンドを実行してインストールしてください。
- 使用するチャートのバージョンを見つけます。
- 次のHelmコマンドを実行します:
helm show chart oci://ghcr.io/talend/helm/dynamic-engine-crd --version <engine_version> - Talend Management Consoleから直接バージョンを見るか、自分のDynamic Engineバージョンに含まれているチャートバージョンのDynamic Engine変更ログをチェックしてください。
- Dynamic EngineバージョンエンドポイントへのAPIコールを使用します。
- 次のHelmコマンドを実行します:
- 次のコマンドを実行し、目的のバージョンのHelmチャートをインストールします。<helm_chart_version>を、お使いのDynamic Engineバージョンでサポートされているチャートのバージョンに置換します。
helm install dynamic-engine-crd oci://ghcr.io/talend/helm/dynamic-engine-crd --version <helm_chart_version>バージョンを指定しないと、利用可能な最新のdynamic-engine-crdチャートバージョンがインストールされます。
- 使用するチャートのバージョンを見つけます。
- お使いのKubernetesクラスターは、PodDisruptionBudgetリソースをサポートしています。
- KubernetesのPodDisruptionBudgetに関する基本的な知識があります。
このタスクについて
EKS Auto ModeまたはGKE Autopilotを使用する予定の場合は、デプロイの前にまず PodDisruptionBudgetを設定することをお勧めします。global.profile: minimalおよびconfiguration.persistence.enabled=falseと組み合わせて使用してください。
データ統合ジョブはデフォルトでグローバルなPodDisruptionBudget設定を使用し、個別のタスクレベルの設定は公開していません。タスクレベルのカスタマイズは、データサービスタスクおよびルートタスクでのみ利用できます。
Pod Disruption Budget (PDB)は、通常、以下のような場合に役立ちます。
- クラスターのメンテナンス中に重要なサービスが退去させられるのを防ぐ
- 最小ポッド可用性クォータ(利用可能なポッドの最小数または利用不可能なポッドの最大数)の確保
- 可用性とクラスター運用の柔軟性のバランスをとる
- 連携したポッドの停止に伴う連鎖的な障害の回避
手順
タスクの結果
Dynamic Engineインスタンスとその環境は、選択されたPodDisruptionBudget設定を使用するようになりました。次のコマンドを使用して、アクティブなHelm値を確認します。
helm get values dynamic-engine-$DYNAMIC_ENGINE_ID --output json | jq -r '.global.pdb'
helm get values dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID --output json | jq -r '.global.pdb'nullが返された場合、チャートはデフォルト値を使用しており、PodDisruptionBudgetリソースは作成されません。
ポッドの中断が拒否されるか、PDBエラーが表示される場合は、次を確認してください。
- PDBリソースが正常に作成されたことを確認するには qlik-dynamic-engineおよび qlik-processing-env-<env-id>ネームスペースでPDBリソースを探します。
kubectl get pdb -A -l 'app.kubernetes.io/part-of=qlik-dynamic-engine' - PDBリソースの状態を確認するには Disruptions Allowed(許容される停止数)、Current Healthy(現在の正常数)、Desired Healthy(要求される正常数)の各フィールドを確認します。
kubectl describe pdb <pdb-name> -n <namespace> - ポッドの数がPDB制約を満たすのに十分であることを確認します minAvailable: 1を設定していても、ポッドが1つしか存在しない場合、PDBは一切の停止を許可しません。PDBの制約を調整するか、レプリカ数を増やすことを検討してください。
kubectl get pods -n <namespace> -l app=<service-name> - 障害拒否に関連するイベントをレビューします
kubectl get events -n <namespace> --sort-by=.lastTimestamp | grep -i disruption
次のタスク
# for dynamic engine
helm upgrade dynamic-engine-$DYNAMIC_ENGINE_ID \
oci://ghcr.io/talend/helm/dynamic-engine --version $DYNAMIC_ENGINE_VERSION \
--reuse-values --set global.pdb.enabled=false
# for dynamic engine environment
helm upgrade dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
oci://ghcr.io/talend/helm/dynamic-engine-environment --version $DYNAMIC_ENGINE_VERSION \
--reuse-values --set global.pdb.enabled=false