CNCF Technical Steering Committee (TOC) は、インキュベーションプロジェクトとしてKubeEdgeを承認したことを発表した。KubeEdgeは、「クラウドとエッジデバイス間のネットワーク、アプリケーションデプロイメント、メタデータ同期のインフラストラクチャサポート」を提供することを目的としたプラットフォームであり、Kubernetesを基盤として使用する。
Futurewei (Huaweiの関連会社) という会社により開発が開始されたKubeEdgeは、2019年3月12日にCNCFサンドボックスに提案された。チームは2019年6月にv1.0をリリースし、四半期ごとにリリースする。KubeEdgeがCNCFの下でホストされた最初のエッジコンピューティングプロジェクトであったことは注目に値する。
KubeEdgeの目的は、エッジデバイスを「クラウドエクステンション」にすることである。KubeEdgeの機能には、Kubernetes APIの互換性、エッジ用に最適化されたノードコンポーネントとランタイム、双方向多重化メッセージングチャネル、エッジでのメタデータの永続性によるローカルデバイスの自律性が含まれる。また、複数のエッジプロトコルをサポートし、クラウドとエッジのアプリケーションとリソースの統合管理を提供しようとする。KubeEdgeは、「エッジでコンピューティングとインテリジェンスを有効にする」ことを望んでいると、プロジェクトメンテナの1人Sean Wang氏はKubeCon 2019の講演で述べている。
KubeEdgeデプロイメントには、クラウド上で実行されるコンポーネントとエッジノード上で実行されるコンポーネントの2つのグループのコンポーネントがある。クラウドコンポーネント (まとめてCloudCoreと呼ばれる) には、Edge Controller、Cloud Controller、Cloud Hubが含まれる。Hubはゲートウェイとして機能し、エッジノードからの接続を管理します。コントローラはオーケストレーターとして機能し、Edge ControllerはKubernetesAPIサーバとエッジの間のブリッジとしても機能する。CloudCoreはKubernetesデプロイメントのコントロールプレーンであり、ワーカノードはエッジにある。クラウドとエッジは「疎結合」であり、エッジ上のエージェントは「クラウドからネットワークが切断されたときにコンテナとIoTデバイスを自律的に管理し、ネットワークが再接続されたときにメタデータをクラウドと同期できます」。
画像提供: KubeEdge documentation
EdgeCoreと呼ばれるエッジコンポーネントには、Edge Hub、EdgeMesh、Metadata Manager、およびDeviceTwinが含まれる。EdgeMeshは、エッジのサービスメッシュとして機能し、サービス検出がエッジとエッジ間、エッジとクラウド間で一貫していることを保証する。エッジノードでは、Edgedと呼ばれる「軽量kubelet」がポッドライフサイクル管理を実行する。エッジデバイスAPIは、Kubernetesカスタムリソース定義 (CRD) としてモデル化される。ここで「DeviceModel」はデバイスの定義として機能し、「DeviceInstance」はデバイスのインスタンスを表す。KubeEdgeは、コントロールプレーンが高可用性をサポートできる場合、エッジでの軽量Kubernetesクラスタリングもサポートする。内部エッジ通信は、標準のMQTTプロトコルを通して行われる。
執筆時点では、KubeEdgeは、エッジノードのコンテナランタイムとしてDocker、containerd、CRI-O、およびVirtletをサポートしている。
KubeEdgeのソースコードはGitHubで入手できる。エッジコンピューティングのプラットフォームとしてのKubernetesの詳細については、IoT Edge Working Groupホワイトペーパーをご覧ください。