Guia de início rápido: configurar o Gerenciamento de Rede em Camadas do Azure IoT (visualização) para habilitar um cluster no ambiente do Azure
Neste início rápido, você configura o Gerenciamento de Rede em Camadas do Azure IoT (visualização) em uma rede Purdue de nível 4 e nível 3. O nível 4 da rede tem acesso à Internet e o nível 3 não. Você configura o Gerenciamento de Rede em Camadas (visualização) para rotear o tráfego de rede do nível 3 para o Azure. Finalmente, você pode ativar o cluster K3S no nível 3, mesmo que ele não esteja diretamente conectado à internet.
- Nível 4 um cluster AKS com Gerenciamento de Rede em Camadas implantado.
- O nível 3 é um cluster K3S em execução em uma VM Linux que usa a instância de Gerenciamento de Rede em Camadas no nível 4 para obter conexão com o Azure. A rede de nível 3 está configurada para ter acesso de saída à rede de nível 4 nas portas 443 e 8084. Todos os outros acessos de saída estão desativados.
A arquitetura de Gerenciamento de Rede em Camadas requer configuração de DNS na rede de nível 3, onde as URLs permitidas são redirecionadas para a rede de nível 4. Neste exemplo, essa configuração é realizada usando uma configuração automatizada criada no CoreDNS, o mecanismo de resolução de DNS padrão fornecido com o k3s.
Pré-requisitos
Esses pré-requisitos são apenas para implantar o Gerenciamento de Rede em Camadas de forma independente e habilitar o cluster de nível filho para Arc.
- Um cluster AKS
- Uma máquina virtual Azure Linux Ubuntu 22.04.3 LTS
- Uma jumpbox ou máquina de configuração que tem acesso à internet e às redes de nível 3 e nível 4
Implantar o Gerenciamento de Rede em Camadas (visualização) no cluster AKS
Estas etapas implantam o Gerenciamento de Rede em Camadas no cluster AKS. O cluster é a camada superior no modelo ISA-95. No final desta seção, você tem uma instância do Gerenciamento de Rede em Camadas que está pronta para aceitar o tráfego do cluster habilitado para Arco do Azure abaixo e dar suporte à implantação do serviço Azure IoT Operations.
Configure
kubectl
para gerir o cluster AKS a partir da sua jumpbox seguindo os passos em Ligar ao cluster.Instale o operador de Gerenciamento de Rede em Camadas com o seguinte comando da CLI do Azure:
az login az k8s-extension create --resource-group <RESOURCE GROUP> --name kind-lnm-extension --cluster-type connectedClusters --cluster-name <CLUSTER NAME> --auto-upgrade false --extension-type Microsoft.IoTOperations.LayeredNetworkManagement --version 0.1.0-preview --release-train preview
Para validar que a instalação foi bem-sucedida, execute:
kubectl get pods
Você verá uma saída parecida com o exemplo a seguir:
NAME READY STATUS RESTARTS AGE aio-lnm-operator-7db49dc9fd-kjf5x 1/1 Running 0 78s
Crie o recurso personalizado Gerenciamento de rede em camadas criando um arquivo chamado level4.yaml com o seguinte conteúdo:
apiVersion: layerednetworkmgmt.iotoperations.azure.com/v1beta1 kind: Lnm metadata: name: level4 namespace: default spec: image: pullPolicy: IfNotPresent repository: mcr.microsoft.com/oss/envoyproxy/envoy-distroless tag: v1.27.0 replicas: 1 logLevel: "debug" openTelemetryMetricsCollectorAddr: "http://aio-otel-collector.azure-iot-operations.svc.cluster.local:4317" level: 4 allowList: enableArcDomains: true domains: - destinationUrl: "management.azure.com" destinationType: external - destinationUrl: "*.dp.kubernetesconfiguration.azure.com" destinationType: external - destinationUrl: "login.microsoftonline.com" destinationType: external - destinationUrl: "*.login.microsoft.com" destinationType: external - destinationUrl: "login.windows.net" destinationType: external - destinationUrl: "mcr.microsoft.com" destinationType: external - destinationUrl: "*.data.mcr.microsoft.com" destinationType: external - destinationUrl: "gbl.his.arc.azure.com" destinationType: external - destinationUrl: "*.his.arc.azure.com" destinationType: external - destinationUrl: "k8connecthelm.azureedge.net" destinationType: external - destinationUrl: "guestnotificationservice.azure.com" destinationType: external - destinationUrl: "*.guestnotificationservice.azure.com" destinationType: external - destinationUrl: "sts.windows.net" destinationType: external - destinationUrl: "k8sconnectcsp.azureedge.net" destinationType: external - destinationUrl: "*.servicebus.windows.net" destinationType: external - destinationUrl: "graph.microsoft.com" destinationType: external - destinationUrl: "*.arc.azure.net" destinationType: external - destinationUrl: "*.obo.arc.azure.com" destinationType: external - destinationUrl: "linuxgeneva-microsoft.azurecr.io" destinationType: external - destinationUrl: "graph.windows.net" destinationType: external - destinationUrl: "*.azurecr.io" destinationType: external - destinationUrl: "*.blob.core.windows.net" destinationType: external - destinationUrl: "*.vault.azure.net" destinationType: external - destinationUrl: "*.blob.storage.azure.net" destinationType: external sourceIpRange: - addressPrefix: "0.0.0.0" prefixLen: 0
Para criar a instância de Gerenciamento de Rede em Camadas com base no arquivo level4.yaml , execute:
kubectl apply -f level4.yaml
Esta etapa cria n pods, um serviço e dois mapas de configuração. n é baseado no número de réplicas no recurso personalizado.
Para validar a instância, execute:
kubectl get pods
A saída deve ser semelhante a:
NAME READY STATUS RESTARTS AGE aio-lnm-operator-7db49dc9fd-kjf5x 1/1 Running 0 78s aio-lnm-level4-7598574bf-2lgss 1/1 Running 0 4s
Para visualizar o serviço, execute:
kubectl get services
A saída deve ser semelhante ao exemplo a seguir:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE aio-lnm-level4 LoadBalancer 10.0.141.101 20.81.111.118 80:30960/TCP,443:31214/TCP 29s
Para visualizar os mapas de configuração, execute:
kubectl get cm
A saída deve ser semelhante ao exemplo a seguir:
NAME DATA AGE aio-lnm-level4-config 1 50s aio-lnm-level4-client-config 1 50s
Neste exemplo, a instância de Gerenciamento de Rede em Camadas está pronta para aceitar tráfego no IP
20.81.111.118
externo.
Preparar o cluster de nível 3
No nível 3, você cria um cluster K3S Kubernetes em uma máquina virtual Linux. Para simplificar a configuração do cluster, você pode criar a VM do Azure Linux Ubuntu 22.04.3 LTS com acesso à Internet e habilitar o ssh a partir de sua jumpbox.
Gorjeta
Num cenário mais realista que inicia a configuração em rede isolada, pode preparar a máquina com a imagem pré-construída para a sua solução ou a abordagem Air-Gap Install do K3S.
Na VM Linux, instale e configure o K3S usando os seguintes comandos:
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644
Configure o isolamento de rede para o nível 3. Use as etapas a seguir para configurar o cluster de nível 3 para enviar apenas tráfego para o Gerenciamento de Rede em Camadas no nível 4.
- Navegue até o grupo de segurança de rede da interface de rede da VM.
- Adicione uma regra de segurança de saída extra para negar todo o tráfego de saída da máquina virtual de nível 3.
- Adicione outra regra de saída com a prioridade mais alta para permitir a saída para o IP do cluster AKS de nível 4 nas portas 443 e 8084.
Provisionar o cluster em camada isolada para Arc
Com as etapas a seguir, você habilita o cluster de nível 3 usando a instância de Gerenciamento de Rede em Camadas no nível 4.
Configure a jumpbox para ter acesso kubectl ao cluster.
Gere o arquivo de configuração em sua VM Linux.
k3s kubectl config view --raw > config.level3
Na sua jumpbox, configure o acesso kubectl ao cluster k3s de nível 3 copiando o
config.level3
arquivo para o~/.kube
diretório e renomeie-o paraconfig
. A entrada do servidor no arquivo de configuração deve ser definida como o endereço IP ou nome de domínio da VM de nível 3.Consulte Configurar CoreDNS para usar mecanismos de extensão fornecidos pelo CoreDNS (o servidor DNS padrão para clusters K3S) para adicionar as URLs permitidas.
Execute os seguintes comandos na sua jumpbox para conectar o cluster ao Arc. Esta etapa requer a CLI do Azure. Instale a Az CLI, se necessário.
az login az account set --subscription <your Azure subscription ID> az connectedk8s connect -g <your resource group name> -n <your connected cluster name>
Para obter mais informações sobre connectedk8s, consulte Guia de início rápido: conectar um cluster Kubernetes existente ao Azure Arc .
Você deve ver a saída como o exemplo a seguir:
This operation might take a while... The required pre-checks for onboarding have succeeded. Azure resource provisioning has begun. Azure resource provisioning has finished. Starting to install Azure arc agents on the Kubernetes cluster. { "agentPublicKeyCertificate": "MIICCgKCAgEAmU+Pc55pc3sOE2Jo5JbAdk+2OprUziCbgfGRFfbMHO4dT7A7LDaDk7tWwvz5KwUt66eMrabI7M52H8xXvy1j7YwsMwR5TaSeHpgrUe1/4XNYKa6SN2NbpXIXA3w4aHgtKzENm907rYMgTO9gBJEZNJpqsfCdb3E7AHWQabUe9y9T8aub+arBHLQ3furGkv8JnN2LCPbvLnmeLfc1J5 .... ....
Seu cluster Kubernetes agora está habilitado para Arc e está listado no grupo de recursos fornecido no comando az connectedk8s connect. Você também pode validar o provisionamento desse cluster por meio do portal do Azure. Este guia de início rápido serve para mostrar a capacidade do Gerenciamento de Rede em Camadas para habilitar o Arc para seu cluster Kubernetes. Agora você pode experimentar as experiências Arc integradas neste cluster dentro da rede isolada.
Próximos passos
- Para entender como configurar um cluster em rede isolada para que as Operações do Azure IoT sejam implantadas, consulte Configurar o serviço de Gerenciamento de Rede em Camadas para habilitar as Operações IoT do Azure em uma rede isolada
- Para obter mais detalhes sobre como configurar ambientes de rede abrangentes para cenários relacionados às Operações do Azure IoT, consulte Criar ambiente de rede de exemplo