DeviceLink

一个DeviceLink由 3 部分组成:Adaptor,Model 和 Device spec。

  • adaptor - 适配器定义了要使用的适配器(即协议)以及实际设备应连接的节点。
  • model - 模型描述了设备的模型,它是设备模型的TypeMeta CRD。
  • device spec - 设备参数描述了如何连接到设备及其所需的设备属性或状态,这些参数由设备模型的 CRD 来定义。
  1. apiVersion: edge.cattle.io/v1alpha1
  2. kind: DeviceLink
  3. metadata:
  4. name: living-room-fan #设备名称,这里展示的例子是客厅风扇
  5. namespace: default
  6. spec:
  7. adaptor: # 适配器,定义了要使用的适配器(即协议)以及实际设备应连接的节点
  8. node: edge-worker # 选择设备连接的节点
  9. name: adaptors.edge.cattle.io/dummy
  10. model: # 模型,描述了设备的模型,它是设备模型的TypeMeta CRD
  11. apiVersion: "devices.edge.cattle.io/v1alpha1"
  12. kind: "DummySpecialDevice"
  13. template: #设备模板
  14. metadata:
  15. labels:
  16. device: living-room-fan
  17. spec: # 设备参数,描述了如何连接到设备及其所需的设备属性或状态,这些参数由设备模型的CRD来定义
  18. protocol:
  19. location: "living_room"
  20. gear: slow
  21. "on": true

工作流程

下图显示了DeviceLink与 Octopus 的组件交互、使用 Octopus 连接设备、以及管理设备型号与适配器之间的连接的过程。

  1. metadata edge node devices
  2. ┌───────────┐
  3. <<Device Model>> ┌─▶│ adaptor ├┐ 6
  4. ┌──│ CRD 4 └┬──────────┘│◀──┐
  5. └───────────┘
  6. .
  7. 1 └───▶( ) user
  8. 5 ' │
  9. │ DeviceLink │
  10. │ ├───────────────────┤ │ │
  11. └─▷│ Model │ │
  12. ├───────────────────┤ │ │
  13. │ Adaptor │ │
  14. ├───────────────────┤ │ │
  15. │ Template │─────────────┬─────────────────┐ │
  16. └───────────────────┘ 2│ 3│ │ │
  17. │ │ │ ─ ─
  18. ▼ │ └─────┐ │
  19. ┌───────────────────┐ │ │
  20. │ brain │ │ │ │
  21. └───────────────────┘ │ │
  22. │ │ │ │
  23. ├─▣ node existed? │ │
  24. │ ──────────────── │ │ │
  25. │ │ │
  26. └─▣ model existed? │ │ │
  27. ──────────────── │ │
  28. │ │ │
  29. │ │ octopus
  30. ▼ │ │
  31. ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ ┌───────────────────┐ │
  32. <<Device Model>> ┌──────────│ limb ├┐ │ 7 │
  33. │ Instance │ │ └┬──────────────────┘│◀─┘
  34. ┌───────────────────┐ 8 │ └┬──────────────────┘ │
  35. │ Spec │◀─────────┘ │
  36. ├───────────────────┤ ├─▣ adaptor existed? │
  37. │ Status │ │ ─────────────────
  38. └───────────────────┘ │ │
  39. ├─▣ device created?
  40. │ ───────────────── │
  41. └─▣ device connected? │
  42. ───────────────── ─ ─