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 の詳細は、リソースクォータ を参照してください。