Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um cluster kubernetes habilitado para Azure Arc é um pré-requisito para implantar Operações do Azure IoT. Este artigo descreve como preparar esse cluster, com orientações para Ubuntu, Windows, Azure Local e vSphere Kubernetes Service (VKS).
Se você quiser implantar Operações do Azure IoT rapidamente e executar uma carga de trabalho de exemplo em um ambiente de teste, consulte o Quickstart: Executar Operações do Azure IoT em GitHub Codespaces com K3s.
Pré-requisitos
Para implantações multinó, use K3s no Ubuntu, AKS no Azure Local ou vSphere Kubernetes Service (VKS). AKS Edge Essentials no Windows suporta apenas implantações com um único nó.
Para preparar um cluster kubernetes habilitado para Azure Arc, você precisa:
Uma assinatura Azure com a função Owner ou uma combinação de funções Contributor e User Access Administrator. Você pode verificar o nível de acesso navegando até sua assinatura, selecionando Exibição de acesso (IAM) no lado esquerdo do portal Azure e selecionando View my access. Se você não tiver uma assinatura Azure, criar uma gratuitamente antes de começar.
O CLI do Azure instalado em seu computador de desenvolvimento. Verifique as extensões disponíveis do CLI do Azure para a versão mínima exigida para a extensão connectedk8s. Use
az --versionpara verificar sua versão eaz upgradepara atualizar, se necessário. Para obter mais informações, consulte Instale o CLI do Azure.A extensão connectedk8s para a CLI do Azure. Use o seguinte comando para adicionar a extensão ou atualizá-la à versão mais recente:
az extension add --upgrade --name connectedk8sUm grupo de recursos Azure. Há suporte para apenas uma instância Operações do Azure IoT por grupo de recursos. Para criar um grupo de recursos, use o comando az group create. Para obter a lista de regiões Azure com suporte no momento, consulte Supported regions.
az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
Hardware que atende aos requisitos do sistema:
- Ambientes compatíveis com Operações do Azure IoT.
- requisitos de sistema do Kubernetes habilitados pelo Azure Arc.
- Requisitos do K3s.
Se você pretende implantar 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 Prepare Linux para Volumes de Borda.
Os CLI do Azure exemplos deste artigo usam variáveis de ambiente para que você possa definir cada valor uma vez e então copiar e colar os comandos as-is. Se você está usando o ambiente Operações do Azure IoT Codespaces do quickstart, essas variáveis já estão definidas para você e você pode pular essa etapa. Caso contrário, defina as seguintes variáveis de ambiente no seu shell antes de executar os comandos.
Os seguintes scripts definem as variáveis de ambiente mais comumente usadas:
| Variável de ambiente | Description |
|---|---|
SUBSCRIPTION_ID |
O ID da assinatura que contém sua instância do Operações do Azure IoT. |
RESOURCE_GROUP |
O nome do grupo de recursos que contém sua instância do Operações do Azure IoT. |
AIO_INSTANCE_NAME |
O nome da sua instância do Operações do Azure IoT. Para listar suas instâncias, execute az iot ops list -o table. |
CLUSTER_NAME |
O nome do cluster Kubernetes habilitado para Azure Arc que hospeda sua instância. |
LOCATION |
A região Azure para usar para novos recursos, por exemploeastus, . |
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>
Você só precisa definir as variáveis que este artigo utiliza. Este artigo pode usar variáveis adicionais de ambiente para nomes de recursos que você escolher. O artigo explica como posicioná-los onde são apresentados.
Criar e habilitar um cluster para Arc
Esta seção fornece etapas para criar clusters em ambientes validados no Ubuntu, Windows, Azure Local e vSphere Kubernetes Service (VKS).
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 K3s está instalado
kubectl. Caso contrário, siga as instruções para Instalar o kubectl no Linux.kubectl version --clientSiga as instruções para instalar o Helm.
Crie um arquivo YAML de configuração 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.yamlExecute 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 -pPara 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
Habilite o Arc no seu cluster K3s
Conecte seu cluster ao Azure Arc para que você possa gerenciá-lo remotamente.
De uma máquina que tenha
kubectlacesso ao seu cluster, faça login no CLI do Azure com sua conta de usuário Microsoft Entra que possui as funções necessárias para a assinatura do Azure:az loginSe em algum momento você receber um erro dizendo que seu dispositivo precisa ser gerenciado para acessar seu recurso, execute
az loginnovamente e certifique-se de fazer login interativamente usando um navegador.Depois que você faz login, a CLI do Azure mostra todas as suas assinaturas e indica sua assinatura padrão com um asterisco
*. Para continuar com sua assinatura padrão, selecioneEnter. Caso contrário, digite o número da assinatura Azure que você deseja usar.Registre os provedores de recursos necessários em sua assinatura.
Observação
Você precisa executar essa etapa apenas uma vez por assinatura. Para registrar provedores de recursos, você precisa de permissão para executar a operação
/register/action, incluída nas funções de Colaborador e Proprietário da assinatura. Para obter mais informações, consulte provedores de recursos e tipos 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 cluster do Kubernetes e gerenciá-lo como parte do grupo de recursos Azure.
az connectedk8s connect --name $CLUSTER_NAME -l $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --enable-oidc-issuer --enable-workload-identity --disable-auto-upgradePara evitar atualizações não planejadas para Azure Arc e as extensões do sistema Arc que Operações do Azure IoT usa como dependências, esse comando desabilita a autoupgrade. Em vez disso, atualize manualmente os agentes conforme necessário.
Importante
Se o ambiente usar um servidor proxy ou um Gateway de Azure Arc, modifique o comando
az connectedk8s connectcom suas informações de proxy:- Siga as instruções em Conecte-se usando um servidor proxy de saída ou Adicione clusters Kubernetes ao Azure Arc com o Azure Arc Gateway.
- Adicione
169.254.169.254ao parâmetro--proxy-skip-rangedo comandoaz connectedk8s connect. O Registro de Dispositivo do Azure usa esse ponto de extremidade local para obter tokens de acesso para autorização.
Operações do Azure IoT não dá 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 tsvSalve a saída desse comando para usar nas próximas etapas.
Crie um arquivo de configuração do K3s.
sudo nano /etc/rancher/k3s/config.yamlAdicione 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=24hSalve o arquivo e saia do editor nano.
Prepare-se para habilitar o serviço Azure Arc, local personalizado, no cluster Arc, obtendo a ID do objeto de local personalizado e salvando-a como a variável de ambiente, OBJECT_ID. Você deve fazer login no CLI do Azure com uma conta de usuário Microsoft Entra, não um principal de serviço, para executar o comando com sucesso. 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 login no CLI do Azure com uma conta de usuário Microsoft Entra que atenda aos pré-requisitos. Para obter mais informações, consulte Criar e gerenciar locais personalizados.
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 que você salvou na 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-locationsReinicie o K3s.
systemctl restart k3s
Configure o Azure Container Storage habilitado pelo Azure Arc
Recursos como pontos de extremidade de armazenamento local de fluxo de dados e o conector de mídia podem usar o Armazenamento de contêineres do Azure habilitado pelo Azure Arc (ACSA) para sincronizar dados locais com a nuvem. O ACSA não é instalado como parte do Operações do Azure IoT, então você deve instalá-lo separadamente.
Para aprender como instalar o ACSA no seu cluster Kubernetes:
- Confira O que é o Azure Container Storage habilitado pelo Azure Arc.
- Revise Preparar o Linux para Volumes de Borda (Edge Volumes).
- Siga os passos em Instalar o Armazenamento de Contêineres Azure habilitado pelos Azure Arc Edge Volumes.
Próximas etapas
Agora que você tem um cluster kubernetes habilitado para Azure Arc, você pode implantar Operações do Azure IoT.
- Use seu próprio emissor: se você quiser configurar seu próprio emissor de certificado no cluster antes de implantar as Operações do Azure IoT.
- Implantar em um cluster de teste: para avaliação e teste rápidos antes de implantar em produção.
- Implantar em um cluster de produção: para cargas de trabalho prontas para produção com configurações seguras.