Inicio rápido: Configuración de Azure IoT Layered Network Management Preview para habilitar un clúster en el entorno de Azure
Importante
Operaciones de IoT de Azure, habilitado por Azure Arc, está actualmente en VERSIÓN PRELIMINAR. No se debería usar este software en versión preliminar en entornos de producción.
Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.
En este inicio rápido, configurará Azure IoT Layered Network Management Preview en una red de nivel 4 y 3 de Purdue. El nivel de red 4 tiene acceso a Internet y el nivel 3 no. Configure la administración de red superpuesta para enrutar el tráfico de red de nivel 3 a Azure. Por último, puede habilitar para Arc el clúster K3S en el nivel 3 incluso no está conectado directamente a Internet.
- Nivel 4 de un clúster de AKS con la Administración de red superpuesta implementada.
- El nivel 3 es un clúster K3S que se ejecuta en una máquina virtual Linux que utiliza la instancia de Administración de red superpuesta del nivel 4 para lograr la conexión con Azure. La red de nivel 3 está configurada para tener acceso saliente a la red de nivel 4 en los puertos 443 y 8084. Todos los demás accesos salientes están deshabilitados.
La arquitectura de Administración de red superpuesta requiere la configuración de DNS en la red de nivel 3, donde las URL de la lista permitida se redireccionan a la red de nivel 4. En este ejemplo, este ajuste se realiza utilizando una configuración automatizada basada en CoreDNS, el mecanismo de resolución DNS por defecto que se incluye con k3s.
Requisitos previos
Estos requisitos previos solo son para implementar la administración de redes superpuestas de forma independiente y habilitar para Arc el clúster de nivel secundario.
- Un clúster de AKS
- Una máquina virtual Linux Ubuntu 22.04.3 LTS de Azure
- Una jumpbox o una máquina de instalación que tiene acceso a Internet y a las redes de nivel 3 y nivel 4
Implementación de la versión preliminar de administración de red superpuesta en el clúster de AKS
Estos pasos implementan la Administración de red superpuesta en el clúster AKS. El clúster es la capa superior del modelo ISA-95. Al final de esta sección, tendrá una instancia de Administración de red superpuesta lista para aceptar tráfico del clúster habilitado para Azure Arc que se encuentra debajo y admitir la implementación del servicio Azure IoT Operations (versión preliminar).
Configure
kubectl
para administrar su clúster AKS desde su jumpbox siguiendo los pasos en Conectarse al clúster.Instale el operador Administración de red superpuesta con el siguiente comando de la CLI de 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 la instalación se ha realizado correctamente, ejecute:
kubectl get pods -n azure-iot-operations
Debería ver una salida parecida a la del siguiente ejemplo:
NAME READY STATUS RESTARTS AGE aio-lnm-operator-7db49dc9fd-kjf5x 1/1 Running 0 78s
Cree el recurso personalizado Administración de red superpuesta creando un archivo llamado level4.yamlcon el siguiente contenido:
apiVersion: layerednetworkmgmt.iotoperations.azure.com/v1beta1 kind: Lnm metadata: name: level4 namespace: azure-iot-operations 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: "*.ods.opinsights.azure.com" destinationType: external - destinationUrl: "*.oms.opinsights.azure.com" destinationType: external - destinationUrl: "*.monitoring.azure.com" destinationType: external - destinationUrl: "*.handler.control.monitor.azure.com" destinationType: external - destinationUrl: "quay.io" destinationType: external - destinationUrl: "*.quay.io" destinationType: external - destinationUrl: "docker.io" destinationType: external - destinationUrl: "*.docker.io" destinationType: external - destinationUrl: "*.docker.com" destinationType: external - destinationUrl: "gcr.io" destinationType: external - destinationUrl: "*.googleapis.com" destinationType: external - destinationUrl: "login.windows.net" destinationType: external - destinationUrl: "graph.windows.net" destinationType: external - destinationUrl: "msit-onelake.pbidedicated.windows.net" destinationType: external - destinationUrl: "*.vault.azure.net" destinationType: external - destinationUrl: "*.k8s.io" destinationType: external - destinationUrl: "*.pkg.dev" destinationType: external - destinationUrl: "github.com" destinationType: external - destinationUrl: "raw.githubusercontent.com" destinationType: external sourceIpRange: - addressPrefix: "0.0.0.0" prefixLen: 0
Para crear la instancia de Administración de red superpuesta basada en el archivo level4.yaml, ejecute:
kubectl apply -f level4.yaml
Este paso crea n pods, un servicio y dos mapas de configuración. n se basa en el número de réplicas del recurso personalizado.
Para validar la instancia, ejecute:
kubectl get pods -n azure-iot-operations
La salida debe ser similar a la siguiente:
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 ver el servicio, ejecute:
kubectl get services -n azure-iot-operations
La salida debería tener un aspecto similar al ejemplo siguiente:
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 ver los mapas de configuración, ejecute:
kubectl get cm -n azure-iot-operations
La salida debería tener un aspecto similar al ejemplo siguiente:
NAME DATA AGE aio-lnm-level4-config 1 50s aio-lnm-level4-client-config 1 50s
En este ejemplo, la instancia de administración de red superpuesta está lista para aceptar el tráfico en la dirección IP
20.81.111.118
externa.
Preparación del clúster de nivel 3
En el nivel 3, creará un clúster de Kubernetes K3S en una máquina virtual Linux. Para simplificar la configuración del clúster, puede crear la máquina virtual de Linux Ubuntu 22.04.3 LTS de Azure con acceso a Internet y habilitar ssh desde la jumpbox.
Sugerencia
En un escenario más realista que inicia la configuración en la red aislada, puede preparar la máquina con la imagen pregenerada para la solución o el enfoque de instalación de Air-Gap de K3S.
En la máquina virtual Linux, instale y configure K3S mediante los siguientes comandos:
curl -sfL https://get.k3s.io | sh -s - --disable=traefik --write-kubeconfig-mode 644
Configure el aislamiento de red para el nivel 3. Siga estos pasos para configurar el clúster de nivel 3 para enviar solo el tráfico a la administración de redes superpuestas en el nivel 4.
- Vaya al grupo de seguridad de red de la interfaz de red de la máquina virtual.
- Agregue una regla de seguridad de salida adicional para denegar todo el tráfico saliente desde la máquina virtual de nivel 3.
- Agregue otra regla de salida con la prioridad más alta para permitir la salida a la dirección IP del clúster de AKS de nivel 4 en los puertos 443 y 8084.
Aprovisionamiento del clúster en una capa aislada para Arc
Con los pasos siguientes, habilitará el clúster de nivel 3 para Arc mediante la instancia de administración de red superpuesta en el nivel 4.
Configure el jumpbox para que kubectl tenga acceso al clúster.
Genere el archivo de configuración en la máquina virtual Linux.
k3s kubectl config view --raw > config.level3
En su jumpbox, configure el acceso kubectl al cluster k3s de nivel 3 copiando el archivo
config.level3
en el directorio~/.kube
y renombrándolo aconfig
. La entrada del servidor en el archivo de configuración debe establecerse en la dirección IP o nombre de dominio de la máquina virtual de nivel 3.Consulte Configurar CoreDNS para utilizar los mecanismos de extensión proporcionados por CoreDNS (el servidor DNS por defecto para los clústeres K3S) para agregar las URL permitidas para ser resueltas por CoreDNS.
Ejecute los siguientes comandos en el jumpbox para conectar el clúster a Arc. Este paso requiere la CLI de Azure. Instale la CLI de Az si es necesario.
az login az account set --subscription <your Azure subscription ID> az connectedk8s connect -g <your resource group name> -n <your connected cluster name>
Para obtener más información sobre connectedk8s, consulte Inicio rápido: Conexión de un clúster de Kubernetes existente a Azure Arc .
Debería ver una salida como la del siguiente ejemplo:
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 .... ....
Su clúster Kubernetes ya está habilitado para Arc y aparece en el grupo de recursos que proporcionó en el comando conectar az connectedk8s. También puede validar el aprovisionamiento de este clúster a través de Azure Portal. Este inicio rápido es para mostrar la funcionalidad de Administración de rede superpuesta para habilitar Arc para el clúster de Kubernetes. Ahora puede probar las experiencias integradas de Arc en este clúster dentro de la red aislada.
Pasos siguientes
- Para saber cómo configurar un clúster en una red aislada para las operaciones de Azure IoT que se van a implementar, consulte Configuración del servicio de administración de redes superpuestas para habilitar la Versión preliminar de Operaciones de IoT de Azure en una red aislada
- Para más información sobre cómo configurar entornos de red completos para escenarios relacionados con Operaciones de Azure IoT, consulte Creación de un entorno de red de ejemplo
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de