クラスター化された Azure Stack Edge デバイスでの Kubernetes フェールオーバー シナリオ
Kubernetes クラスターは、コンテナー化されたアプリケーションを調整するための一般的なオープンソース プラットフォームとしてデプロイされます。 この記事では、障害のモードや対応するデバイスの応答など、2 ノード Azure Stack Edge デバイスで Kubernetes がどのように動作するのかについて説明します。
Azure Stack Edge での Kubernetes について
Azure Stack Edge デバイス上で、Kubernetes クラスターを作成するにはコンピューティングを構成します。 コンピューティング ロールが構成されると、マスターおよびワーカー ノードを含む Kubernetes クラスターはすべて自動的にデプロイおよび構成されます。 その後、このクラスターは、kubectl
、IoT Edge、または Azure Arc を介したワークロードのデプロイに使用されます。
Azure Stack Edge デバイスは、インフラストラクチャ クラスターを構成する 1 ノード構成または 2 ノード構成として使用できます。 Kubernetes クラスターはインフラストラクチャ クラスターから分離され、インフラストラクチャ クラスターの上にデプロイされます。 インフラストラクチャ クラスターは、Azure Stack Edge デバイス用の永続的なストレージを提供します。一方、Kubernetes クラスターはアプリケーション オーケストレーション専用となります。
Kubernetes クラスターは、マスター ノードとワーカー ノードで構成されます。 クラスター内の Kubernetes ノードは、ご利用のアプリケーションとクラウド ワークフローを実行する仮想マシンです。
- Kubernetes マスター ノードは、ご利用のクラスターにとって望ましい状態を維持する役割を担います。 マスター ノードはワーカー ノードの制御も行います。
- ワーカー ノードは、コンテナー化されたアプリケーションを実行します。
2 ノード デバイスの Kubernetes クラスター
2 ノード デバイスの Kubernetes クラスターには、1 つのマスター ノードと 2 つのワーカー ノードがあります。 2 ノード デバイスは高可用性であり、ノードの 1 つで障害が発生した場合でも、デバイスと Kubernetes クラスターの両方の実行が維持されます。 Kubernetes クラスター アーキテクチャの詳細については、Kubernetes の主要な概念に関するドキュメントを参照してください。
2 ノード Azure Stack Edge デバイスでは、Kubernetes マスター VM と Kubernetes worker VM がデバイスのノード A で実行されています。 ノード B では、単一の Kubernetes worker VM が実行されています。
Kubernetes クラスター内の各 worker VM は、ピン留めされた Hyper-V VM です。 ピン留めされた VM は、実行されている特定のノードに関連付けられています。 デバイス上のノード A で障害が発生した場合、マスター VM はノード B にフェールオーバーします。ただし、ピン留めされた VM であるノード A 上の worker VM はノード B にフェールオーバーされません。その逆も同様です。 代わりに、ノード A の worker VM からのポッドがノード B に再バランスされます。
再バランスされたポッドがデバイス ノード B で実行するのに十分な容量を持つには、システムによって、通常の 2 ノード Azure Stack Edge クラスター操作中に各 ASE ノードの容量の 50% 以上を使用しないようにする必要があります。 この容量の使用量はベスト エフォートに基づいて行われ、再バランスされたポッドの実行に十分なリソースがない状況 (たとえば、ASE ノード B に再バランスされた場合に使用できない GPU リソースを必要とするワークロードなど) も考えられます。
これらのシナリオについては、次のセクションの「障害モードと動作」で詳しく説明します。
障害モードと動作
Azure Stack Edge デバイス ノードには、特定の条件下で障害が発生する可能性があります。 このセクションでは、さまざまな障害モードと対応するデバイスの応答について表にまとめています。
Azure Stack Edge ノードの障害または再起動
ノード | 失敗 | 応答 |
---|---|---|
ノード A で障害が発生している (ノード B に障害は発生していない) |
次の障害が発生する可能性があります。
|
これらの各障害に対して、次の応答が確認されます。
|
ノード A の再起動 (ノード B に障害は発生していない) |
ノードの再起動 | ノード A の再起動が完了し、worker VM が使用可能になると、マスター VM によりノード B からのポッドが再バランスされます。 |
ノード B に障害が発生する (ノード A に障害は発生していない) |
次の障害が発生する可能性があります。
|
これらの各障害に対して、次の応答が確認されます。
|
ノード B の再起動 (ノード A に障害は発生していない) |
ノードの再起動 | ノード B の再起動が完了し、worker VM が使用可能になると、マスター VM によりノード B からのポッドが再バランスされます。 |
Azure Stack Edge ノードの更新
更新の種類 | 応答 |
---|---|
デバイス ノードの更新 | ローリング更新がデバイス ノードに適用され、ノードは再起動されます。 |
Kubernetes サービスの更新 | Kubernetes サービスの更新には、次のものが含まれます。
|
次のステップ
- Azure Stack Edge デバイス上の Kubernetes ストレージの詳細について説明します。
- Azure Stack Edge デバイス上の Kubernetes ネットワーク モデルについて理解します。
- Azure portal で Azure Stack Edge を配置します。