Preparar o cluster do Kubernetes habilitado para Azure Arc
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, consulte 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. 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 com a função Proprietário ou uma combinação de funções de Colaborador e Administrador de Acesso do Usuário. Você pode verificar o nível de acesso navegando até sua assinatura, selecionando o controle de acesso (IAM) no lado esquerdo do portal do Azure e selecionando Exibir meu acesso. Se você não tiver uma assinatura do Azure, crie uma gratuitamente antes de começar.
Um grupo de recursos do Azure. Há suporte para apenas uma instância de Operações IoT do Azure por grupo de recursos. Para criar um grupo de recursos, use o comando az group create. 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>
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 eaz upgrade
para atualizar, se necessário. Para obter mais informações, confira Como instalar a CLI do Azure.A versão mais recente da extensão connectedk8s para a CLI do Azure:
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:
Crie um cluster K3s de nó único ou de vários nós. Para obter exemplos, consulte o guia de início rápido do K3s ou projetos relacionados ao K3s.
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
Siga as instruções para instalar o Helm.
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
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
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
Habilitar o cluster do Arc
Conecte seu cluster ao Azure Arc para que ele possa ser gerenciado remotamente.
No computador em que você implantou o cluster Kubernetes, entre na CLI do Azure com sua conta de usuário do Microsoft Entra que tenha as funções necessárias para a assinatura 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.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, selecioneEnter
. Caso contrário, digite o número da assinatura do Azure que você deseja usar.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"
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 --disable-auto-upgrade
Para evitar atualizações não planejadas do Azure Arc e extensões do sistema Arc que as Operações do Azure IoT usam como dependências, esse comando desabilita a atualização automática. Em vez disso, atualize manualmente os agentes conforme necessário.
Importante
Se o ambiente usar um servidor proxy ou o Gateway do Azure Arc, modifique o comando
az connectedk8s connect
com suas informações de proxy:- Siga as instruções em Conectar usando um servidor proxy de saída ou Integrar clusters do Kubernetes ao Azure Arc com o Gateway do Azure Arc.
- Adicione
169.254.169.254
ao parâmetro--proxy-skip-range
do comandoaz connectedk8s connect
. O Registro de Dispositivo do Azure usa esse ponto de extremidade local para obter tokens de acesso para autorização.
As Operações do Azure IoT não dão suporte a servidores proxy que exigem um certificado confiável.
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.
Crie um arquivo de configuração k3s.
sudo nano /etc/rancher/k3s/config.yaml
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
Salve o arquivo e saia do editor nano.
Prepare-se para habilitar o serviço do Azure Arc, local personalizado, em seu cluster Arc, obtendo a ID do objeto de local personalizado e salvando-a como a variável de ambiente, OBJECT_ID. Você deve estar conectado à CLI do Azure com uma conta de usuário do Microsoft Entra para executar com êxito o comando, não uma entidade de serviço. Execute o comando seguir exatamente como escrito, sem alterar o valor do GUID.
export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
Observação
Se você receber o erro: "Não é possível buscar oid do aplicativo 'custom-locations'. Continuar sem habilitar o recurso. Privilégios insuficientes para concluir a operação, então você pode estar usando uma entidade de serviço que não tem as permissões necessárias para recuperar a ID do objeto do local personalizado. Faça logon na CLI do Azure com uma conta de usuário do Microsoft Entra que atenda aos pré-requisitos.
Use o comando az connectedk8s enable-features para habilitar o recurso de localização personalizado em seu cluster Arc. Esse comando usa a variável de ambiente OBJECT_ID salva da etapa anterior para definir o valor do parâmetro custom-locations-oid. 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
Reinicie o K3s.
systemctl restart k3s
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.
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.
- Para habilitar os recursos de observabilidade no cluster, siga as etapas em Implantar recursos de observabilidade e configurar logs.
- Para configurar seu próprio emissor de certificados no cluster, siga as etapas em Gerenciamento de certificados > Use seu próprio emissor.
Próximas etapas
Agora que você tem um cluster Kubernetes habilitado para Azure Arc, você pode implantar as Operações do Azure IoT.