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

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

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

ジョブのタイムアウト エラー メッセージを確認できる場所の例を以下に示します。

  • プリフライト ログからのマシンジョブのタイムアウト エラー メッセージ(わかりやすくするためにラップ済み)。例: 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 台のマシンでのみ実行されるルーティンです。GKE on Bare Metal のマシンジョブのデフォルトのタイムアウトは 900 秒、つまり 15 分です。マシンジョブのタイムアウト間隔は、クラスタ構成ファイルの baremetal.cluster.gke.io/machine-job-deadline-seconds アノテーションで調整されます。

次の例では、マシンのタイムアウト間隔を 1800 秒(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> など、すべての単一マシンジョブに新しい間隔が使用されます。

バッチジョブのタイムアウト間隔の調整

バッチジョブは、ネットワーク プリフライト チェックなど、複数のマシンで実行されるルーティンです。GKE on Bare Metal のバッチジョブのデフォルトのタイムアウト間隔は、ネットワーク内のマシン数によって異なります。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 を使用して既存のクラスタをアップグレードする場合に適用されます。