LoginSignup
9

More than 1 year has passed since last update.

posted at

updated at

KubeEdgeとはなにか

はじめに

仕事の一環でKubeEdgeを試す機会があったので、公式ドキュメントを読み解いてみます。

KubeEdgeとは

KubeEdgeCNCFのサンドボックスプロジェクトとして開発が進められている、コンテナオーケストレーションをエッジに拡張するためのOSSです。
KubeEdgeはK8s上に構築され、エッジにネットワークやアプリケーションのデプロイ、エッジとマスター(公式サイトではクラウドを前提としていました)のメタデータ同期を提供してくれるようです。また、オフラインモードやMQTTを用いたエッジに接続したデバイスとの連携もサポートするようです。
要するにクラウドとエッジでKubernetesクラスターを組んだ際に起きる、NW不安定問題や、外部デバイスとの連携をうまーくラッピングしてくれるのがKubeEdgeと考えていいでしょう。
類似のプロダクトでK3sがありますが、K3sはK8sを最大限軽量化しており、K8sとクラスタを組むことはできませんが、KubeEdgeならK8sとクラスタを組むことができるので、クラウドと同じクラスタにエッジを所属させる、みたいな使い方ができそうですね。
クラウドにコントロールプレーンを持って、エッジのアプリケーションを管理する、みたいなことはKubeEdgeでもK3sでもできるはずです。

KubeEdgeのコンポーネント

公式ドキュメントからの転載になりますが、以下のコンポーネント構成となるようです。
気になるところは、Amazon EKSやGoogle GKEなどマネージドのコントロールプレーンが使えるかですね。
ドキュメントの表記だけではいまいちわかりませんでした。。

  • Edged: エッジノードのエージェントで、コンテナ化されたアプリケーションを管理する
  • EdgeHub: クラウドサービスとインターフェースするためのWebソケットクライアント(EdgeControllerと同義)。クラウド側のリソース更新をエッジに同期したり、エッジホストのステータスをクラウドにレポートしたりする。
  • CloudHub: クラウドサイドの変更点をキャッシュしEdgeHubに送信するためのWebソケットサーバ。
  • EdgeController: エッジホストとPodメタデータを管理する拡張Kubernetesコントローラ。
  • EventBus: MQTTサーバ(mosquitto)とインターフェースするMQTTクライアント。他のコンポーネントにパブリッシュとサブスクライブの機能を提供する。
  • DeviceTwin: デバイスのステータスを保存したり、デバイスステータスをクラウドに同期する機能を提供する。また、アプリケーション向けにクエリインターフェースも提供する。
  • MetaManager: EdgedとEdgeHubの間のメッセージプロセッサ。軽量DB(SQLite)との間でメタデータの保存・取得する機能も有する。 image.png

KubeEdgeの動作要件

KubeEdgeのリポジトリをみると、KubeEdgeとK8s、Golangのバージョン要件は以下の通りのようです。
また、Setup from KubeEdge Installerを確認するとイントールに用いるKubeEdge installerのサポートOSは現状Ubuntuのみのようです。CentOSやRasPiはまだ対応中の模様。

KubeEdge MasterとWorkerのインストール要件は以下。

Cloud side (KubeEdge Master)

  • golang (If you want to compile KubeEdge)
  • Docker, or other runtime, such as containerd
  • kubeadm/ kubectl
  • Kubernetes cluster with kubeadm

Edge side (KubeEdge Worker Node)

  • golang (If you want to compile KubeEdge)
  • Docker, or other runtime, such as containerd
  • mosquitto : If you are just trying KubeEdge, this step can be skipped.

image.png
転載元:Github

image.png
転載元:Start Developing KubeEdge

まとめ

KubeEdgeの概要、コンポーネント、動作要件を調査しました。
次回はAmazon EKS上にKubeEdgeが構築できるのか試してみたいと思います。

次回
EKSでKubeEdgeを構築したら失敗した
KubeEdgeを構築する(再)を書きました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
9