Compartir a través de


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).

  1. Configure kubectl para administrar su clúster AKS desde su jumpbox siguiendo los pasos en Conectarse al clúster.

  2. 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
    
  3. 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
    
  4. 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
    
  5. 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.

  6. 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
    
  7. 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
    
  8. 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
    
  9. 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.118externa.

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.

  1. 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
    
  2. 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.

    Screenshot of network security group outbound rules.

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.

  1. 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 a config. 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.

  2. 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.

  3. 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 .

  4. 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
      ....
      ....
    
  5. 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