Preparar o cluster do Kubernetes habilitado para Azure Arc

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.

Um cluster do Kubernetes habilitado para Azure Arc é um pré-requisito para implantar a versão prévia das de Operações do Azure IoT. Este artigo descreve como preparar um cluster antes de implantar as Operações do Azure IoT. Este artigo inclui diretrizes para o Ubuntu e o Windows.

As etapas neste artigo preparam o cluster para uma implantação de configurações seguras, que é um processo mais longo, mas pronto para produção. Se você deseja implantar as Operações do Azure IoT rapidamente e executar uma carga de trabalho de amostra com apenas as configurações de teste, confira o Início Rápido: Executar a Visualização das Operações do Azure IoT em Codespaces do GitHub com o K3s. Para obter mais informações sobre configurações de teste e configurações seguras, consulte Detalhes da implantação > Escolha seus recursos.

Pré-requisitos

A Microsoft dá suporte ao AKS (Serviço de Kubernetes do Azure) Edge Essentials para implantações no Windows e K3s para implantações no Ubuntu. Para obter uma lista de combinações de hardware e software específicas que são testadas e validadas, consulte Ambientes validados.

Se você quiser implantar as Operações do Azure IoT em uma solução de vários nós, use K3s no Ubuntu.

Para preparar um cluster do Kubernetes habilitado para Azure Arc, você precisa:

  • Uma assinatura do Azure. 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.

  • A última versão das seguintes extensões da CLI do Azure:

    az extension add --upgrade --name azure-iot-ops
    az extension add --upgrade --name connectedk8s
    
  • Hardware que atende aos requisitos do sistema:

  • Se você pretende implantar as Operações do Azure IoT em um cluster de vários nós com tolerância a falhas habilitada, examine os requisitos de hardware e armazenamento em Preparar o Linux para Volumes de Borda.

Criar e habilitar um cluster para Arc

Esta seção fornece etapas para criar clusters em ambientes validados no Linux e no Windows.

Para preparar um cluster K3s Kubernetes no Ubuntu:

  1. Instale o K3s seguindo as instruções no guia de início rápido do K3s.

  2. Verifique se o kubectl foi instalado como parte do K3s. Caso contrário, siga as instruções para Instalar o kubectl no Linux.

    kubectl version --client
    
  3. Siga as instruções para instalar o Helm.

  4. Crie um arquivo yaml de configuração do K3s em .kube/config:

    mkdir ~/.kube
    sudo KUBECONFIG=~/.kube/config:/etc/rancher/k3s/k3s.yaml kubectl config view --flatten > ~/.kube/merged
    mv ~/.kube/merged ~/.kube/config
    chmod  0600 ~/.kube/config
    export KUBECONFIG=~/.kube/config
    #switch to k3s context
    kubectl config use-context default
    sudo chmod 644 /etc/rancher/k3s/k3s.yaml
    
  5. Execute o comando a seguir para aumentar os limites de inspeção/instância do usuário.

    echo fs.inotify.max_user_instances=8192 | sudo tee -a /etc/sysctl.conf
    echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
    
    sudo sysctl -p
    
  6. Para obter um melhor desempenho, aumente o limite do descritor do arquivo:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    
    sudo sysctl -p
    

Configurar clusters de vários nós para o Armazenamento de Contêineres do Azure

Em clusters de vários nós com pelo menos três nós, você tem a opção de habilitar a tolerância a falhas para armazenamento com o Armazenamento de Contêineres do Azure habilitado pelo Azure Arc ao implantar as Operações do Azure IoT.

Se você quiser habilitar a tolerância a falhas durante a implantação, configure seus clusters seguindo as etapas em Preparar o Linux para Volumes de Borda usando um cluster Ubuntu de vários nós.

Habilitar o cluster do Arc

Conecte seu cluster ao Azure Arc para que ele possa ser gerenciado remotamente.

  1. No computador em que você implantou o cluster do Kubernetes, entre com a CLI do Azure:

    az login
    

    Se em algum momento você receber um erro informando que Seu dispositivo precisa ser gerenciado para acessar seu recurso, execute az login novamente e verifique se você entra interativamente com um navegador.

  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"
    az provider register -n "Microsoft.SecretSyncController"
    
  4. Use o comando az group create para criar um grupo de recursos em sua assinatura do Azure para armazenar todos os recursos:

    Para ver todas as regiões do Azure com suporte no momento, confira Regiões com suporte.

    az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
    
  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> -l <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID> --enable-oidc-issuer --enable-workload-identity
    
  6. Obtenha a URL do emissor do cluster.

    az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
    

    Salve a saída desse comando para usar nas próximas etapas.

  7. Crie um arquivo de configuração k3s.

    sudo nano /etc/rancher/k3s/config.yaml
    
  8. Adicione o seguinte conteúdo ao arquivo config.yaml, substituindo o espaço reservado <SERVICE_ACCOUNT_ISSUER> pela URL do emissor do cluster.

    kube-apiserver-arg:
     - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
     - service-account-max-token-expiration=24h
    
  9. Salve o arquivo e saia do editor nano.

  10. Obtenha o objectId do aplicativo do Microsoft Entra ID que o serviço do Azure Arc usa em seu locatário e salve-o como uma variável de ambiente. Execute o seguinte comando exatamente como está, sem alterar o valor da GUID.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  11. 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. Execute este comando no computador em que você implantou o cluster do Kubernetes:

    az connectedk8s enable-features -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    
  12. Reinicie o K3s.

    systemctl restart k3s
    

Verificar seu cluster

Para verificar se o cluster está pronto para implantação de Operações do Azure IoT, você pode usar o comando auxiliar verify-host na extensão Operações do Azure IoT para a CLI do Azure. Quando executado no host do cluster, esse comando auxiliar verifica a conectividade com os pontos de extremidade do Azure Resource Manager e do Registro de Contêiner da Microsoft.

az iot ops verify-host

Configuração avançada

Neste ponto, quando você tiver um cluster do Kubernetes habilitado para Azure Arc, mas antes de implantar as Operações do Azure IoT nele, talvez você queira configurar seu cluster para cenários avançados.

Se você quiser habilitar os recursos de observabilidade no cluster, siga as etapas em Implantar recursos de observabilidade e configurar logs antes de continuar a implantação.

Próximas etapas

Agora que você tem um cluster Kubernetes habilitado para Azure Arc, você pode implantar as Operações do Azure IoT.