次の方法で共有


Azure Kubernetes Service 環境のスケーラビリティに関する考慮事項

Azure Kubernetes Service (AKS) は、GPU などの特殊な機能を備えたノード プールを追加することでインフラストラクチャのニーズ (容量の増減が必要) に応じて、またはアプリケーションのニーズに応じてスケールイン/アウトすることができます。この場合、コンカレント接続の数と速度、要求数、AKS アプリケーションでのバックエンド待機時間などのいくつか点を考慮します。

AKS の最も一般的なスケーラビリティ オプションは、クラスター自動スケーラー水平ポッド自動スケーラーです。 クラスター自動スケーラーを使用すると、ノード プール内の要求されたコンピューティング リソースに基づいてノードの数が調整されます。 水平ポッド自動スケーラー (HPA) を使用すると、CPU 使用率やその他の構成されたメトリックに応じて、デプロイ内のポッド数が調整されます。

設計上の考慮事項

次に、考慮すべき重要な点をいくつか示します。

  • アプリケーションで、迅速なスケーラビリティが必要とされているか (時間が切迫している)。

    • ポッドを迅速にプロビジョニングするには、仮想ノードを使用します。これは、Linux ノード/ポッドでのみサポートされています。
  • ワークロードに時間的な制約がなく、中断が処理可能であるか。 スポット VM の使用を検討します。

  • 基盤となるインフラストラクチャ (ネットワーク プラグイン、IP 範囲、サブスクリプションの制限、クォータなど) はスケールアウトに対応しているか。

  • スケーラビリティの自動化を検討する

    • クラスターの自動スケールを有効にすると、ノードの数をスケーリングできます。 クラスターの自動スケール0 へのスケーリングを検討します。
    • 水平ポッド自動スケーラーでは、ポッドの数が自動的にスケーリングされます。
  • マルチゾーンとノード プールでのスケーラビリティを検討する

    • ノード プールを作成する際には、AKS を使用して Availability Zones を設定することを検討します。
    • さまざまな要件があるアプリケーションをサポートするために、複数のノード プールを使用することを検討します。
    • クラスター自動スケーラーを使用してノード プールをスケーリングします。
    • ユーザー ノード プールを 0 にスケーリングすることができます。 制限事項を参照してください。

設計の推奨事項

設計に関する次のベスト プラクティスに従ってください。

  • 仮想マシン スケール セット (VMSS) を使用します。これは、自動スケール、複数のノード プール、Windows ノード プールのサポートなどのシナリオに必要です。
    • Azure portal において、または Azure CLI を使用して、VMSS スケーラビリティ設定を手動で有効にしたり、編集したりしないでください。 代わりに、クラスター オートスケーラーを使用します。
  • 高速バースト自動スケールを行う必要がある場合は、迅速かつ無制限のスケーラビリティと秒単位の請求のために、Container Instances と仮想ノードを使用して AKS クラスターからバーストすることを選択します。
  • VM ベースのワーカー ノードを使用して予測可能なスケーラビリティを実現するには、クラスター自動スケーラーを使用し、0 にスケーリングします。
  • クラスター自動スケーラーを有効にして、アプリケーションの要求を満たします。
  • 水平ポッド自動スケーラー (HPA) を有効にして、アプリケーションのビジー時間を短縮します。
    • すべてのコンテナーとポッドでは、リソース要求と制限が定義されている必要があります。
    • HPA では、観測されたリソース制限 (CPU/メモリまたはカスタム メトリック) に基づいて、ポッドの数が自動的にスケーリングされます。
  • コンテナーの Azure Monitor とライブ監視を有効にして、クラスターとワークロードの使用率を監視します。
  • アプリケーションのリソース要件が異なる場合は、複数のノード プールを使用します。
  • 中断と削除を処理可能な、時間的な制約がないワークロードには、スポット VM ベースのノード プールを検討します。