Azure Kubernetes Fleet Manager スケジューラとスケジューリング フレームワーク
この記事では、Azure Kubernetes Fleet Manager (Fleet) のスケジューラとスケジューリング フレームワークの概念の概要について説明します。
スケジューラとは
スケジューラとは、ClusterResourcePlacement
によって生成された最新の ClusterSchedulingPolicySnapshot
に基づいて、リソースのバンドルのスケジューリング決定を行う主な責任を持つフリート ワークロードのコア コンポーネントです。
既定では、スケジューラは "バッチ モード" で動作し、パフォーマンスが向上します。 このモードでは、可能な限り、ClusterResourceBinding
を ClusterResourcePlacement
から複数のクラスターにバインドします。
バッチ モード
ClusterResourcePlacement
内のリソースのスケジューリングには、Kubernetes デプロイ内のポッドのスケジュールと比較して、より多くの依存関係が関与します。 注目すべき違いは 2 つあります。
ClusterResourcePlacement
では、リソースの複数のレプリカを同じクラスターにスケジュールすることはできません。ClusterResourcePlacement
では、1 つのオブジェクト内のさまざまな配置の種類がサポートされます。
詳細については、アップストリームのフリート スケジューラのドキュメントを参照してください。
スケジューリング フレームワークとは
フリート スケジューリング フレームワークは、ネイティブの Kubernetes スケジューリング フレームワークと密接に連携し、フリート ワークロードをサポートするためのいくつかの変更と調整された機能が組み込まれています。
このフレームワークの主な利点は、プラグインをスケジューラに直接コンパイルする機能です。 その API により、プラグインとしての多様なスケジューリング機能の実装が容易になり、軽量で保守可能なコアが確保されます。
フリート スケジューラは、次の基本的な組み込みプラグインを統合します。
- トポロジ スプレッド プラグイン: 配置ポリシーの
TopologySpreadConstraints
をサポートします。 - クラスター アフィニティ プラグイン: 配置ポリシーの affinity 句を容易にします。
- 同じ配置アフィニティ プラグイン: フリート専用に設計されており、複数のレプリカが同じクラスター内に配置されないようにします。
- クラスター適格性プラグイン: 特定の状態の条件に基づいてクラスターの選択を有効にします。
- テイントおよび容認プラグイン: クラスター上のテイントと、
ClusterResourcePlacement
での容認に基づいてクラスターの選択を有効にします。
詳細については、アップストリームのフリート スケジューリング フレームワークのドキュメントを参照してください。
次のステップ
Azure Kubernetes Service