Compartilhar via


Criar e configurar um cluster do AKS Edge Essentials que possa executar as Operações de IoT do Azure

O Azure Kubernetes Service (AKS) Edge Essentials é uma das plataformas de cluster com suporte para o Azure IoT Operations. Você pode usar o AKS Edge Essentials para criar um cluster do Kubernetes gerenciado pela Microsoft e implantar o Azure IoT Operations nele como uma carga de trabalho. Este artigo descreve as etapas para executar um script que cria um cluster do Kubernetes do AKS Edge Essentials com as configurações necessárias para as Operações de IoT do Azure e, em seguida, conecta esse cluster ao Azure Arc.

Observação

As Operações do Azure IoT dão suporte ao AKS Edge Essentials quando implantado somente em clusters de computador único k3s. Não há suporte para clusters K8s para AIO e a implantação de clusters em vários computadores é um recurso experimental.

Pré-requisitos para executar o script

Para executar o script, você precisa dos seguintes pré-requisitos:

  • Uma assinatura do Azure com a função de Proprietário ou uma combinação de funções de Colaborador e Administrador de Acesso do Usuário. Você pode verificar seu nível de acesso navegando até sua assinatura, selecionando Controle de acesso (IAM) no lado esquerdo do portal do Azure e, em seguida, selecionando Exibir meu acesso. Se você não tiver uma assinatura do Azure, crie uma gratuitamente antes de começar.

  • CLI do Azure versão 2.64.0 ou mais recente instalada em seu computador de desenvolvimento. Use az --version para verificar sua versão e az upgrade para atualizar, se necessário. Para obter mais informações, confira Como instalar a CLI do Azure.

  • Instale a versão mais recente das extensões connectedk8s para a CLI do Azure:

    az extension add --upgrade --name connectedk8s 
    
  • Requisitos de hardware: assegure-se de que o computador tem um mínimo de 16 GB de RAM disponível, 4 vCPUs disponíveis e 52 GB de espaço livre em disco reservado para as Operações do Azure IoT.

Criar um cluster habilitado para Arc

O script AksEdgeQuickStartForAio.ps1 automatiza o processo de criação e conexão de um cluster e é o caminho recomendado para implantar as Operações do Azure IoT no AKS Edge Essentials. O script executa as seguintes tarefas:

  • Baixa os k3s mais recentes MSI do AKS Edge Essentials desse repositório.
  • Instala o AKS Edge Essentials e implanta e cria um cluster k3s de máquina única no seu computador Windows.
  • Conecta-se à assinatura do Azure, cria um grupo de recursos se ele ainda não existir e conecta o cluster ao Arc para criar um cluster do Kubernetes habilitado para Arc.
  • Habilita o recurso de localização personalizada no cluster do Kubernetes habilitado para Arc.
  • Habilita o recurso de federação de identidade de carga de trabalho no cluster do Kubernetes habilitado para Arc.
  • Implanta o provisionamento de caminho local.
  • Configura regras de firewall na máquina host Windows para o agente MQTT.
  • Na VM do Linux, que serve como o nó do plano de controle do Kubernetes:
    • Configura o proxy de porta para o intervalo de IP padrão do serviço Kubernetes de 10.96.0.0/28.
    • Configura as regras da tabela IP:
      • sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 9110 -j ACCEPT
      • sudo iptables -A INPUT -p tcp --dport (10124, 8420, 2379, 50051) -j ACCEPT

Para executar o script de início rápido, execute as seguintes etapas:

  1. Abra uma janela elevada do PowerShell e altere o diretório para uma pasta de trabalho.

  2. Obtenha o objectId do aplicativo do Microsoft Entra ID que o serviço Azure Arc usa em seu locatário. Execute o seguinte comando exatamente como está, sem alterar o valor da GUID.

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. Execute os comandos a seguir:

    $url = "https://raw.githubusercontent.com/Azure/AKS-Edge/main/tools/scripts/AksEdgeQuickStart/AksEdgeQuickStartForAio.ps1"
    Invoke-WebRequest -Uri $url -OutFile .\AksEdgeQuickStartForAio.ps1
    Unblock-File .\AksEdgeQuickStartForAio.ps1
    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
    
  4. [Opcional] O Gateway do Azure Arc (versão preliminar) permite integrar a infraestrutura ao Azure Arc usando apenas 7 pontos de extremidade. Para usar o Gateway do Azure Arc com as Operações do Azure IoT no AKS Edge Essentials:

  5. Execute o seguinte comando e substitua os valores do espaço reservado por suas informações:

    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>"
    
    Espaço reservado Valor
    SUBSCRIPTION_ID A ID da sua assinatura do Azure. Se você não souber sua ID da assinatura, confira Localizar sua assinatura do Azure.
    TENANT_ID A ID do locatário do Microsoft Entra. Se você não souber sua ID de locatário, consulte Localizar seu locatário do Microsoft Entra.
    RESOURCE_GROUP_NAME O nome de um grupo de recursos existente ou um nome para um novo grupo de recursos a ser criado. Há suporte para apenas uma instância de Operações IoT do Azure por grupo de recursos.
    LOCALIZAÇÃO Uma região do Azure próxima a você. Para obter a lista de regiões do Azure com suporte para as Operações de IoT do Azure, consulte Regiões com suporte.
    CLUSTER_NAME Um nome para o novo cluster a ser criado.
    ARC_APP_OBJECT_ID O valor da ID do objeto que você recuperou na etapa 2.

    Há outros sinalizadores opcionais que você pode incluir quando executa AksEdgeQuickStartForAio.ps1. Os sinalizadores opcionais são as seguintes:

    Sinalizadores opcionais Valor
    enableWorkloadIdentity (versão Preliminar) Habilitado por padrão. Embora você possa recusar antes de implantar o cluster, não é possível habilitá-lo após a criação do cluster. A federação de identidade de carga de trabalho permite configurar uma identidade gerenciada atribuída pelo usuário ou um registro de aplicativo no Microsoft Entra ID para confiar nos tokens de IdPs (provedores de identidade externos), como o Kubernetes. Para configurar a federação de identidade de workload, consulte este artigo.
    proxy-https Forneça o valor do proxy: https://<proxy-server-ip-address>:<port>.
    proxy-http Forneça o valor do proxy: http://<proxy-server-ip-address>:<port>.
    proxy-skip-range Forneça a faixa de exclusão do proxy: <excludedIP>,<excludedCIDR>. Se o http(s)_proxy for fornecido, no_proxy também deverá ser atualizado para localhost,127.0.0.0/8,192.168.0.0/16,172.17.0.0/16,10.42.0.0/16,10.43.0.0/16,10.96.0.0/12,10.244.0.0/16,.svc,169.254.169.254.

    Você pode adicionar esses sinalizadores conforme mostra este exemplo:

    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>" --enableWorkloadIdentity:false
    

    Importante

    Os recursos de pré-visualização estão disponíveis em um sistema de autoatendimento e adesão voluntária. As visualizações são fornecidas "como estão" e "conforme disponíveis" e estão excluídas dos acordos de nível de serviço e da garantia limitada. As visualizações do AKS Edge Essentials são parcialmente cobertas pelo suporte ao cliente em uma base de melhor esforço.

    Se houver problemas durante a implantação, por exemplo, se o computador for reinicializado como parte desse processo, execute o conjunto de comandos novamente.

    Execute os seguintes comandos para verificar se a implantação foi bem-sucedida:

    Import-Module AksEdge
    Get-AksEdgeDeploymentInfo
    

    Na saída do Get-AksEdgeDeploymentInfo comando, você deve ver que o status do Arc do cluster é Conectado.

Verificar seu cluster

Para verificar se o cluster do Kubernetes está habilitado para Azure Arc, execute o seguinte comando:

kubectl get deployments,pods -n azure-arc

A saída deve ser semelhante ao seguinte exemplo:

NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/clusterconnect-agent         1/1     1            1           10m
deployment.apps/extension-manager            1/1     1            1           10m
deployment.apps/clusteridentityoperator      1/1     1            1           10m
deployment.apps/controller-manager           1/1     1            1           10m
deployment.apps/flux-logs-agent              1/1     1            1           10m
deployment.apps/cluster-metadata-operator    1/1     1            1           10m
deployment.apps/extension-events-collector   1/1     1            1           10m
deployment.apps/config-agent                 1/1     1            1           10m
deployment.apps/kube-aad-proxy               1/1     1            1           10m
deployment.apps/resource-sync-agent          1/1     1            1           10m
deployment.apps/metrics-agent                1/1     1            1           10m

NAME                                              READY   STATUS    RESTARTS        AGE
pod/clusterconnect-agent-5948cdfb4c-vzfst         3/3     Running   0               10m
pod/extension-manager-65b8f7f4cb-tp7pp            3/3     Running   0               10m
pod/clusteridentityoperator-6d64fdb886-p5m25      2/2     Running   0               10m
pod/controller-manager-567c9647db-qkprs           2/2     Running   0               10m
pod/flux-logs-agent-7bf6f4bf8c-mr5df              1/1     Running   0               10m
pod/cluster-metadata-operator-7cc4c554d4-nck9z    2/2     Running   0               10m
pod/extension-events-collector-58dfb78cb5-vxbzq   2/2     Running   0               10m
pod/config-agent-7579f558d9-5jnwq                 2/2     Running   0               10m
pod/kube-aad-proxy-56d9f754d8-9gthm               2/2     Running   0               10m
pod/resource-sync-agent-769bb66b79-z9n46          2/2     Running   0               10m
pod/metrics-agent-6588f97dc-455j8                 2/2     Running   0               10m

Próximas etapas