16
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

KubeEdgeとはなにか

Last updated at Posted at 2020-03-18

はじめに

仕事の一環で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を構築する(再)を書きました。

16
10
0

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
  3. You can use dark theme
What you can do with signing up
16
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?