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? #
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).
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.
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.
Los dispositivos descubiertos se muestran en la lista Instances (Instancias).
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.