ジョブのタイムアウト値を調整する

Google Distributed Cloud のジョブがタイムアウトし、動作がインストールの根本的な問題によるものではないと考えられる場合は、タイムアウト間隔を大きくすることができます。このドキュメントでは、構成仕様のアノテーションを使用してマシンジョブとバッチジョブのタイムアウト時間を調整する方法について説明します。

さらにサポートが必要な場合は、Cloud カスタマーケアにお問い合わせください。

ジョブの種類とエラー

Google Distributed Cloud のコマンドとルーティンには、マシンジョブとバッチジョブの 2 種類があります。ジョブの実行時間には、ハードウェア構成、ネットワーク構成、クラスタ構成など多くの項目が影響します。Google Distributed Cloud には、一般的なインストール環境に対応したデフォルトのタイムアウトが設定されています。

ジョブのタイムアウト エラー メッセージの例を次に示します。

  • プリフライト ログからのマシンジョブのタイムアウト エラー メッセージの例(わかりやすくするためにラップしています)。 bmctl-workspace/cluster1/logs/preflight-20210501-000426/172.18.0.4

    Pod:172.18.0.4-machine-preflf3a32c8a2f7a2449545c7e8ff954c961-652st
    Result:Failed Reason:DeadlineExceeded Time:Wed Feb  3 16:59:56 2021
    
  • 失敗した Pod の kubectl logs からの出力では、同様の DeadlineExceeded メッセージ(ラップ済み)が表示されることがあります。

    cluster-cluster1
    172.18.0.4-machine-preflf3a32c8a2f7a2449545c7e8ff954c961-652st    0/1
    0 DeadlineExceeded  192.168.122.180  bmctl-control-plane  7m12
    

マシンジョブのタイムアウト時間を調整する

マシンジョブは、1 台のマシンのみに制限されるプリフライト チェックなど、1 台のマシンでのみ実行されるルーティンです。Google Distributed Cloud のマシンジョブのデフォルトのタイムアウトは 900 秒(15 分)です。マシンジョブのタイムアウト時間は、クラスタ構成ファイルの baremetal.cluster.gke.io/machine-job-deadline-seconds アノテーションで調整できます。

次の例では、マシンジョブのタイムアウト時間を 1,800 秒(30 分)に設定します。

   apiVersion: baremetal.cluster.gke.io/v1
   kind: Cluster
   metadata:
     name: cluster1
     namespace: cluster-cluster1
     annotations:
       baremetal.cluster.gke.io/machine-job-deadline-seconds: "1800"
   spec:
   ...

タイムアウト時間の値は、bmctl create cluster を使用して新しいクラスタを作成する場合、または bmctl upgrade cluster を使用して既存のクラスタをアップグレードする場合に適用されます。bmctl check preflightbmctl check -c CLUSTER_NAME など、すべての単一マシンジョブに新しい間隔が使用されます。

バッチジョブのタイムアウト時間を調整する

バッチジョブは、ネットワーク プリフライト チェックなど、複数のマシンで実行されるルーティンです。Google Distributed Cloud バッチジョブのデフォルトのタイムアウト間隔は、ネットワーク内のマシン数によって異なります。900 秒に、マシンごとに 20 秒を追加した値がデフォルトのタイムアウト時間です。

たとえば、バッチジョブが 60 台のマシンで実行されている場合、デフォルトのタイムアウト時間は 2,100 秒(900 + (20 * 60) = 2100)、つまり 35 分になります。

バッチジョブのタイムアウト時間は、クラスタ構成ファイルの baremetal.cluster.gke.io/batch-job-deadline-seconds アノテーションで調整できます。

次の例では、バッチジョブのタイムアウト時間を 10,800 秒(3 時間)に設定します。

   apiVersion: baremetal.cluster.gke.io/v1
   kind: Cluster
   metadata:
     name: cluster1
     namespace: cluster-cluster1
     annotations:
       baremetal.cluster.gke.io/batch-job-deadline-seconds: "10800"
   spec:
   ...

タイムアウト時間の値は、bmctl create cluster を使用して新しいクラスタを作成する場合、または bmctl upgrade cluster を使用して既存のクラスタをアップグレードする場合に適用されます。

次のステップ

さらにサポートが必要な場合は、Cloud カスタマーケアにお問い合わせください。