Upgrade to Pro — share decks privately, control downloads, hide ads and more …

猫でもわかる KubeEdge #InfraStudy / Infra Study Meetup 7th

y_taka_23
October 23, 2020

猫でもわかる KubeEdge #InfraStudy / Infra Study Meetup 7th

Infra Study Meetup #7 で使用したスライドです。

Kubernetes はその高い拡張性を背景として、コンテナオーケストレータのデファクトスタンダートの地位を獲得しました。しかし、Kubernetes の Node をそのままエッジデバイスの管理に延伸しようとすると、ネットワークの不安定性が課題になります。

このようなエッジに特有の課題を解決するため、CNCF の IoT Edge Working Group 主導で開発が進められている OSS として KubeEdge があります。本発表では、KubeEdge のアーキテクチャ上の特徴や従来の Kubernetes とのコントロールフローの違いについて解説します。

イベント概要:https://forkwell.connpass.com/event/190074/
録画:https://www.youtube.com/watch?v=iw_bSiv2Vl0

y_taka_23

October 23, 2020
Tweet

More Decks by y_taka_23

Other Decks in Technology

Transcript

  1. #InfraStudy Kubernetes 大人気の理由 • 分散システムとしての優れた拡張性 ◦ API Server (etcd) のみが状態を保持

    ◦ 他コンポーネントは API Server を Watch ◦ 同じ枠組みでカスタムコントローラが追加可能 • The Platform of Platforms ◦ 今や様々な CloudNative 的な運用の基盤に Custom Controller
  2. #InfraStudy K8s をエッジに適用する際の問題 • エッジデバイスは非力で不安定 ◦ 情報の同期がいつ行われるのかコントロールしづらい ◦ 瞬停したりするとエッジ側のイベント情報が失われる •

    通常の Pod-Service-Pod の通信が困難 ◦ エッジがネットワーク接続を持つ瞬間しか成功しない ◦ 相手エッジがいつネットワークに復帰するかわからない
  3. #InfraStudy KubeEdge の特徴 • CNCF Incubating Project ◦ IoT Edge

    ワーキンググループ (WG) が担当 ◦ Huawei の Intelligent Edge Fabric (IEF) が出自 • 通常の Kubernetes Node とは仕組みがかなり異なる ◦ Kubelet 相当の EdgeD を中心に複数の追加機能 ◦ K3s は同じくエッジ用だが通常の Kubernetes に近い
  4. #InfraStudy Edge Controller Device Controller Cloud Hub Edge Hub Meta

    Controller Device Twin EdgeD Event Bus CRI (Docker / containerd / CRI-O)
  5. #InfraStudy Device と DeviceModel • エッジデバイスを CustomResource で抽象化 ◦ Device:個々のデバイスに対応

    ◦ DeviceModel:送受信するメッセージなどのテンプレート • Pod-Pod を介さずにデバイスとやりとり ◦ クラウド側では Device の status.twins を読み書きする ◦ エッジ側では MQTT で Pub / Sub される
  6. #InfraStudy Device の Manifest apiVersion: device.kubeedge.io/v1alpha2 kind: Device metadata: name:

    counter spec: deviceModelRef: name: counter-model status: twins: - propertyName: status desired: metadata: type: string value: "OFF"
  7. #InfraStudy Device の Manifest apiVersion: device.kubeedge.io/v1alpha2 kind: Device metadata: name:

    counter spec: deviceModelRef: name: counter-model status: twins: - propertyName: status desired: metadata: type: string value: "OFF" 通信するデータ
  8. #InfraStudy まとめ • Kubernetes をエッジに拡張する試み ◦ Node が切り離された状態でも動ける必要性 • 回線断に強い

    KubeEdge のアーキテクチャ ◦ Controller を通して接続、Node 内にも DB で永続化 • 対デバイス通信の Kubernetes Native な扱い ◦ Device / DeviceModel による MQTT 通信の抽象化