エッジに導入するKubernetesのアーキテクチャパターン

エッジでのKubernetesアーキテクチャ要件の検討

Christian Melendez
エッジに導入するKubernetesのアーキテクチャパターン

エッジコンピューティングは普及の一途をたどっており、エンタープライズアプリケーションの開発企業やハイパースケールクラウドプロバイダ(GoogleクラウドやマイクロソフトのAzureなど)は、k3s軽量Kubernetes [i]は、Akri [II]、Google Anthosなどのオープンソースかして使用する、れでのKubernetesにに賭けています。ただし、企業がエッジでのワークロードとしてKubernetesを使用して管理する一貫したアプローチを導入したいと考えると、さまざまな課題が表面化します。

例えば、企業がエッジコンピューティングを選択するのは、低遅延、データプライバシー、帯域のという3つの理由からです。自律走行車のようなモノのインターネット(IoT)アプリケーション用途のためなど、エッジでのユースケースのアーキテクチャを検討する際には、これらが重要な要因となります。このような場合、極めて迅速な意思決定が必要であり、そうでなければ、悲劇的な結果が生じる可能性があります。このため、エッジワークロードの処理やクラウドサービスへのインターコネクション(相互接続)を想定したとおり行うには、パフォーマンスが高く、低遅延のプライベートネットワークが非常に重要な役割を果たします。

Equinix Fabric™について

Equinix Fabric™は、Platform Equinix®上で、分散型のインフラストラクチャとデジタルエコシステムを安全かつダイナミックに直接接続します。1つの都市圏内またはグローバルに存在するEquinix Fabric™の任意の2拠点間で、ソフトウェア定義のインターコネクションを介してデータセンター間のネットワーク接続をオンデマンドで確立します。

ダウンロード
Equinix Fabric

では、Platform Equinix®上のエッジでのKubernetesアーキテクチャの要件を探ることから始めましょう。

エッジでのKubernetesアーキテクチャの導入を成功させるための要件

エッジでは、一般に、ただのセンサーに過ぎない大多数のIoTデバイスを使用する場合のように、フットプリントがより小さいサーバまたはデバイスを使用して作業を行う必要があります。これらは、Kubernetesを効果的に実行するのに十分なキャパシティを備えていません。また、遅延の問題、帯域の制限、またはデバイスの切断のいずれかが原因で、接続が制約になる場合もあることを考慮に入れる必要があります。

アーキテクチャが異なるコンポーネントとロケーションの間のインターコネクションが、最初の要件となります。これに該当するのは、例えば、お客様のオンプレミスインフラストラクチャと、クラウドリソースやエッジリソースとの間の接続です。パブリックインターネットは、接続ルートが予測不能であるため、エッジでのネットワークとして頼りにすることができません。そのため、リソース間の通信のために、プライベートな直接回線が必要です。また、ほかの誰かがネットワークトラフィックの「スニッフィング」を行うリスクを低減するというセキュリティ上の理由で、プライベート接続が必要な場合があります。

加えて、Kubernetesの魅力をこれほど高めている重要な機能の1つはオートメーションです。ゆえに、クラウド環境でツール(Terraformなど)を使用して行っているように、ハードウェアを自動的にプロビジョニングする手段も利用できるとすれば役立つはずです。こうしたクラウドツールでは、ソフトウェアを使用して任意のクラウド、インフラストラクチャ、サービスのプロビジョニングを行います。最後に、Kubernetesでエッジのワークロードを最適化するためには、オープンソースプロジェクト(k3s、microk8s、、KubeEdgeなど)の助けが必要になります。これらのプロジェクトが全体像の中のどの部分で、どのような役割を担うかを説明してゆきます。[iii]

 

企業が、Kubernetesを使用してエッジでワークロードを管理するための一貫したアプローチを採用したいと考えると、さまざまな課題が表面化します。"

以下では、これらの要件を網羅するアーキテクチャ上の3つのパターンについて探りましょう。

Kubernetesのエッジアーキテクチャパターン

以下は、エッジワークロードのためにKubernetesをどのように利用できるかの最適な範例となる3つのアーキテクチャパターンです。各パターンと共に、それぞれのアプリケーション要件(低遅延、データのプライバシー、帯域のスケーラビリティ)に適合するアーキテクチャを構築するために必要となるさまざまな要素をすべて示しています。

エッジでのKubernetesクラスタ

Kubernetesの利用を開始する最も簡単な方法は、エッジにKubernetesクラスタ全体を展開することです。ただし、高可用性クラスタを展開する代わりに、k3sやmicrok8stoなどのプロジェクトを利用して、単一サーバマシンに最小バージョンのKubernetesを実装することができます。そして、Google Anthosのようなプラットフォームを使用して、複数クラスタ上のコンテナワークロードの管理とオーケストレーションを行えます。エクイニクスでは、Google Anthosチームと共同作業を行って、Equinix Fabric™のソフトウェア定義のインターコネクション(相互接続)、Network Edge仮想ネットワークサービス、Equinix Metal™(自動化された、サービスとしてのベアメタル)を使用したKubernetesの導入を支援してきました。例えば、Equinix Metal上にAnthosを自動的に導入するための基本的なTerraformテンプレートをGitHubで入手していただけます。

次の図は、クラウドプロバイダで運用されているKubernetesクラスタ、Equinix Metalでk3sを使用して実行されている最小限のKubernetesクラスタ、Equinix Fabricを使用したインターコネクションがある場合に、このパターンがどのようになるかを示しています。

Equinix Metalにk3sをセットアップする方法については、エクイニクスのドキュメントページに、より多くの情報があります。さらに、Equinix Metal上でKubernetesクラスタをわずか10分で立ち上げる方法をガイドする別のチュートリアルもあります。

エッジでのKubernetesノード

エッジで使えるインフラストラクチャの種類が限られていて、そこにクラスタを配置できない場合は、エッジにKubernetesノードを置き、メインのKubernetesクラスタをクラウドプロバイダまたはコロケーションデータセンターに配置することができます。そして、Equinix Metalを使用して仮想マシンをエッジに展開することができます。

このパターンでは、ネットワークの重要性がさらに高まります。エッジにKubernetesノードを配置するために、Cloud Native Computing Foundation(CNCF)のKubeEdgeというインキュベーションプロジェクトを利用できます。[iv] KubeEdgeを使用すると、Kubernetesの制御プレーンをクラウドやKubernetesノードに配置できます。これをエッジのデバイス内に配置することさえ可能で、これはエージェントを使用してKubernetes APIとやり取りします。さらに、他のKubeEdgeコンポーネントは、小型センサーやモバイルデバイスのためのMQTT軽量メッセージングプロトコルを使用したIoTデバイスとの通信や、クラウドに対するデバイスの同期などの処理に役立ちます。

KubeEdgeに加えて、Kubernetes互換のエッジコンテナオーケストレータである、プロジェクトFLEDGE[v] の研究論文があります。この論文の筆者は、エッジでは適切なネットワーク実装がいかに重要であるかの結果を示しています。

次の図は、このパターンを表わしています。

エッジでのKubernetesデバイス

最後に、3つ目のパターンではエッジにデバイスがあります。このパターンでもKubeEdgeを利用できますが、最近Microsoftより、k3sをインストールできなかった小型デバイスに向けたオープンソースプロジェクトであるAkriがリリースされました。Akriでは、エッジにあるIPカメラやUSBデバイスなどのリーフデバイスを、ネイティブのKubernetesリソースとして登録します。エッジには依然として(前のパターンの図のように)Kubernetesノードが必要になりますが、デバイスにKubernetesをインストールする必要はありません。同じネットワークに接続されるそれらのデバイスは、Akriによって登録されるためです。

Kubernetesの魅力をこれほど高めている重要な機能の1つはオートメーションです。"

進化を続けるエッジでのKubernetes

Kubernetesは、異なる複数の環境にわたって共通の抽象化層を提供する点で優れています。多くの企業は、Kubernetesの拡張性、移植性、スケーラビリティに注目しています。ただし、エッジでのKubernetesは存在感を発揮し始めたばかりで、近年、k3s、microk8s、KubeEdge、Akriのようなプロジェクトと共に発展してきています。それでも、全体像にはまだ、デバイス検出、ガバナンス、データ管理などの不足している構成要素があります。

エクイニクスは、ソフトウェア定義のインターコネクションソリューション(Equinix Fabric)、数分のうちに導入可能な仮想ネットワークサービス(Network Edge)、ソフトウェア速度で用意できる物理インフラストラクチャ(Equinix Metal)の提供によって貢献しています。さらに、オートメーションが鍵であることをエクイニクスは認識しており、それが理由でTerraformコミュニティに投資してきています。さまざまな方法でKubernetesコミュニティにも貢献してきており、エクイニクスのCNCFへの投資は3倍に増加しました。

さらに詳細をお知りになりたいですか。Equinix Fabricのデータシートで詳細をご確認ください。

その他にお読みいただける資料:

Interconnection Amplifies the Value of Bare Metal Deployments(インターコネクションでベアメタル導入の価値を拡大)

ネットワーク構築と管理手法に革命

 

[i] k3s: Lightweight Kubernetes

[ii] Announcing Akri, an open-source project for building a connected edge with Kubernetes(Kubernetesによる接続型エッジ構築のためのオープンソースプロジェクト、Akriを発表)

[iii] MicroK8s – 開発者、エッジ、IoTに向けた管理作業不要のKubernetes

[iv]  KubeEdge

[v]  FLEDGE:低リソースエッジデバイスでのKubernetes互換コンテナオーケストレーション(FLEDGE:低リソースチップでのKubernetesバルセロナ連結オーケ不満)

多くの企業は、Kubernetesの拡張性、移植性、スケーラビリティに注目しています。"
Christian Melendez
Christian Melendez Global Solutions Architect