documentation.suse.com / SUSE Edge 文档 / 组件 / Akri

14 Akri

Akri 是一个 CNCF 沙箱项目,旨在发现叶设备并将其呈现为 Kubernetes 原生资源。它还允许为每个发现的设备调度一个 Pod 或作业。设备可以在节点本地,也可以联网,并可以使用多种协议。

有关 Akri 的上游文档,请访问 https://docs.akri.sh

14.1 SUSE Edge 如何使用 Akri?

警告
警告

Akri 目前在 SUSE Edge 堆栈中以技术预览的形式提供。

每当需要发现叶设备以及针对叶设备调度工作负载时,都可以使用 Edge 堆栈中包含的 Akri。

14.2 安装 Akri

Akri 在 Edge Helm 储存库中作为 Helm chart 提供。建议的 Akri 配置方法是使用给定的 Helm chart 部署不同的组件(代理、控制器、发现处理程序),然后使用您偏好的部署机制部署 Akri 的配置 CRD。

14.3 配置 Akri

使用 akri.sh/Configuration 对象来配置 Akri,该对象包含有关如何发现设备,以及发现了匹配的设备时应执行什么操作的所有信息。

下面列出了示例配置的明细,其中解释了所有字段:

apiVersion: akri.sh/v0
kind: Configuration
metadata:
  name: sample-configuration
spec:

此部分描述发现处理程序的配置,您必须指定处理程序的名称(作为 Akri chart 一部分提供的处理程序包括 udevopcuaonvif)。discoveryDetails 与特定的处理程序相关,有关其配置方法,请参见处理程序的文档。

  discoveryHandler:
    name: debugEcho
    discoveryDetails: |+
      descriptions:
        - "foo"
        - "bar"

此部分定义要为每个已发现设备部署的工作负载。该示例显示了 brokerPodSpecPod 配置的最低版本,在此处可以使用 Pod 规范的所有常规字段。其中还显示了 resources 部分中用于请求设备的 Akri 特定语法。

您也可以使用作业来代替 Pod,方法是改用 brokerJobSpec 键,并在其中提供作业的规范部分。

  brokerSpec:
    brokerPodSpec:
      containers:
      - name: broker-container
        image: rancher/hello-world
        resources:
          requests:
            "{{PLACEHOLDER}}" : "1"
          limits:
            "{{PLACEHOLDER}}" : "1"

这两个部分显示如何配置 Akri 以便为每个中介程序部署一个服务 (instanceService),或指向所有中介程序 (configurationService)。这些部分包含与常规服务相关的所有元素。

  instanceServiceSpec:
    type: ClusterIp
    ports:
    - name: http
      port: 80
      protocol: tcp
      targetPort: 80
  configurationServiceSpec:
    type: ClusterIp
    ports:
    - name: https
      port: 443
      protocol: tcp
      targetPort: 443

brokerProperties 字段是一个键/值存储区,它将作为附加环境变量公开给请求已发现设备的任何 Pod。

capacity 是已发现设备的并发用户的允许数量。

  brokerProperties:
    key: value
  capacity: 1

14.4 编写和部署更多发现处理程序

如果现有的发现处理程序无法涵盖您的设备使用的协议,您可以遵循处理程序开发指南编写自己的发现处理程序。

14.5 Akri Rancher 仪表板扩展

Akri 仪表板扩展允许您使用 Rancher 仪表板用户界面来管理和监控叶设备,并在发现这些设备后运行工作负载。

请参见第 6 章 “Rancher 仪表板扩展获取安装指导。

安装扩展后,您可以使用群集资源管理器导航到任何已启用 Akri 的受管群集。在 Akri 导航组下,可以看到 Configurations(配置)和 Instances(实例)部分。

Akri 扩展配置

配置列表提供了有关配置发现处理程序和实例数量的信息。单击名称会打开配置细节页面。

Akri 扩展配置细节

您还可以编辑或创建新的配置。扩展允许您选择发现处理程序、设置中介程序 Pod 或作业、自定义配置和实例服务,以及设置配置容量。

Akri 扩展配置编辑

Instances(实例)列表中会列出已发现的设备。

Akri 扩展实例列表

单击实例名称会打开细节页面,在其中可以查看工作负载和实例服务。

Akri 扩展实例细节
Documentation survey