Início rápido: Executar a versão prévia de Operações do Azure IoT no GitHub Codespaces com K3s

Importante

A Versão Prévia das Operações da Internet das Coisas do Azure – habilitadas pelo Azure Arc – está atualmente em versão prévia. Você não deve usar esse software em versão prévia em ambientes de produção.

Você precisará implantar uma nova instalação das Operações da Internet das Coisas do Azure quando uma versão em disponibilidade geral for disponibilizada. Você não poderá atualizar uma instalação de versão prévia.

Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.

Neste guia de início rápido, você implantará um conjunto de serviços de IoT em um cluster do Kubernetes habilitado para Azure Arc para que possa gerenciar remotamente seus dispositivos e cargas de trabalho. Operações do Azure IoT é um conjunto de serviços de operações digitais. Este guia de início rápido orienta você pelo uso do Orquestrador para implantar esses serviços em um cluster do Kubernetes. No final deste guia, você terá um cluster que poderá ser gerenciado na nuvem que gera os dados de exemplo a serem usados nos próximos guias de início rápido.

Os outros guias de início rápido nesta série completa se baseiam neste guia para definir ativos de amostra, pipelines de processamento de dados e visualizações.

Se você quiser implantar Operações do Azure IoT em um cluster local, como o Azure Kubernetes Service Edge Essentials ou K3s no Ubuntu, veja os detalhes da implantação.

Antes de começar

Essa série de inícios rápidos destina-se a ajudá-lo a começar com as Operações Azure IoT o mais rapidamente possível para que possa avaliar um cenário de ponta a ponta. Em um ambiente real de desenvolvimento ou produção, várias equipes trabalhando juntas e fazem essas tarefas e algumas delas podem exigir permissões elevadas.

Para que a experiência de novo usuário seja a melhor possível, recomendamos usar uma conta gratuita do Azure para que você tenha permissões de proprietário sobre os recursos nestes guias de início rápido. Também fornecemos etapas para usar GitHub Codespaces como um ambiente virtual no qual você pode começar rapidamente a implantar recursos e executar comandos sem instalar novas ferramentas em suas próprias máquinas.

Pré-requisitos

Para esse início rápido, você cria um cluster Kubernetes para receber a implantação do Azure IoT Operations.

Se você quiser reutilizar um cluster que já tenha as Operações do Azure IoT implantadas, siga as etapas em Limpar recursos para desinstalar as Operações do Azure IoT antes de continuar.

Antes de começar, prepare os seguintes pré-requisitos:

  • Uma assinatura do Azure. Se você não tiver uma assinatura do Azure, crie uma gratuitamente antes de começar.

  • Uma conta do GitHub.

  • É necessário ter o Visual Studio Code instalado em seu computador de desenvolvimento. Para obter mais informações, confira Baixar o Visual Studio Code.

  • Permissões Microsoft/Authorization/roleAssignments/write no nível do grupo de recursos.

Que problema vamos resolver?

As Operações do Azure IoT é um conjunto de serviços de dados executados em clusters do Kubernetes. Você deseja que esses clusters sejam gerenciados remotamente da nuvem e possam se comunicar com segurança com recursos e pontos de extremidade de nuvem. Abordamos essas questões com as seguintes tarefas neste início rápido:

  1. Crie um cluster Kubernetes e conecte-o ao Azure Arc para gerenciamento remoto.
  2. Criar um registro de esquema.
  3. Implante as Operações do Azure IoT em seu cluster.

Conectar um cluster do Kubernetes ao Azure Arc

As Operações do Azure IoT devem funcionar em qualquer cluster do Kubernetes que esteja em conformidade com os padrões do CNCF (Cloud Native Computing Foundation). Para obter velocidade e conveniência, este início rápido usa os Codespaces do GitHub para hospedar seu cluster.

Importante

Os codespaces são fáceis de configurar rapidamente e desmontar posteriormente, mas não são adequados para avaliação de desempenho ou testes de escala. Use o GitHub Codespaces somente para exploração. Para saber como implantar operações de IoT do Azure em um cluster de produção como o AKS Edge Essentials, confira Preparar seu cluster do Kubernetes habilitado para Azure Arc.

Nesta seção, você criará um novo cluster e o conectará ao Azure Arc. Se você quiser reutilizar um cluster no qual implantou as Operações do Azure IoT anteriormente, consulte as etapas em Limpar recursos para desinstalar as Operações do Azure IoT antes de continuar.

Use o GitHub Codespaces para experimentar as Operações do Azure IoT em um cluster do Kubernetes sem instalar nada no computador local. O codespace Azure-Samples/explore-iot-operations já vem pré-configurado com:

  • K3s em execução no K3d para um cluster do Kubernetes leve
  • CLI do Azure
  • Kubectl para gerenciar recursos do Kubernetes
  • Outras ferramentas úteis, como Helm e k9s

Para criar seu codespace e cluster, use as seguintes etapas:

  1. Crie um codespace no GitHub Codespaces.

    Crie um codespace explore-iot-operations

  2. Forneça os seguintes segredos recomendados para o seu codespace:

    Parâmetro Valor
    SUBSCRIPTION_ID Sua ID da assinatura do Azure.
    RESOURCE_GROUP Um nome para um novo grupo de recursos do Azure em que o cluster será criado.
    LOCALIZAÇÃO Uma região do Azure próxima a você. Para ver todas as regiões com suporte no momento, confira Regiões com suporte.

    Dica

    Os valores que você fornece como segredos nesta etapa são salvos em sua conta do GitHub para serem usados neste e em seus futuros codespaces. Eles são adicionados como variáveis de ambiente no terminal do codespace e você pode usar essas variáveis de ambiente nos comandos da CLI na próxima seção.

    Além disso, esse codespace cria uma variável de ambiente CLUSTER_NAME que é definida com o nome do codespace.

  3. Selecione Criar novo codespace.

  4. Depois que o codespace estiver pronto, selecione o botão de menu no canto superior esquerdo e, em seguida, selecione Abrir na Área de Trabalho do VS Code.

    Abrir a área de trabalho do VS Code

  5. Se solicitado, instale a extensão GitHub Codespaces para Visual Studio Code e entre no GitHub.

  6. No Visual Studio Code, selecione Exibir>Terminal.

    Use esse terminal para executar todos os comandos da CLI para gerenciar o cluster.

Para conectar seu cluster ao Azure Arc:

  1. No seu terminal codespace, inscreva-se no CLI do Azure:

    az login
    

    Dica

    Se você estiver usando o ambiente de codespace do GitHub em um navegador em vez do desktop do VS Code, a execução az login retornará um erro de host local. Para corrigir o erro:

    • Abra o codespace na área de trabalho do VS Code, retorne ao terminal do navegador e execute az login novamente.
    • Ou, depois de receber o erro localhost no navegador, copie a URL do navegador e execute curl "<URL>" em uma nova guia do terminal. Você deverá ver uma resposta JSON com a mensagem "Você entrou no Microsoft Azure!".
  2. Depois de entrar, a CLI do Azure exibe todas as suas assinaturas e indica a assinatura padrão com um asterisco *. Para continuar com sua assinatura padrão, selecione Enter. Caso contrário, digite o número da assinatura do Azure que você deseja usar.

  3. Registre os provedores de recursos necessários em sua assinatura:

    Observação

    Esta etapa só precisa ser executada uma vez por assinatura. Para registrar provedores de recursos, você precisa de permissão para fazer a operação /register/action, que está incluída nas funções Colaborador e Proprietário da assinatura. Confira mais informações em Tipos e provedores de recursos do Azure.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperations"
    az provider register -n "Microsoft.DeviceRegistry"
    
  4. Use o comando az group create para criar um grupo de recursos em sua assinatura do Azure para armazenar todos os recursos:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP
    
  5. Use o comando az connectedk8s connect para habilitar o Arc no seu cluster do Kubernetes e gerenciá-lo como parte do seu grupo de recursos do Azure:

    az connectedk8s connect --name $CLUSTER_NAME --location $LOCATION --resource-group $RESOURCE_GROUP
    

    Dica

    O valor de $CLUSTER_NAME é automaticamente definido como o nome do seu codespace. Substitua a variável de ambiente se desejar usar um nome diferente.

  6. Obtenha o objectId do aplicativo do Microsoft Entra ID que o serviço do Azure Arc em seu locatário usa e salve-o como uma variável de ambiente.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  7. Use o comando az connectedk8s enable-features para habilitar o suporte ao local personalizado em seu cluster. Esse comando usa o objectId do aplicativo do Microsoft Entra ID usado pelo serviço do Azure Arc.

    az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    

Verificar cluster

Use a extensão de Operações do Azure IoT para a CLI do Azure para verificar se o host do cluster está configurado corretamente para implantação usando o comando verify-host no host do cluster:

az iot ops verify-host

Esse comando auxiliar verifica a conectividade com os pontos de extremidade do Azure Resource Manager e do Registro de Contêiner da Microsoft.

Criar uma conta de armazenamento e um registro de esquema

As Operações do Azure IoT exigem um registro de esquema em seu cluster. O registro de esquema requer uma conta de Armazenamento do Azure para que ele possa sincronizar informações de esquema entre a nuvem e a borda.

O comando para criar um registro de esquema nesta seção requer permissões Microsoft/Authorization/roleAssignments/write no nível do grupo de recursos.

Execute os seguintes comandos CLI em seu terminal Codespaces.

  1. Defina variáveis de ambiente para os recursos criados nesta seção.

    Espaço reservado Valor
    <STORAGE_ACCOUNT_NAME> Um nome para sua conta de armazenamento. Os nomes da conta de armazenamento devem ter entre 3 e 24 caracteres e só podem conter números e letras minúsculas.
    <SCHEMA_REGISTRY_NAME> Um nome para o registro de esquema.
    <SCHEMA_REGISTRY_NAMESPACE> Um nome para o namespace do registro de esquema. O namespace identifica exclusivamente um registro de esquema em um locatário.
    export STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME>
    export SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME>
    export SCHEMA_REGISTRY_NAMESPACE=<SCHEMA_REGISTRY_NAMESPACE>
    
  2. Crie uma conta de armazenamento com namespace hierárquico habilitado.

    az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespace
    
  3. Crie um registro de esquema que se conecte à sua conta de armazenamento. Esse comando também criará um contêiner de blob chamado esquemas na conta de armazenamento, se ainda não existir.

    az iot ops schema registry create --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP --registry-namespace $SCHEMA_REGISTRY_NAMESPACE --sa-resource-id $(az storage account show --name $STORAGE_ACCOUNT -o tsv --query id)
    

Implantar as Operações do Azure IoT (versão prévia)

Nesta seção, você configurará o cluster com as dependências dos componentes de Operações IoT do Azure e, em seguida, implantará as Operações do Azure IoT.

Execute os seguintes comandos CLI em seu terminal Codespaces.

  1. Inicialize seu cluster para as Operações do Azure IoT.

    Dica

    O comando init só precisa ser executado uma vez por cluster. Se você estiver reutilizando um cluster que já tinha as Operações do Azure IoT versão 0.7.0 implantado nele, ignore esta etapa.

    az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --sr-resource-id $(az iot ops schema registry show --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP -o tsv --query id)
    

    Esse comando pode levar vários minutos para ser concluído. Você pode ver o andamento na exibição de progresso da implantação no terminal.

  2. Implantar operações do Azure IoT. Esse comando levará vários minutos para ser concluído.

    az iot ops create --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name ${CLUSTER_NAME}-instance
    

    Esse comando pode levar vários minutos para ser concluído. Você pode ver o andamento na exibição de progresso da implantação no terminal.

    Se você receber um erro informando que Seu dispositivo precisa ser gerenciado para acessar seu recurso, execute az login novamente e faça o login de forma interativa usando um navegador.

Exibir recursos em seu cluster

Enquanto a implantação está em andamento, a interface de progresso da CLI mostra o estágio da implantação em que você está. Com a implantação concluída, você pode usar comandos do kubectl para observar alterações no cluster ou, como o cluster está habilitado para Arc, você poderá usar o portal do Azure.

Para exibir os pods no seu cluster, execute o comando a seguir:

kubectl get pods -n azure-iot-operations

Para exibir seus recursos no portal do Azure, use as seguintes etapas:

  1. No portal do Azure, acesse o grupo de recursos que contém sua instância das Operações do Azure IoT ou procure e selecione Operações do Azure IoT.

  2. Selecione o nome da sua instância das Operações do Azure IoT.

  3. Na página de visão geral de sua instância, a guia Extensões do Arc exibe os recursos que foram implantados no seu cluster.

    Captura de tela que mostra a instância das Operações do Azure IoT em seu cluster habilitado para Arc.

Como resolvemos o problema?

Neste início rápido, você configurou seu cluster do Kubernetes habilitado para Arc para que ele pudesse se comunicar com segurança com seus componentes das Operações do Azure IoT. Em seguida, implantou esses componentes em seu cluster. Para este cenário de teste, você tem um único cluster do Kubernetes que provavelmente está sendo executado localmente em seu computador. Em um cenário de produção, no entanto, você pode usar as mesmas etapas para implantar cargas de trabalho em muitos clusters em vários sites.

Limpar os recursos

Se você continuar no próximo início rápido, mantenha todos os seus recursos.

Se você quiser remover a implantação das Operações do Azure IoT, mas manter o seu cluster, use o comando az iot ops delete:

az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP

Caso queira excluir todos os recursos criados para este início rápido, exclua o cluster do Kubernetes no qual você implantou as Operações do Azure IoT e remova o grupo de recursos do Azure que continha o cluster.

Se você usou os Codespaces para esses inícios rápidos, exclua seu Codespace do GitHub.

Próxima etapa