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? #
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).
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.
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.
Os dispositivos descobertos são relacionados na lista Instances (Instâncias).
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.