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

Container Service for Kubernetes:仮想ノードベースのスケジューリングソリューションの紹介と比較

最終更新日:Dec 06, 2024

Pro EditionクラスターやBasic Editionクラスターなど、ACKマネージドクラスターでサポートされている仮想ノードベースのスケジューリングソリューションは、ACK専用クラスターでサポートされているものとは異なります。 さまざまなソリューションがさまざまなシナリオと要件に適しています。 例えば、ポッドを仮想ノードのみにスケジューリングするのに適した解決策は、ポッドをゾーンに分散させるのに適した解決策とは異なる。 このトピックでは、クラスタータイプとシナリオに基づいて仮想ノードベースのスケジューリングソリューションを選択する方法について説明します。

一般的な仮想ノードベースのスケジューリングシナリオ

  1. ポッドを仮想ノードにのみスケジュールします。

  2. ポッドスケジューリングのためにElastic Compute Service (ECS) インスタンスに優先順位を付け、ECSインスタンスが不足している場合にのみ仮想ノードを使用します。

ACK Basicクラスターを使用するとします。 シナリオ1では、ポッド設定にalibabacloud.com/eci=trueラベルを追加することを推奨します。 シナリオ2では、クラスターをACK Proクラスターにアップグレードすることを推奨します。 ACK Basicクラスターと比較して、ACK Proクラスターはより多くの機能を提供し、クラスターの信頼性とサービスレベル契約 (SLA) の保証を強化し、より多くのポッドをデプロイできます。 ACKを使用すると、ACK BasicクラスターからACK Proクラスターにシームレスに移行できます。 詳細については、「ACK BasicクラスターからACK Proクラスターへのホットマイグレーション」をご参照ください。

使用上の注意

  • ラベルalibabacloud.com/eci=trueは優先度が高い。 このラベルが次のスケジューリング方法で使用されている場合、これらのスケジューリング方法は適用されません。

    • nodeSelector、affinity、anti-affinityなどのKubernetesネイティブスケジューリングセマンティクス、およびポッドトポロジ拡散制約

    • ResourcePolicy

    • ElasticResource (アノテーション: alibabacloud.com/burst-resource)

  • 弾性ワークロードの作成にack-kubernetes-elastic-workloadコンポーネントを使用したり、alibabacloud.com/burst-resourceアノテーションを使用して弾性リソースを設定したりしないことを推奨します。 ack-kubernetes-elastic-workloadコンポーネントとe alibabacloud.com/burst-resourceアノテーションは非アクティブな開発状態です。

  • Alibaba Cloudは、virtual-kubelet-autoscalerのメンテナンスを中止しました。 ACK Basicクラスターを使用する場合は、クラスターをACK Proクラスターにアップグレードし、virtual-kubelet-autoscalerをアンインストールしてノードリソースを節約することを推奨します。 Kubernetesネイティブスケジューリングセマンティクスを使用して、Elastic Container Instanceベースのポッドをゾーン全体に分散したり、アフィニティ設定に基づいて特定のゾーンにElastic Container Instanceベースのポッドをデプロイしたりできます。 詳細については、「Elastic Container Instanceベースのポッドのゾーン間での拡散とアフィニティの設定」をご参照ください。

ソリューションの比較とソリューションの選択方法に関する提案

次の表には、次の用語が含まれています。

  • 優先度ベースのスケジューリング: クラスターに異なるタイプのノードが含まれている場合、ポッドスケジューリング用に異なるノードタイプの優先度を設定できます。 たとえば、ポッドスケジューリングのために仮想ノードよりもECSインスタンスに優先順位を付けることができます。 このように、ACKはポッドをECSインスタンスに優先的にスケジュールし、ポッドをECSインスタンスが不足している場合にのみ仮想ノードにスケジュールします。

    スケジューリング方法が優先度ベースのスケジューリングポリシーをサポートしていない場合、スケジューリング方法では異なるタイプのノードの優先度を指定できないことを意味します。 たとえば、ポッド設定にalibabacloud.com/eci=trueラベルを追加した場合、ポッドは仮想ノードにのみスケジュールでき、ECSインスタンスはポッドスケジューリングに使用されません。 この場合、優先度ベースのスケジューリングを有効にすることはできない。

  • 厳密なスケジューリングポリシー: このポリシーでは、ポッドを異なるタイプのノードプールにスケジューリングするための優先ルールと必須ルールを指定できます。

    • 好ましいルール。 たとえば、preferredDuringSchedulingIgnoredDuringExecutionノードアフィニティルールをポッド設定に追加した場合、ポッドは優先的にECSノードにスケジュールされます。 ただし、ノードスコアリングポリシーにより、ECSノードが十分であれば、ポッドを仮想ノードにスケジュールすることができます。

    • 必須ルール。 たとえば、ポッドのResourcePolicyを作成して、ECSノードが十分な場合にのみポッドがECSノードにスケジュールされるようにすることができます。

ACK Proクラスターs

スケジューリング方法

典型的なシナリオ

優先度ベースのスケジューリング

Elastic Containerインスタンスベースのポッドで優先スケール

推奨

関連ドキュメント

ラベル: alibabacloud.com/eci=true

この方法を使用して、仮想ノードにのみポッドをスケジュールできます。 ただし、ポッドをスケジュールする仮想ノードを指定することはできません。

非対応

非該当

仮想ノードとしてデプロイされたエラスティックコンテナインスタンスへのポッドのスケジュール

Kubernetes-ネイティブスケジューリングセマンティクスを使用します。

nodeSelector

許容範囲ルールをポッド構成に追加して、ポッドを仮想ノードにのみスケジュールすることができます。 さらに、ポッドをスケジュールする仮想ノードを指定できます。

非対応

非該当

nodeSelector

アフィニティとアンチアフィニティ

テイント、許容ルール、およびノードアフィニティルールを設定して、ポッドをエラスティックコンテナインスタンスのみ、またはECSインスタンスのみにスケジュールすることができます。 上記の設定を設定して、ECSインスタンスにポッドを優先的にスケジュールし、ECSインスタンスが不足している場合にのみポッドを仮想ノードにスケジュールすることもできます。 これにより、ポッドスケジューリングの弾力性が向上する。

このスケジューリング方法は、柔軟なコンテナインスタンスを優先的にスケーリングします。

優先ルールをサポート

対応

ECSインスタンスとエラスティックコンテナインスタンスに基づくリソース割り当ての設定

ポッドトポロジーの広がりの制約

ポッドをゾーンに分散して、高可用性と高パフォーマンスのポッドスケジューリングを実装できます。

非対応

対応

Elastic Containerインスタンスベースのポッドをゾーンに分散し、アフィニティを設定

ResourcePolicy

  • ポッドスケジューリングのノードプールの優先度を設定できます。 たとえば、ノードプールAのノードが不足している場合に、ポッドをノードプールAに優先的にスケジュールし、ポッドをノードプールBにスケジュールするようにシステムを構成できます。

  • ポッドスケジューリングにECSインスタンスとエラスティックコンテナインスタンスの両方を使用する場合、課金方法に基づいて優先ルールを設定することもできます。 たとえば、ポッドスケジューリングのために、従量課金ECSインスタンスよりもサブスクリプションECSインスタンスに優先順位を付け、エラスティックコンテナインスタンスよりもECSインスタンスに優先順位を付けることができます。

    この場合、ポッドは逆の優先順位でスケールダウンされます。Elastic Container Instanceベースのポッド、従量課金ECSインスタンスベースのポッド、サブスクリプションECSインスタンスベースのポッドです。

必要なルールをサポート

対応

優先度ベースのリソーススケジューリングの設定

UnitedDeployment

デプロイ用に作成されたレプリケートされたポッドの数に基づいて、ポッドをECSインスタンスおよび仮想ノードにスケジュールできます。 たとえば、レプリカ数が10未満の場合はサブスクリプションECSインスタンスを使用し、レプリカ数が10を超えるが20を超えない場合はプリエンプティブルインスタンスを使用し、レプリカ数が20を超える場合はエラスティックコンテナインスタンスを使用するようにシステムを設定できます。

対応

対応

ElasticWorkload

(この方法は、非アクティブ現像状態にある。 UnitedDeploymentコントローラーの使用を推奨します。

デプロイのレプリケートされたポッドを、グループ内のECSインスタンスまたは仮想ノードにスケジュールできます。

対応

対応

不可

ack-kubernetes-elastic-workloadのインストール (メンテナンス中止)

ElasticResource (アノテーション: alibabacloud.com/burst-resource)

(非アクティブな開発状態)

次のエラスティックスケジューリングポリシーのみがサポートされています。

  • eciポリシー: ECSインスタンスが不足している場合にのみ、ポッドを仮想ノードにスケジュールします。

  • ec_onlyポリシー: ポッドを仮想ノードにのみスケジュールします。

対応

対応

不可

エラスティックリソースを使用したelastic Containerインスタンスベースのスケジューリングの実装 (中止)

virtual-kubelet-autoscaler

(メンテナンス中止)

ECSインスタンスにポッドを優先的にスケジュールし、ECSインスタンスが不足している場合にのみポッドを仮想ノードにスケジュールするようにシステムを設定できます。

対応

対応

なし

ACK基本クラスターおよびACK専用クラスターs

スケジューリング方法

典型的なシナリオ

優先度ベースのスケジューリング

Elastic Containerインスタンスベースのポッドで優先スケール

推奨

関連ドキュメント

ラベル: alibabacloud.com/eci=true

この方法を使用して、仮想ノードにのみポッドをスケジュールできます。 ただし、ポッドをスケジュールする仮想ノードを指定することはできません。

非対応

非該当

仮想ノードとしてデプロイされたエラスティックコンテナインスタンスへのポッドのスケジュール

UnitedDeployment

デプロイ用に作成されたレプリケートされたポッドの数に基づいて、ポッドをECSインスタンスおよび仮想ノードにスケジュールできます。 たとえば、レプリカ数が10未満の場合はサブスクリプションECSインスタンスを使用し、レプリカ数が10を超えるが20を超えない場合はプリエンプティブルインスタンスを使用し、レプリカ数が20を超える場合はエラスティックコンテナインスタンスを使用するようにシステムを設定できます。

対応

対応

UnitedDeployment

Kubernetes-ネイティブスケジューリングセマンティクスを使用します。

nodeSelector

許容範囲ルールをポッド構成に追加して、ポッドを仮想ノードにのみスケジュールすることができます。 さらに、ポッドをスケジュールする仮想ノードを指定できます。

非対応

対応

いいえ。

ACK Proクラスターのkube-schedulerコンポーネントと比較して、ACK BasicクラスターおよびACK専用クラスターkube-schedulerコンポーネントは、ポッドスケジューリング中に基になるリソースのインベントリを認識しません。 その結果、ACK Proクラスターではポッドの作成が成功する確率が低くなります。

nodeSelector

アフィニティとアンチアフィニティ

テイント、許容ルール、およびノードアフィニティルールを設定して、ポッドをエラスティックコンテナインスタンスのみ、またはECSインスタンスのみにスケジュールすることができます。 上記の設定を設定して、ECSインスタンスにポッドを優先的にスケジュールし、ECSインスタンスが不足している場合にのみポッドを仮想ノードにスケジュールすることもできます。 これにより、ポッドスケジューリングの弾力性が向上する。

優先ルールをサポート

対応

アフィニティとアンチアフィニティ

ポッドトポロジーの広がりの制約

ポッドをゾーンに分散して、高可用性と高パフォーマンスのポッドスケジューリングを実装できます。

非対応

対応

ポッドトポロジーの広がりの制約

ElasticWorkload

(この方法は、非アクティブ現像状態にある。 UnitedDeploymentコントローラーの使用を推奨します。

デプロイのレプリケートされたポッドを、グループ内のECSインスタンスまたは仮想ノードにスケジュールできます。

対応

対応

不可

ack-kubernetes-elastic-workloadのインストール (中止)

ElasticResource (アノテーション: alibabacloud.com/burst-resource)

(非アクティブな開発状態)

次のエラスティックスケジューリングポリシーのみがサポートされています。

  • eciポリシー: ECSインスタンスが不足している場合にのみ、ポッドを仮想ノードにスケジュールします。

  • ec_onlyポリシー: ポッドを仮想ノードにのみスケジュールします。

対応

対応

不可

エラスティックリソースを使用したelastic Containerインスタンスベースのスケジューリングの実装 (中止)

virtual-kubelet-autoscaler

(メンテナンス中止)

ECSインスタンスにポッドを優先的にスケジュールし、ECSインスタンスが不足している場合にのみポッドを仮想ノードにスケジュールするようにシステムを設定できます。

対応

対応

なし