documentation.suse.com / Documentación de SUSE Edge / Componentes / Akri

14 Akri

Akri es un proyecto experimental de la CNCF cuyo objetivo es detectar dispositivos periféricos para presentarlos como recursos nativos de Kubernetes. También permite programar un pod o un trabajo para cada dispositivo detectado. Los dispositivos pueden ser locales o estar conectados en red, y pueden utilizar una amplia variedad de protocolos.

La documentación original de Akri está en: https://docs.akri.sh

14.1 ¿Cómo se usa Akri en SUSE Edge?

Aviso
Aviso

Akri es actualmente una tecnología en fase preliminar en la pila de SUSE Edge.

Akri está disponible como parte de la pila de Edge siempre que sea necesario detectar y programar cargas de trabajo en dispositivos periféricos.

14.2 Instalación de Akri

Akri está disponible como un chart de Helm dentro del repositorio de Helm de Edge. La forma recomendada de configurar Akri es utilizando el chart de Helm proporcionado para desplegar los diferentes componentes (agente, controlador, gestores de descubrimiento) y, a continuación, utilizar su mecanismo de despliegue preferido para desplegar las CRD de configuración de Akri.

14.3 Configuración de Akri

Akri se configura mediante un objeto akri.sh/Configuration. En él, se recopila toda la información sobre cómo detectar los dispositivos, así como indicaciones de qué hacer cuando se detecta uno compatible.

A continuación se muestra un ejemplo de la configuración con todos los campos explicados:

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

Esta parte describe la configuración del controlador de detección. Debe especificar su nombre (los controladores disponibles como parte del chart de Akri son udev, opcua y onvif). discoveryDetails es específico de cada controlador; consulte la documentación del controlador para saber cómo configurarlo.

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

Esta sección define la carga de trabajo que se desplegará para cada dispositivo detectado. El ejemplo muestra una versión mínima de una configuración de pod en brokerPodSpec. Aquí se pueden utilizar todos los campos habituales de la especificación de un pod. También muestra la sintaxis específica de Akri para solicitar el dispositivo en la sección resources.

Como alternativa, puede utilizar un trabajo en lugar de un pod, utilizando la clave brokerJobSpec y proporcionándole la parte específica de un trabajo.

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

Estas dos secciones muestran cómo configurar Akri para desplegar un servicio por agente (instanceService) o apuntando a todos los agentes (configurationService). Contienen todos los elementos relacionados con un servicio habitual.

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

El campo brokerProperties es un almacén de claves/valores que se expondrán como variables de entorno adicionales a cualquier pod que solicite un dispositivo detectado.

La capacidad es el número permitido de usuarios simultáneos de un dispositivo detectado.

  brokerProperties:
    key: value
  capacity: 1

14.4 Escritura y despliegue de controladores de detección adicionales

En caso de que el protocolo utilizado por su dispositivo no esté cubierto por un controlador de detección existente, puede escribir su propio protocolo utilizando la guía de desarrollo de controladores.

14.5 Extensión de panel de control Akri de Rancher

La extensión de panel de control Akri permite utilizar la interfaz de usuario del panel de control de Rancher para gestionar y supervisar dispositivos periféricos y ejecutar cargas de trabajo una vez que se han detectado dichos dispositivos.

Consulte el Capítulo 6, Extensiones de panel de control de Rancher para obtener instrucciones sobre la instalación.

Una vez instalada la extensión, puede dirigirse a cualquier clúster gestionado compatible con Akri utilizando el explorador de clústeres. En el grupo de navegación Akri, puede ver las secciones Configurations (Configuraciones) e Instances (Instancias).

configuraciones de extensión de akri

La lista de configuraciones proporciona información sobre Configuration Discovery Handler (gestor de detección de configuraciones) y el número de instancias. Al hacer clic en el nombre, se abre una página con los detalles de la configuración.

detalle de configuración de la extensión de akri

También puede editar o crear una nueva configuración. La extensión le permite seleccionar el controlador de detección, configurar el pod o el trabajo del agente, personalizar las configuraciones y los servicios de instancia, y establecer la capacidad de configuración.

edición de configuración de extensión de akri

Los dispositivos descubiertos se muestran en la lista Instances (Instancias).

lista de instancias de extensión de akri

Al hacer clic en un nombre de Instance (Instancia), se abre una página de detalles donde se muestran las cargas de trabajo y el servicio de la instancia.

detalle de instancia de extensión de akri
Documentation survey