北京時間の 2022 年 9 月 29 日に、KubeEdge はバージョン 1.12 をリリースしました。新しいバージョンでは多くの機能拡張が追加されており、スケーラビリティ、安定性、セキュリティが大幅に向上しています。今回のKubeEdgeアーキテクチャ全体の大幅アップグレードでは、 「DaoCloud Daoke」が昨年提案し、研究開発に深く関わってきたDMIデバイス管理機能がコミュニティから非常に高い期待と評価を受けています。
01
KubeEdge v1.12
リリースノート
新しいエッジ デバイス管理インターフェイス DMI (アルファ)
DMI インターフェイスにより、KubeEdge の IoT デバイス管理がクラウドネイティブな方法で可能になり、その機能はデバイスのライフサイクル管理、デバイスの操作、デバイス データ管理をカバーします。
デバイス ライフサイクル管理:運用を簡素化し、IoT デバイスのライフサイクル管理をポッドの管理と同じくらい簡単にします。
デバイス操作: Kubernetes API を通じてデバイスを操作する機能を提供します。
デバイス データ管理:デバイス管理とは別に、データをローカル アプリケーションで使用したり、特別なトンネルを通じてクラウドに同期したりできます。
DMI インターフェイスを介して、開発者は DMI インターフェイス標準に従って対応するプロトコルのマッパーを実装し、クラウド上で対応する API 操作を実行するだけでデバイスを KubeEdge に接続し、KubeEdge エッジによってもたらされるクラウドネイティブ デバイスを利用できます。コンピューティング プラットフォームの管理エクスペリエンス。
次世代の Edge が正式リリース: より多くのシナリオに適しています
Edged モジュールは、エッジ側の軽量コンテナ アプリケーション エンジンであり、エッジ ポッド アプリケーションのライフサイクル管理と、ノード ステータスを収集および報告する機能を実現するために使用されます。エッジの軽量化を確保するために、新しいバージョンの Edged はネイティブ Kubelet で最適化および調整されており、コミット履歴が保持されており、信頼性の高い伝送トンネルを通じてクラウドと通信します。
EdgeMesh の高可用性モードの導入
EdgeMesh HA モードは、以前の集中中継モードと比較して、複数の中継ノードを設定できます。一部の中継ノードに障害が発生しても、他の中継ノードが中継サービスを提供し続けることができるため、単一障害点が回避され、システムの安定性が大幅に向上します。
また、中継ノードが遠すぎると遅延が大きくなります。HA リレー ノード機能により中間ノードが提供され、遅延が短縮されます。mDNS を使用すると、ローカル エリア ネットワーク内のノードが、外部ネットワークに接続せずに相互に通信できるようになります。
クラウドからのエッジ ノードのアップグレードのサポート (アルファ版)
クラウドからエッジ ノードをアップグレードするために、NodeUpgradeJob v1alpha1 API がバージョン 1.12 に追加されました。NodeUpgradeJob API とコントローラーを使用すると、ユーザーは次のことができます。
-
NodeUpgradeJob API を使用して、選択したエッジ ノードをクラウドからアップグレードします。
-
アップグレードが失敗した場合は、元のバージョンにロールバックします。
サイドエンド Kube-API 認証のサポート (アルファ)
エッジ側では、EdgeCore コンポーネントは、MetaServer モジュールを通じて外部にエッジネイティブ インターフェイス機能を提供します。エッジ側のセキュリティを統合および強化するには、ユーザーがエッジ ネイティブ インターフェイスを使用してネイティブ K8s API にアクセスするときに、ユーザー リクエストを認証して認証する必要があります。
新しいバージョンの MetaServer は、HTTPS 経由でサービスを開始および提供できます。ユーザー リクエストはトークンによって認証される必要があります。未認証または認証されたリクエストにはアクセスできません。セキュリティ上の理由から、現在のバージョンのトークン認証方法ではエッジ ノードがオンラインのままである必要があり、オフライン シナリオでの認証要求はデフォルトで拒否されます。
新しい GigE マッパー
GigE Vision プロトコル カメラにアクセスするための Golang 実装を備えた GigE デバイス マッパーを提供します。
02
エッジデバイス管理
デバイス管理インターフェイス
KubeEdge のデバイス管理設計は非常に軽量であり、関連する制御コンポーネントには、「クラウド コア」のデバイス コントローラー コンポーネントと「エッジ コア」のデバイス ツイン コンポーネントが含まれます。エッジ デバイス管理は、データ収集、データ クリーニング、クラウドへのデータ移行、データ セキュリティなどの問題を効果的に解決しますが、実際の使用シナリオでは、最適化および改善が必要な内容がまだいくつかあります。
1. デバイス管理プレーンのデータとビジネスプレーンの結合
-
大規模なシナリオではパフォーマンスの問題が発生する
-
ws クラウド エッジ チャネルを占有します
-
etcd の読み取りおよび書き込みパフォーマンスのボトルネック
2. 機器構成情報の管理能力が不十分
-
デバイス情報はconfigmapを通じてマッパーに送信されます
-
Configmap と CRD には情報の冗長性があります
-
マッパーによる mqtt メッセージの処理には情報の冗長性があります
3. デバイスのインターフェースが完璧ではない
-
Mapperのアクセス方法はmqttのみです
-
デバイスのインターフェースが統一されておらず、アクセスの適応が難しい
-
データ処理が柔軟性に欠ける
上記の問題を解決および回避するために、「DaoCloud Daoke」は、昨年のクラウドネイティブ エッジ コンピューティング フォーラムで、デバイス管理インターフェイスを統合および再構築する提案を提出し、同時にリファレンス アーキテクチャを提供し、実装しました。次の機能で議論や研究開発に深く参加します。最終的に、「DaoCloud Daoke」とコミュニティは、デバイス管理インターフェイスを統合し、エッジ コンピューティング シナリオでデバイス管理機能を最適化し、クラウドネイティブを実現するために使用される、新しいデバイス管理モードであるデバイス管理インターフェイス (略して DMI) を提案しました。デバイス管理、デバイスデータデバイスデジタルツイン管理プラットフォームをカバーするテクノロジーベースであり、同時にEdgeCoreとMapperの間の統合された接続エントリが定義され、EdgeCoreとMapperはそれぞれ上流データフローと下流データのサーバーとクライアントを実現しますフローし、DMI の特定の機能を実行します。
主に次の機能が含まれます。
クラウドネイティブ: K8s リソースとして、デバイスは仮想化デジタル ツインを生成し、K8s に基づいてシミュレートできます。
デバイス管理:ポッドの管理など、デバイスのライフサイクルを管理し、ユーザーの操作を簡素化します。
機器操作:機器操作には 2 つの入り口があり、K8 (マン-マシン、マシン-マシン) および機器相互作用制御機能も導入のために提供されます。
デバイスデータ:エッジ側のデプロイでは対応するデータを取得でき、デバイスデータは場合によってはクラウドにアップロードされます。
アーキテクチャ図:
KubeEdge アーキテクチャにおける DMI の位置付けを図に示します。DMI は、Kubernetes の CNI、CSI、CRI、およびその他のインターフェイスに似ており、EdgeCore と Mapper の間の一連の内部 API インターフェイスと、外部アプリケーションが Mapper にアクセスするための統合 API インターフェイスを定義します。内部インターフェイスの最下層は、gRPC と UDS を組み合わせることによって実装され、外部 API インターフェイスは、mqtt と REST の 2 つのアクセス方法をサポートします。
Mapper が使用するベアラーと実装方法の種類に関係なく、DMI で定義されたアップリンクおよびダウンリンク データ インターフェイスを実装している限り、KubeEdge クラウドネイティブ エッジ コンピューティング プラットフォームに接続し、クラウドネイティブな方法でデバイスを管理できます。
「DaoCloud Taoke」の寄稿・参加
このリリースでは、「DaoCloud Daoke」は主に、 DMI アルファ版のマッパー管理モジュールとデバイス管理モジュール、および対応するマッパー デモを提供しました。具体的な機能は次のとおりです。
-
デバイスの追加、削除、変更を完了するために DMI に DeviceManager インターフェイスを実装しました。
-
Modbus デバイス プロトコルを例として、完全なマッパー デモが実装されています。
-
元の mqtt コンポーネントを置き換え、gRPC を使用して Kubeedge と通信します。
-
マッパーの Go バージョンは 1.17 にアップグレードされ、Kubeedge v1.12 と互換性があります。
-
Mappers プロジェクトの構造を調整して最適化を続けると、その後の Mappers の開発が適切にサポートされます。
アルファ版には主に以下の内容が含まれます。
1. 管理プレーンのデータはビジネスプレーンのデータから分離されます。
-
管理プレーン データは、ほとんど変更を加えずに KubeEdge の ETCD に保存されます。
2. 管理データには次のものが含まれます。
-
メタデータ
-
属性
-
構成
-
州
-
ライフサイクル
3. デバイス情報の管理:
-
KubeEdge sqlite のキャッシュ。
-
ノード+プロトコルを通じてマッパーを指定します。
-
マッパー登録インターフェイスの戻り値を通じて初期化します。
-
デバイス インターフェイスを追加または削除して、Mapper に送信します。
4. マッパーは、grpc+UDS を介して REST アクセス方式を実装します。
次に、ベータ版の開発に引き続き参加し、コミュニティと協力して デバイス データ管理モジュールの徹底的な開発を進めていきます。
KubeEdge コミュニティに参加する
KubeEdge は、業界初のクラウド ネイティブ エッジ コンピューティング フレームワークであり、Cloud Native Computing Foundation 内の唯一のインキュベーション レベル エッジ コンピューティング オープン ソース プロジェクトです。アプリケーション)、業界初のクラウド ネイティブな衛星と地上の共同衛星、業界初のクラウド ネイティブです。車両とクラウドの協調車両、業界初のクラウドネイティブ油田プロジェクト、業界初のオープンソース分散協調型 AI フレームワーク Sedna、業界初のエッジクラウド協調型生涯学習パラダイムなど、継続的な開発と革新に取り組んでいます。
KubeEdge Web サイト:
https://kubeedge.io
GitHub アドレス:
https://github.com/kubeedge/kubeedge
スラックアドレス:
https://kubeedge.slack.com
メーリングリスト :
https://groups.google.com/forum/#!forum/kubeedge
毎週のコミュニティミーティング:
https://zoom.us/j/4167237304
ツイッター :
https://twitter.com/KubeEdge
文書アドレス:
https://docs.kubeedge.io/en/latest/
この記事の著者
リウ・チェンリン
現在の「DaoCloud Daoke」DEC バックエンド R&D エンジニア
キューブエッジメンバー
参考文献:
[1] KubeEdge v1.12 リリース: 安定性、セキュリティ、スケーラビリティがすべて大幅に改善されました
[2] エッジの新たな未来を受け入れる|Cloud Native Edge Computing Summit を振り返る
[3] 多分野の汎用エッジコンピューティングエコシステムを共同構築するクラウドネイティブエッジコンピューティングフォーラムが成功裏に開催されました