3.4. ワーカーノードでスケジュールされたジョブ
Automation Controller と Kubernetes の両方が、ジョブのスケジューリングを行います。
ジョブが起動されると、その依存関係が満たされます。つまり、プロジェクトおよびインベントリーの更新は、ジョブテンプレート、プロジェクト、およびインベントリーの設定で必要な場合に、Automation Controller によって起動します。
ジョブが Automation Controller の他のビジネスロジックによってブロックされておらず、コントロールプレーンにジョブを開始するためのコントロールプレーンがある場合、ジョブはディスパッチャーに送信されます。ジョブを制御するための "コスト" のデフォルト設定は 1 capacity です。したがって、100 capacity のコントロール Pod は、一度に最大 100 のジョブを制御できます。制御容量が負荷されたジョブは、pending から waiting に移行します。
コントロールプラン Pod のバックグラウンドプロセスであるディスパッチャーは、ワーカープロセスを開始してジョブを実行します。これは、コンテナーグループに関連付けられたサービスアカウントを使用して kubernetes API と通信し、Automation Controller のコンテナーグループで定義されている Pod 仕様を使用して Pod をプロビジョニングします。Automation Controller のジョブステータスは running と表示されます。
これで Kubernetes が Pod をスケジュールするようになりました。Pod は AWX_CONTAINER_GROUP_POD_PENDING_TIMEOUT
の間、pending ステータスのままになります。Pod が ResourceQuota
によって拒否されると、ジョブは pending からやり直されます。名前空間でリソースクォータを設定して、名前空間内の Pod が消費できるリソースの数を制限できます。ResourceQuotas の詳細は、リソースクォータ を参照してください。