Share via


Guia de início rápido: implantar o Azure IoT Operations Preview em um cluster Kubernetes habilitado para Arc

Importante

Azure IoT Operations Preview – habilitado pelo Azure Arc está atualmente em visualização. Não deve utilizar este software de pré-visualização em ambientes de produção.

Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para disponibilidade geral.

Neste início rápido, você implanta um conjunto de serviços IoT em um cluster Kubernetes habilitado para Azure Arc para que possa gerenciar remotamente seus dispositivos e cargas de trabalho. O Azure IoT Operations é um conjunto de serviços de operações digitais que inclui o Azure IoT Orchestrator Preview. Este guia de início rápido orienta você pelo uso do Orchestrator para implantar esses serviços em um cluster Kubernetes. No final do início rápido, você tem um cluster que pode gerenciar a partir da nuvem que gera dados de exemplo para usar nos seguintes inícios rápidos.

Os serviços implantados neste início rápido incluem:

Os inícios rápidos a seguir nesta série se baseiam neste para definir ativos de exemplo, pipelines de processamento de dados e visualizações. Se você quiser implantar as Operações IoT do Azure para executar suas próprias cargas de trabalho, consulte Preparar seu cluster Kubernetes habilitado para Azure Arc e Implantar extensões do Azure IoT Operations Preview em um cluster Kubernetes.

Antes de começar

Esta série de inícios rápidos destina-se a ajudá-lo a começar a usar as Operações IoT do Azure o mais rápido possível para que você possa avaliar um cenário de ponta a ponta. Em um verdadeiro ambiente de desenvolvimento ou produção, essas tarefas seriam executadas por várias equipes trabalhando juntas e algumas tarefas poderiam exigir permissões elevadas.

Para obter a melhor experiência de novo usuário, recomendamos usar uma conta gratuita do Azure para que você tenha permissões de proprietário sobre os recursos nesses inícios rápidos. Também fornecemos etapas para usar o 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 este início rápido, você cria um cluster do Kubernetes para receber a implantação do Azure IoT Operations.

Se você quiser executar novamente este início rápido com um cluster que já tenha as Operações do Azure IoT implantadas nele, consulte 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 subscrição do Azure. Se você não tiver uma assinatura do Azure, crie uma gratuitamente antes de começar.

  • Uma conta GitHub.

  • Visual Studio Code instalado em sua máquina de desenvolvimento. Para obter mais informações, consulte Baixar o código do Visual Studio.

Que problema vamos resolver?

O Azure IoT Operations é um conjunto de serviços de dados que é executado em clusters Kubernetes. Você deseja que esses clusters sejam gerenciados remotamente a partir da nuvem e capazes de se comunicar com segurança com recursos e pontos de extremidade da nuvem. Abordamos essas preocupações com as seguintes tarefas neste guia de início rápido:

  1. Crie um cluster Kubernetes e conecte-o ao Azure Arc para gerenciamento remoto.
  2. Crie um Cofre da Chave do Azure para gerenciar segredos para seu cluster.
  3. Configure seu cluster com um repositório de segredos e uma entidade de serviço para se comunicar com recursos de nuvem.
  4. Implante as Operações IoT do Azure em seu cluster.

Conectar um cluster Kubernetes ao Azure Arc

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

Nesta seção, você cria um novo cluster e o conecta ao Azure Arc. Se você quiser reutilizar um cluster no qual já implantou as Operações do Azure IoT antes, 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 IoT do Azure em um cluster Kubernetes sem instalar nada em sua máquina local. O espaço de código Azure-Samples/explore-iot-operations é pré-configurado com:

Importante

Os espaços de código são fáceis de configurar rapidamente e de desmontar mais tarde, mas não são adequados para avaliação de desempenho ou testes de escala. Use o GitHub Codespaces apenas para exploração.

Para criar seu espaço de código e cluster, use as seguintes etapas:

  1. Crie um espaço de código no GitHub Codespaces.

    Criar um espaço de código explore-iot-operations

  2. Forneça os seguintes segredos recomendados para seu espaço de código:

    Parâmetro Value
    SUBSCRIPTION_ID O seu ID de subscrição do Azure.
    RESOURCE_GROUP Um nome para um novo grupo de recursos do Azure onde seu cluster será criado.
    LOCALIZAÇÃO Uma região do Azure perto de você. As seguintes regiões são suportadas na pré-visualização pública: eastus, eastus2, westus, westus2, westus3, westeurope ou northeurope.

    Gorjeta

    Os valores que você fornece como segredos nesta etapa são salvos em sua conta do GitHub para serem usados neste e em futuros espaços de código. Eles também são adicionados automaticamente 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 espaço de código cria automaticamente uma variável de CLUSTER_NAME ambiente que é definida com o nome do espaço de código.

  3. Selecione Criar novo espaço de código.

  4. Quando o espaço de código estiver pronto, selecione o botão de menu no canto superior esquerdo e, em seguida, selecione Abrir no VS Code Desktop.

    Área de trabalho Open VS Code

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

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

    Use este terminal para executar todos os comandos de linha de comando e CLI para gerenciar seu cluster.

Para conectar seu cluster ao Azure Arc:

  1. No seu terminal de codespace, inicie sessão na CLI do Azure:

    az login
    

    Gorjeta

    Se você estiver usando o ambiente de espaço de código GitHub em um navegador em vez da área de trabalho do VS Code, a execução az login retornará um erro localhost. Para corrigir o erro:

    • Abra o espaço de código na área de trabalho do VS Code e, em seguida, retorne ao terminal do navegador e execute az loginnovamente o .
    • Ou, depois de obter o erro localhost no navegador, copie o URL do navegador e execute curl "<URL>" em uma nova guia do terminal. Você verá uma resposta JSON com a mensagem "Você fez login no Microsoft Azure!".
  2. Defina o contexto da assinatura do Azure para todos os comandos:

    az account set -s $SUBSCRIPTION_ID
    
  3. Registe os fornecedores de recursos necessários na sua subscrição:

    Nota

    Esta etapa só precisa ser executada uma vez por assinatura.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperationsOrchestrator"
    az provider register -n "Microsoft.IoTOperationsMQ"
    az provider register -n "Microsoft.IoTOperationsDataProcessor"
    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 --subscription $SUBSCRIPTION_ID
    
  5. Use o comando az connectedk8s connect para habilitar seu cluster Kubernetes e gerenciá-lo como parte do seu grupo de recursos do Azure:

    az connectedk8s connect -n $CLUSTER_NAME -l $LOCATION -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    

    Gorjeta

    O valor de $CLUSTER_NAME é definido automaticamente como o nome do seu espaço de código. Substitua a variável de ambiente se quiser usar um nome diferente.

  6. Obtenha o aplicativo Microsoft Entra ID que o serviço Azure Arc usa e salve-o objectId 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 de local personalizado em seu cluster. Este comando usa o objectId do aplicativo Microsoft Entra ID que o serviço Azure Arc usa.

    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 Azure IoT Operations para CLI do Azure para verificar se o host de cluster está configurado corretamente para implantação usando o comando verify-host no host de cluster:

az iot ops verify-host

Este comando auxiliar verifica a conectividade com o Azure Resource Manager e os pontos de extremidade do Microsoft Container Registry.

Implantar o Azure IoT Operations Preview

Nesta seção, você usa o comando az iot ops init para configurar seu cluster para que ele possa se comunicar com segurança com seus componentes do Azure IoT Operations e cofre de chaves e, em seguida, implantar o Azure IoT Operations.

Execute os seguintes comandos da CLI no terminal do Codespaces.

  1. Criar um cofre de chaves. Para esse cenário, usaremos o mesmo nome e grupo de recursos do cluster. Os nomes do Keyvault têm um comprimento máximo de 24 caracteres, portanto, o comando a seguir trunca a CLUSTER_NAMEvariável de ambiente, se necessário.

    az keyvault create --enable-rbac-authorization false --name ${CLUSTER_NAME:0:24} --resource-group $RESOURCE_GROUP
    

    Gorjeta

    Você pode usar um cofre de chaves existente para seus segredos, mas verifique se o modelo de permissão está definido como política de acesso do Vault. Você pode verificar essa configuração no portal do Azure na seção Configuração do Access de um cofre de chaves existente. Ou use o comando az keyvault show para verificar se enableRbacAuthorization é falso.

  2. Implante as Operações IoT do Azure.

    az iot ops init --simulate-plc --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --kv-id $(az keyvault show --name ${CLUSTER_NAME:0:24} -o tsv --query id)
    

    Se você receber um erro dizendo que seu dispositivo precisa ser gerenciado para acessar seu recurso, execute az login novamente e certifique-se de entrar interativamente com um navegador.

    Gorjeta

    Se você já executou az iot ops init antes, ele criou automaticamente um registro de aplicativo no Microsoft Entra ID para você. Você pode reutilizar esse registro em vez de criar um novo a cada vez. Para usar um registro de aplicativo existente, adicione o parâmetro --sp-app-id <APPLICATION_CLIENT_ID>opcional .

Ver recursos no cluster

Enquanto a implantação está em andamento, você pode observar os recursos que estão sendo aplicados ao cluster. Você pode usar comandos kubectl para observar alterações no cluster ou, como o cluster é habilitado para Arc, você pode usar o portal do Azure.

Para exibir os pods no cluster, execute o seguinte comando:

kubectl get pods -n azure-iot-operations

Pode levar vários minutos para que a implantação seja concluída. Continue executando o get pods comando para atualizar sua exibição.

Para exibir seu cluster no portal do Azure, use as seguintes etapas:

  1. No portal do Azure, navegue até o grupo de recursos que contém seu cluster.

  2. Na Visão geral do grupo de recursos, selecione o nome do cluster.

  3. No cluster, selecione Extensões na seção Configurações do menu.

    Captura de tela que mostra as extensões implantadas no cluster habilitado para Arc.

    Você pode ver que seu cluster está executando extensões do tipo microsoft.iotoperations.x, que é o nome do grupo para todos os componentes do Azure IoT Operations e o serviço de orquestração. Essas extensões têm um sufixo exclusivo que identifica sua implantação. Na captura de tela anterior, esse sufixo é -z2ewy.

    Há também uma extensão chamada akvsecretsprovider. Essa extensão é o provedor de segredos que você configurou e instalou no cluster com o az iot ops init comando. Você pode excluir e reinstalar os componentes do Azure IoT Operations durante o teste, mas manter a extensão do provedor de segredos em seu cluster.

  4. Anote o nome completo da extensão chamada mq-.... Use esse nome nos seguintes inícios rápidos.

Como resolvemos o problema?

Neste início rápido, você configurou seu cluster Kubernetes habilitado para Arc para que ele pudesse se comunicar com segurança com seus componentes do Azure IoT Operations. Em seguida, você implantou esses componentes no cluster. Para esse cenário de teste, você tem um único cluster Kubernetes que provavelmente está sendo executado localmente em sua máquina. 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.

Clean up resources (Limpar recursos)

Se continuar para o próximo início rápido, mantenha todos os seus recursos.

Se você quiser excluir a implantação do Azure IoT Operations, mas planeja reinstalá-la em seu cluster, certifique-se de manter o provedor de segredos em seu cluster.

  1. No seu grupo de recursos no portal do Azure, selecione o cluster.

  2. Na página de recursos do cluster, selecione Extensões.

  3. Selecione todas as extensões do tipo microsoft.iotoperations.x e microsoft.deviceregistry.assets e selecione Desinstalar. Não desinstale a extensão do provedor de segredos.

    Captura de ecrã que mostra as extensões a desinstalar.

  4. Retorne ao seu grupo de recursos e selecione o recurso de local personalizado e, em seguida, selecione Excluir.

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

Próximo passo