ジョブがタイムアウトになり、タイムアウトがインストールの根本的な問題によるものではないと考えられる場合は、タイムアウト間隔を大きくすることができます。このドキュメントでは、構成仕様に対するアノテーションを使用してマシンジョブとバッチジョブのタイムアウト間隔を調整する方法について説明します。
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 preflight
、bmctl 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
を使用して既存のクラスタをアップグレードする場合に適用されます。