エッジ コンピューティングのオプションで Kubernetes を選択する
このドキュメントでは、エッジでのコンピューティングの拡張に使用できるさまざまなオプションのトレードオフについて説明します。 それぞれの Kubernetes オプションについて、次の考慮事項を説明します。
運用コスト。 Kubernetes クラスターを維持および運用するために必要であると予想される人件費。
構成の容易さ。 Kubernetes クラスターを構成してデプロイする難易度。
柔軟性。 カスタマイズされた構成をエッジの既存のインフラストラクチャと統合する際の Kubernetes オプションの適応性の程度。
混合ノード。 Linux と Windows ノードの両方で Kubernetes クラスターを実行できるかどうか。
外部からの影響
あなたは、エッジで Kubernetes を実行し、Azure でクラスターを管理するためのさまざまなオプションを把握しようとしているクラスター オペレーターです。
既存のインフラストラクチャと、ストレージやネットワークの要件などの他のインフラストラクチャの要件を十分に理解しています。
このドキュメントを読んだ後は、自分のシナリオに最適なオプションと、必要な環境を特定しやすくなります。
Kubernetes の選択の一覧表
運用コスト | 構成の容易さ | 柔軟性 | 混合ノード | まとめ | |
---|---|---|---|---|---|
ベアメタル Kubernetes | 高い** | 難しい** | 高い** | はい | 追加された Azure 機能に対して Azure Arc を使用するオプションを使用した、場所にある使用可能な任意のインフラストラクチャ上でのゼロからの構成。 |
Azure Stack Edge Pro 上の K8s | 低 | 簡単 | 低 | Linux のみ | 場所にデプロイされた Azure Stack Edge アプライアンスにデプロイされた Kubernetes。 |
AKS ハイブリッド | 低 | 簡単 | Medium | はい | Azure Stack HCI または Windows Server 2019 にデプロイされた AKS。 |
*その他のマネージド エッジ プラットフォーム (OpenShift、Tanzu など) は、このドキュメントの範囲に含まれていません。
**わかりやすくするために、これらの値は kubeadm の使用に基づいています。 エッジでベアメタル Kubernetes を実行するためのさまざまなオプションでは、これらのカテゴリでのレーティングは変わります。
ベアメタル Kubernetes
基盤となる任意のインフラストラクチャで kubeadm などのツールを使用した Kubernetes のゼロからの構成。
ベアメタル Kubernetes の最大の制約は、組織の特定のニーズと要件から発生します。 任意のディストリビューション、ネットワーク インターフェイス、プラグインを使用する機会は、複雑さと運用コストの増加を意味します。 ただし、これによって、クラスターをカスタマイズするための最も柔軟なオプションが提供されます。
シナリオ
多くの場合、"エッジ" の場所には、このドキュメントで説明されている他の Azure ソリューションでは満たされない、Kubernetes クラスターの実行に関する特定の要件があります。 つまり、このオプションは通常、サポートされていない既存のインフラストラクチャが原因でマネージド サービスを使用できない場合や、クラスターを最大限に制御する必要がある場合に最適です。
このオプションは、Kubernetes を初めて使用するユーザーにとっては特に難しい場合があります。 これは、エッジ クラスターの実行を検討している組織にとって珍しいことではありません。 MicroK8s や k3s などのオプションは、その学習曲線を平坦化することを目的としています。
基盤となるインフラストラクチャと、事前に実行されることが予想されている統合を理解することが重要です。 これにより、実行可能なオプションを絞り込んだり、オープンソースのツールやプラグインとのギャップを特定したりできます。
Azure Arc でクラスターを有効にすると、他のリソースと共に Azure からクラスターを簡単に管理できるようになります。 また、これにより、Azure Policy、Azure Monitor、Microsoft Defender for Cloud、およびその他のサービスなど、他の Azure 機能をクラスターで利用することもできます。
クラスターの構成は簡単ではないので、CI/CD に注意することが特に重要です。 さまざまなプラグインのアップストリーム変更を追跡して対応し、それらの変更がクラスターの正常性に影響を与えないようにすることは、直接的な責任になります。 強力な CI/CD ソリューション、強力なテスト、監視を実施することが重要になります。
ツールのオプション
クラスターのブートストラップ:
kubeadm: ゼロから Kubernetes クラスターを作成するための Kubernetes ツール。 標準のコンピューティング リソース (Linux または Windows) に適しています。
MicroK8s: 簡素化された管理と構成 ("LowOps")、Canonical により準拠した Kubernetes。
k3s: モノのインターネット (IoT) とエッジ コンピューティング用に構築された認定 Kubernetes ディストリビューション。
ストレージ:
- 使用可能な CSI ドライバーを探索します。クラウドからローカル ファイル共有まで、要件に合った多くのオプションがあります。
ネットワーク :
- 使用可能なアドオンの完全な一覧は、ネットワークのアドオンに関するページにあります。 一般的なオプションとしては、単純なオーバーレイ ネットワークである Flannel や、完全なネットワーク スタックが提供される Calico などがあります。
考慮事項
運用コスト:
- マネージド サービスに付属するサポートがない場合、クラスター全体 (ストレージ、ネットワーク、アップグレード、監視、アプリケーション管理) を維持および運用するのは組織の責任となります。 運用コストは高いと考えられます。
構成の容易さ:
- ネットワーク、ストレージ、または監視のいずれのオプションかに関係なく、構成のすべての段階で多くのオープンソース オプションを評価することは不可避であり、複雑になる場合があります。 クラスター構成用に CI/CD を構成する場合は、さらなる考慮が必要になります。 これらの懸念のため、構成の容易さは、難しいと考えられます。
柔軟性:
- プロバイダーの制限なしに任意のオープンソース ツールやプラグインを使用できるため、ベアメタル Kubernetes の柔軟性は高くなります。
Azure Stack Edge での Kubernetes
Azure Stack Edge Pro デバイス上に構成されてデプロイされている Kubernetes クラスター (マスター VM とワーカー VM)。
Azure Stack Edge Pro デバイスでは、コンピューティング、ストレージ、ネットワーク、およびハードウェアアクセラレータによる機械学習 (ML) などの Azure の機能が任意のエッジ ロケーションに提供されます。 Pro GPU、Pro-R、および Mini-R デバイスのいずれかでコンピューティング ロールが有効になると、Kubernetes クラスターを作成できます。 Kubernetes クラスターのアップグレード管理は、デバイスで使用可能な標準の更新プログラムを使用して実行できます。
シナリオ
既存の (Linux) IoT ワークロードを使用している場合、またはエッジで ML 用のコンピューティングをアップグレードする場合に適しています。 クラスターをより細かく制御する必要がない場合は、このオプションを選択することをお勧めします。
既定では、管理者のアクセス許可は付与されません。 製品グループを使用して特定の例外を作成することもできますが、その場合、クラスターを細かく制御することは難しくなります。
Azure Stack Edge デバイスがまだない場合は、追加のコストが発生します。 Azure Stack Edge デバイスを探索し、自分のコンピューティング要件に適合するものがあるかどうかを確認します。
Calico、MetalLB、および CoreDNS は、Kubernetes のネットワークのためにデバイス上にインストールされます。
現時点では、Linux ワークロードのみがサポートされています。
Kubernetes に加えて、Azure Stack Edge には IoT ランタイムも付属します。これは、IoT Edge を介して Azure Stack Edge クラスターにワークロードをデプロイすることもできることを意味します。
現在、2 ノード クラスターのサポートは利用できません。 これは実質的に、このオプションが高可用性 (HA) ソリューションでは "ない" ことを意味します。
考慮事項
運用コスト:
- デバイスに付属するサポートを利用することで、運用コストは最小限に抑えられ、ワークロード管理が対象になります。
構成の容易さ:
- 事前構成されて適切に文書化された Kubernetes クラスターのデプロイにより、ベアメタル Kubernetes と比較して、必要な構成が簡素化されます。
柔軟性:
- 構成は既に設定されており、管理者のアクセス許可は既定では付与されません。 基本構成を超えて製品グループの関与が必要になる場合があり、また基盤となるインフラストラクチャは Azure Stack Edge Pro デバイスである必要があります。これにより、このオプションの柔軟性は低下します。
AKS ハイブリッド
AKS ハイブリッドは、Windows サーバーまたは Azure Stack HCI 20H2 以降を実行しているマルチノード クラスターに、1 つまたは複数の Kubernetes クラスターを (Windows Admin Center または PowerShell モジュールを使用して) デプロイするために使用する定義済みの設定および構成セットです。
シナリオ
Microsoft がサポートするクラスターを互換性のあるデバイス (Azure Stack HCI または Windows サーバー) 上で簡素化・合理化するのに最適です。 ベアメタル Kubernetes オプションと比較した場合、柔軟性は低下しますが、運用と構成の複雑さは軽減されます。
考慮事項
運用コスト:
- Microsoft でサポートされているクラスターでは、運用コストは最小限に抑えられます。
構成の容易さ:
- 事前構成されて適切に文書化された Kubernetes クラスターのデプロイにより、ベアメタル Kubernetes と比較して、必要な構成が簡素化されます。
柔軟性:
- クラスター構成自体は設定されていますが、管理者のアクセス許可は付与されます。 基盤となるインフラストラクチャは、Azure Stack HCI または Windows サーバーのいずれかである必要があります。 2019。このオプションは、Azure Stack Edge 上の Kubernetes よりは柔軟性が高く、ベアメタル Kubernetes よりは柔軟性が低くなります。
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
プリンシパル作成者:
- Prabhjot Kaur | プリンシパル クラウド ソリューション アーキテクト
パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。
次の手順
詳細については、次の記事を参照してください。
IoT Edge モジュールを使用して、Azure Stack Edge Pro GPU デバイスで Kubernetes ステートレス アプリケーションを実行する
Azure Stack Edge Pro GPU デバイスで kubectl を使用して Kubernetes ステートレス アプリケーションをデプロイする