documentation.suse.com / Documentação do SUSE Edge / Componentes / Akri

14 Akri

Akri é um projeto Sandbox da CNCF que visa a descobrir dispositivos folha para apresentá-los como recursos nativos do Kubernetes. Ele também permite programar um pod ou job para cada dispositivo descoberto. Os dispositivos podem ser de nó local ou de rede e usar uma ampla variedade de protocolos.

A documentação upstream do Akri está disponível em: https://docs.akri.sh

14.1 Como o SUSE Edge usa o Akri?

Atenção
Atenção

Atualmente, o Akri está em prévia de tecnologia na pilha do SUSE Edge.

O Akri está disponível como parte da pilha do Edge sempre que é preciso descobrir e programar uma carga de trabalho com base nos dispositivos folha.

14.2 Instalando o Akri

O Akri está disponível como gráfico Helm no repositório Helm do Edge. A maneira recomendada de configurar o Akri é usar o gráfico Helm especificado para implantar os diversos componentes (agente, controlador, manipuladores de descoberta) e usar o mecanismo de implantação de sua preferência para implantar as CRDs de configuração do Akri.

14.3 Configurando o Akri

O Akri é configurado usando um objeto akri.sh/Configuration, que obtém todas as informações de como descobrir os dispositivos e do que fazer quando um correspondente é descoberto.

Veja abaixo um exemplo de configuração decomposto com a explicação de todos os campos:

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

Esta parte descreve a configuração do manipulador de descoberta. Você deve especificar o nome dele (os manipuladores disponíveis como parte do gráfico do Akri são udev, opcua e onvif). O discoveryDetails é específico do manipulador. Consulte a documentação do manipulador para saber como configurá-lo.

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

Esta seção define a carga de trabalho que será implantada para cada dispositivo descoberto. O exemplo mostra uma versão mínima da configuração do Pod em brokerPodSpec, todos os campos comuns da especificação de um pod podem ser usados aqui. Ele também mostra a sintaxe específica do Akri para solicitar o dispositivo na seção resources.

Se preferir, use um job no lugar do pod, com a chave brokerJobSpec, e insira a parte da especificação de um job para ele.

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

Estas duas seções mostram como configurar o Akri para implantar um serviço por agente (instanceService) ou apontar para todos os agentes (configurationService). Eles contêm todos os elementos que pertencem a um serviço comum.

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

O campo brokerProperties é um armazenamento de chave/valor que será exposto como variáveis de ambiente adicionais para um pod que solicita um dispositivo descoberto.

A capacidade é o número permitido de usuários simultâneos de um dispositivo descoberto.

  brokerProperties:
    key: value
  capacity: 1

14.4 Escrevendo e implantando manipuladores de descoberta adicionais

Se o protocolo usado por seu dispositivo não for coberto por um manipulador de descoberta existente, você pode escrever um próprio seguindo o guia de desenvolvimento de manipulador.

14.5 Extensão Akri do Rancher Dashboard

Com a extensão de dashboard Akri, você pode usar a interface de usuário do Rancher Dashboard para gerenciar e monitorar dispositivos folha e executar cargas de trabalho após a descoberta desses dispositivos.

Consulte o Capítulo 6, Extensões do Rancher Dashboard para ver a orientação de instalação.

Depois que a extensão for instalada, navegue até um cluster habilitado pelo Akri usando o explorador de clusters. No grupo de navegação Akri, você verá as seções Configurations (Configurações) e Instances (Instâncias).

configurações extensão akri

A lista de configurações apresenta informações sobre o manipulador de descoberta de configuração e o número de instâncias. Clique no nome para abrir a página de detalhes da configuração.

detalhes configuração extensão akri

Você também pode editar ou criar uma nova configuração. A extensão permite selecionar o manipulador de descoberta, configurar o pod ou job do agente, personalizar configurações e serviços de instâncias e definir a capacidade da configuração.

edição configuração extensão akri

Os dispositivos descobertos são relacionados na lista Instances (Instâncias).

lista instâncias extensão akri

Clique no nome da instância para abrir uma página de detalhes com as cargas de trabalho e o serviço da instância.

detalhes instância extensão akri
Documentation survey