Azure Kubernetes Fleet Manager スケジューラとスケジューリング フレームワーク

この記事では、Azure Kubernetes Fleet Manager (Fleet) のスケジューラとスケジューリング フレームワークの概念の概要について説明します。

スケジューラとは

スケジューラとは、ClusterResourcePlacement によって生成された最新の ClusterSchedulingPolicySnapshot に基づいて、リソースのバンドルのスケジューリング決定を行う主な責任を持つフリート ワークロードのコア コンポーネントです。

既定では、スケジューラは "バッチ モード" で動作し、パフォーマンスが向上します。 このモードでは、可能な限り、ClusterResourceBindingClusterResourcePlacement から複数のクラスターにバインドします。

バッチ モード

ClusterResourcePlacement 内のリソースのスケジューリングには、Kubernetes デプロイ内のポッドのスケジュールと比較して、より多くの依存関係が関与します。 注目すべき違いは 2 つあります。

  • ClusterResourcePlacement では、リソースの複数のレプリカを同じクラスターにスケジュールすることはできません。
  • ClusterResourcePlacement では、1 つのオブジェクト内のさまざまな配置の種類がサポートされます。

詳細については、アップストリームのフリート スケジューラのドキュメントを参照してください。

スケジューリング フレームワークとは

フリート スケジューリング フレームワークは、ネイティブの Kubernetes スケジューリング フレームワークと密接に連携し、フリート ワークロードをサポートするためのいくつかの変更と調整された機能が組み込まれています。

このスクリーンショットでは、フリート スケジューリング フレームワークの概要図を示しています。

このフレームワークの主な利点は、プラグインをスケジューラに直接コンパイルする機能です。 その API により、プラグインとしての多様なスケジューリング機能の実装が容易になり、軽量で保守可能なコアが確保されます。

フリート スケジューラは、次の基本的な組み込みプラグインを統合します。

  • トポロジ スプレッド プラグイン: 配置ポリシーの TopologySpreadConstraints をサポートします。
  • クラスター アフィニティ プラグイン: 配置ポリシーの affinity 句を容易にします。
  • 同じ配置アフィニティ プラグイン: フリート専用に設計されており、複数のレプリカが同じクラスター内に配置されないようにします。
  • クラスター適格性プラグイン: 特定の状態の条件に基づいてクラスターの選択を有効にします。
  • テイントおよび容認プラグイン: クラスター上のテイントと、ClusterResourcePlacement での容認に基づいてクラスターの選択を有効にします。

詳細については、アップストリームのフリート スケジューリング フレームワークのドキュメントを参照してください。

次のステップ