すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:スケジューリングの概要

最終更新日:Dec 27, 2024

Kubernetesクラスターでは、スケジューリングとは、kube-schedulerという名前のスケジューリングコンポーネントが、クラスターのリソース総量に基づいてPodをノードにスケジュールするプロセスのことを指します。Alibaba Cloud Container Compute Service (ACS) クラスターは、仮想ノードの形式でリソースを提供します。そのため、複雑なリソース割り当てポリシーを考慮する必要はありません。アプリケーションのオーケストレーションルールに集中できます。このトピックでは、ACSクラスターで一般的に使用されるスケジューリングポリシーの使用方法と注意事項について説明します。

Kubernetesネイティブスケジューリングポリシー

Kubernetesネイティブスケジューラーは、さまざまなスケジューリングプラグインを提供します。ACSの仮想ノードでは、アフィニティ関連のポリシーに焦点を当て、アプリケーションのパフォーマンスと高可用性を確保できます。これには、ゾーン全体にPodを分散するためのトポロジスプレッド制約、ノードアフィニティ、Pod間アフィニティの使用が含まれます。

ポリシー

説明

参照

トポロジスプレッド制約を使用してゾーン全体にPodを分散する

TopologyKeyフィールドで仮想ノードのラベルを指定して、ワークロードをゾーン全体に分散できます。

トポロジスプレッド制約を使用してゾーン全体にPodを分散する

ノードアフィニティ

ラベルは仮想ノードに追加され、ゾーンなどのノードのさまざまな属性を示します。nodeSelectorなどのフィールドでアフィニティ要件を記述することにより、特定の属性を持つ仮想ノードでアプリケーションを実行できます。

ノードアフィニティに基づいてPodをスケジュールする

Pod間アフィニティ

このポリシーは、Pod間の親和性設定を表すために使用されます。ノードアフィニティと比較して、このポリシーは、ノードで既に実行されているPodのラベルに基づいて、Podをスケジュールできるノードを制限します。podAffinityなどのフィールドでアフィニティ要件を記述することにより、特定のトポロジドメインにPodをスケジュールできます。

Podアフィニティに基づいてPodをスケジュールする

カスタム優先順位に基づくリソーススケジューリング

ポリシー

説明

シナリオ

参照

カスタム優先順位に基づくリソーススケジューリング

作成するPodに対して、複数の計算クラスまたは計算QoSクラスを指定できます。リソースが不足している場合、スケジューラーは他のタイプのPodを作成しようとします。

特定の種類のアプリケーションの使用を優先します。たとえば、計算ジョブは、費用対効果の高いベストエフォートインスタンスを使用することを好む場合があります。

カスタム優先順位に基づくリソーススケジューリング

ジョブスケジューリング

Kubernetesクラスターでは、ジョブを実行するアプリケーションは、多様なリソース要件を持っています。たとえば、AIトレーニングジョブでは、Podのグループが同時にリソースを申請できる必要があります。多数のアプリケーションがデプロイされているクラスターでは、リソース容量管理も必要です。ACSは、ジョブを実行するアプリケーションに対して次のスケジューリングポリシーを提供します。

ポリシー

説明

シナリオ

参照

ギャングスケジューリング

すべてのPodが同時にリソースを要求できるように、リソースはPodのグループにバッチとして割り当てられる必要があります。スケジューリング要件が満たされない場合、すべてのPodはPending状態のままになります。

Message Passing Interface (MPI) ジョブなどの高性能コンピューティングおよびAIトレーニングジョブ。すべてのレプリカを起動した場合にのみ、アプリケーションを実行できます。

ギャングスケジューリングを使用する

キャパシティスケジューリング

このポリシーにより、ACSクラスターは特定の名前空間にリソース容量制限を課すことができます。

複数のユーザーまたはアプリケーションが同じクラスターを共有する場合、名前空間ごとにリソースの使用量を制限する必要があります。

キャパシティスケジューリングを使用する