Azure Arc で有効になっている AKS でのクラスターの自動スケーリング

適用対象: AKS on Azure Stack HCI 22H2、AKS on Windows Server

Azure Kubernetes Service (AKS) を使用して、AKS Arc でアプリケーション ワークロードを実行するノードの数を調整して、需要に対応できます。 PowerShell を使って、自動スケーラーを有効にし、ターゲット クラスター内のノード プールの自動スケーリングを管理できます。

この記事では、Arc で有効になっている AKS の自動スケーラーのコンテキストと、自動スケーラーのしくみについて説明します。 クラスターの自動スケーリングを効果的に機能させるには、Kubernetes の標準的な Kubernetes コンポーネントである Kubernetes 水平ポッド オートスケーラーを使用することもできます。 Kubernetes 水平ポッド 自動スケーラーの詳細については、「 水平ポッドの自動スケーリング」を参照してください。

クラスターの自動スケール

AKS では、クラスター自動スケーラーは、リソース制約のためにスケジュールできないクラスター内のポッドを監視します。 問題が検出されると、アプリケーションの需要を満たすためにノード プール内のノードの数が増加します。 また、実行ポッドの不足について定期的にノードがチェックされ、必要に応じてノードの数が減少します。 AKS クラスター内のノードの数を自動的にスケールアップまたはスケールダウンするこの機能を使用すると、効率的で、コスト効率の高いクラスターを実行できます。 "自動スケーリング" は、入力、メジャー、ルールに基づいた特定のパラメーターを含む自動化と構成を通じてワークロードを自動的に調整するシステムの機能です。

クラスター オートスケーラーを有効にするには、AKS で基本的なリソース管理を実装する必要があります。 AKS は、ある時点で自動スケーリング イベントをトリガーするリソース要件を見積もります。 AKS では、AKS Arc の外部からのリソース消費量は考慮されません。たとえば、自動スケーラーを有効にした後に VM を追加すると、このイベントは自動スケーラーのコンテキスト外で発生します。

クラスターの自動スケーリングの目的

自動スケーラーは、ノード プールのサイズを、指定されたノードの最小数から最大数まで自動的に増やします。 自動スケーリングを有効にすると、自動スケーラーはノードの最大数が実現可能かどうかを判断し、使用可能なハードウェア リソースの過剰プロビジョニングについて警告します。

自動スケーラーは、デプロイされたすべてのターゲット クラスターとノード プールにわたって、利用可能で約束されたリソースを追跡します。 スケーラーはこのデータを使用して、情報に基づいた意思決定を行います。 自動スケーラーがノード プールを増やすと、自動スケーラーはリソースの可用性をチェックします。

AKS Arc では、組み込みの Kubernetes 自動スケーリング機能を使用して、Azure オートスケーラーと同様の操作をサポートします。

クラスターの自動スケーリングのしくみ

自動スケーラーは、アプリケーションの需要の変化に合わせて調整されます。 稼働日と夜間の負荷の間で需要が変化すると、自動スケーラーによってクラスター リソースがシフトされます。 Kubernetes クラスターは、次の 2 つの方法でスケーリングされます。

  • ノード使用量に基づいたトリガー。 クラスター自動スケーラーでは、リソースの制約のためにノードにスケジュールできないポッドを監視します。 クラスター自動スケーラーは、一定時間未使用の容量があった場合、ノードの数を減らします。
  • 自動スケーラー プロファイルで定義されているトリガー。 クラスター自動スケーラーは、スケール イベント間の時間間隔やリソースしきい値などのトリガーに対して開始パラメーターを使用します。 自動スケーラー プロファイルに関する記事を参照してください。

ノード プールで自動スケーリングを有効にすると、Set-AksHciCluster-ClusterAutoScalingProfile パラメーターを使用して 1 つ以上の設定をオーバーライドしない限り、既定のプロファイルが適用されます。 有効にしない限り、ノード自動スケーラーの既定の状態は、クラスターとノード プールの作成時の両方で無効になります。

クラスターの自動スケーラーを有効にし、autoscalerconfig オブジェクトを指定しない場合、既定の自動スケーラー プロファイルがクラスターに追加されます。 その後、 コマンドを使用し、更新された値を持 Set-AksHciClusterautoscalerconfig オブジェクトを渡すことで、プロファイル内のパラメーターを微調整できます。 オブジェクト内のすべてのパラメーターを指定する必要はなく、更新されたパラメーターをオブジェクトに指定するだけです。

自動スケーラーの操作

自動スケーラー プロファイルのパラメーターを設定して、自動スケーラーを構成できます。 詳細については、自動スケーラー プロファイルの使用方法に関する記事を参照してください。

PowerShell を使用して、自動スケーラーの有効化、構成、無効化を行うことができます。 詳細については、「クラスターの自動スケーリングに PowerShell を使用する」を参照してください。

クラスターのアップグレード中のクラスターの自動スケーリング

クラスターのアップグレードと更新中、自動スケーラーは一時停止され、クラスターとクラスター内のすべてのノード プールが更新操作を完了するまでスケーリング操作は行われません。 クラスター内の特定のノード プールが新しい Kubernetes バージョンに更新された場合、そのノード プールの自動スケーラーは一時停止されます。 自動スケーリング操作は、他のすべてのノード プールで続行されます。

次のステップ