次の方法で共有


Azure Arc で有効になっている AKS の可用性セット

可用性セット は、物理クラスター内の使用可能な障害ドメイン全体に均等に分散されるように、相互に弱いアンチアフィニティ関係を持つ VM の論理グループです。 このコンテキストの障害ドメインは、物理ホストまたは物理ホストのグループです。 可用性セットを使用することで、AKS Arc は Kubernetes ワークロードの可用性と分散を向上させることができます。 可用性セットを使用すると、単一ノードの障害によって複数の VM がダウンしたり、不均衡になったりするシナリオを回避できます。

概要

可用性セットは、Azure ローカル ユーザーの AKS に次のようないくつかの利点を提供します。

  • 同じノード プールまたはコントロール プレーン内の複数の VM がダウンしたり、単一ノード障害によって不均衡になったりするシナリオを回避することで、アプリケーションの可用性と回復性が向上します。
  • VM が使用可能なノード間で均等に分散され、単一のノードまたはノードのサブセットに集中しないようにすることで、クラスターのリソースの使用状況とパフォーマンスを最適化します。
  • 信頼性の高い一貫性のあるオンプレミス Kubernetes エクスペリエンスを探している顧客とパートナーのベスト プラクティスと期待に沿っています。

可用性セットを有効にする

AKS on Azure Local バージョン 23H2 では、ノード プールの作成時に可用性セット機能が既定で有効になります。 Windows Server 上の AKS では、AKS クラスターの作成時に -enableAvailabilitySet パラメーター ( New-AksHciCluster -Name <name> -controlPlaneNodeCount 3 -osType Linux -kubernetesVersion $kubernetesVersion -enableAvailabilitySet など) を追加することで、可用性セット機能を有効にすることができます。

Azure Arc で有効になっている AKS で可用性セットがどのように機能するか

新しい AKS Arc クラスターを作成すると、AKS Arc によって可用性セットが自動的に作成されます。1 つはコントロール プレーン VM 用、もう 1 つは Kubernetes クラスター内の各ノード プール用です。 各ノード プールには、独自の可用性セットがあります。 このレイアウトでは、AKS Arc により、同じロール (コントロール プレーンまたはノード プール) の VM が同じ物理ホスト上に配置されることは決してなく、クラスター内の使用可能なノード間で分散されます。

可用性セットが作成され、VM が割り当てられると、適切な物理ノードに自動的に配置されます。 ノードに障害が発生した場合、システムは VM を他のノードに自動的にフェールオーバーし、ノードの復旧時に再調整します。 これにより、手動による介入なしに、Kubernetes ワークロードの高可用性と最適な分散を実現できます。

Host AHost B、3 つのコントロール プレーン VM、2 つのワーカー ノード VM (Nodepool1VM1Nodepool1VM2) を備えた Azure Local バージョン 23H2 クラスターの AKS について考。 Kubernetes アプリケーションの高可用性を確保するために、ノード プール VM が同じホストを共有しないようにする必要があります。ただし、いずれかのホストが計画メンテナンスまたは容量の問題で一時的に使用できなくなり、VM (仮想マシン) が代替ホストに一時的に配置される可能性がある場合を除きます。

次の図では、各色はアンチアフィニティ グループを表しています。

アンチアフィニティ グループ内のホストを示す図。

再起動のために Host B がダウンした場合、次の図に示すように、 Control Plane VM2Control Plane VM3、および Nodepool1VM2 Host A にフェールオーバーします。 アプリケーションが NodePoolVM1 でポッドを実行していると仮定すると、この再起動はアプリケーションに影響しません。

ホスト B を下に示す図。

以前のアーキテクチャでは、再起動後に Host B がオンラインに戻った場合、VM がホスト A からホスト B に戻る (再調整) という保証がないため、次の図に示すようにワークロードは同じホスト上に維持され、単一障害点が作成されます。

再調整がないことを示す図。

AKS Arc の可用性セットは、ホストが一時的な停止から復旧した後に VM を再調整するのに役立ちます。 この例では、次に示すように、 ControlPlaneVM2ControlPlaneVM3、および Nodepool1VM2 自動的に Host B に移動します。

アンチアフィニティ グループ内のホストを示す図。

重要

AKS Arc の可用性セットは、まだ進化し、改善されている新機能です。 障害ドメインまたは可用性セットの手動構成はまだサポートされていません。 可用性セットの作成後に、可用性セットの障害ドメインを変更することはできません。 VM はクラスターの作成時に可用性セットに割り当てられ、別の可用性セットに移行することはできません。

マシンを追加または削除する

ホストの削除シナリオでは、ホストはクラスターの一部とは見なされなくなります。 この削除は、通常、ハードウェアの問題が原因でマシンを交換したり、他の理由で Azure ローカル クラスターをスケールダウンしたりする場合に発生します。 ノードの停止中、ノードは Azure ローカル クラスターの一部のままですが、 Down として表示されます。

物理マシン (障害ドメイン) がクラスターから完全に削除された場合、可用性セットの構成は変更されず、障害ドメインの数が減ります。 このシナリオでは、可用性セットは異常な状態になります。 可用性セットが適切な数の障害ドメインで更新されるように、Kubernetes クラスターを再デプロイすることをお勧めします。

新しい物理マシン (障害ドメイン) がクラスターに追加されると、可用性セットの構成が自動的に拡張され、新しいマシンが含まれます。 ただし、既存の VM は可用性セットに既に割り当てられているため、この新しい構成を適用するために再調整されません。 可用性セットが適切な数の障害ドメインで更新されるように、Kubernetes クラスターを再デプロイすることをお勧めします。

次のステップ

AKS の概要