2.2. コンテナーのリソース要件

タスクと Web コンテナーで、リソース要求の下限 (要求) と上限 (制限) の両方を設定できます。実行環境のコントロールプレーンは、プロジェクトの更新に使用されますが、通常はジョブの既定の実行環境と同じです。

リソースの要求と制限を設定することはベストプラクティスです。なぜなら、両方が定義されているコンテナーには、より高い サービス品質 クラスが指定されるからです。これは、基盤となるノードにリソース制限があり、クラスターが実行中のメモリーやその他の障害を防ぐために Pod をリープする必要がある場合は、コントロールプレーン Pod がリープされる可能性が低いことを意味します。

これらの要求と制限は、Automation Controllerの コントロール Pod に適用され、制限が設定されている場合は、インスタンスの 容量 が決まります。デフォルトでは、ジョブの制御には 1 単位の容量が必要です。タスクコンテナーのメモリーと CPU の制限は、コントロールノードの容量を決定するために使用されます。この計算方法の詳細は、リソースの決定 を参照してください。

ワーカーノードにスケジュールされたジョブ も参照してください。

名前説明デフォルト

web_resource_requirements

Web コンテナーのリソース要件

requests: {CPU: 100m, memory: 128Mi}

task_resource_requirements

タスクコンテナーのリソース要件

requests: {CPU: 100m, memory: 128Mi}

ee_resource_requirements

EE コントロールプレーンコンテナーのリソース要件

requests: {CPU: 100m, memory: 128Mi}

redis_resource_requirements

Redis コントロールプレーンコンテナーのリソース要件

requests: {CPU:100m, memory: 128Mi}

topology_spread_constraints を使用して制御ノードを個別の基盤となる kubernetes ワーカーノードにできるだけ分散することも推奨されるため、ノード上の実際のリソースと合計量と同じ量が、要求と制限の上限として妥当です。制限 のみが設定されている場合は、リクエストが制限と等しくなるように自動的に設定されます。ただし、コントロール Pod 内のコンテナー間でリソース使用量の変動が許容されるため、requests をより低い量 (ノードで使用可能なリソースの 25% など) に設定できます。クラスターに 4 つの CPU と 16GB の RAM が割り当てられたワーカーノードのコンテナーのカスタマイズ例は、以下のとおりです。

spec:
  ...
  web_resource_requirements:
    requests:
      cpu: 250m
      memory: 1Gi
    limits:
      cpu: 1000m
      memory: 4Gi
  task_resource_requirements:
    requests:
      cpu: 250m
      memory: 1Gi
    limits:
      cpu: 2000m
      memory: 4Gi
  redis_resource_requirements
    requests:
      cpu: 250m
      memory: 1Gi
    limits:
      cpu: 1000m
      memory: 4Gi
  ee_resource_requirements:
    requests:
      cpu: 250m
      memory: 1Gi
    limits:
      cpu: 1000m
      memory: 4Gi