Compartir a través de


Creación y configuración de un clúster de AKS Edge Essentials que pueda ejecutar operaciones de Azure IoT

Azure Kubernetes Service (AKS) Edge Essentials es una de las plataformas de clúster compatibles para operaciones de Azure IoT. Puede usar AKS Edge Essentials para crear un clúster de Kubernetes administrado por Microsoft e implementar Operaciones de Azure IoT en él como una carga de trabajo. En este artículo se describen los pasos para ejecutar un script que crea un clúster de Kubernetes de AKS Edge Essentials con las configuraciones necesarias para operaciones de Azure IoT y, a continuación, conecta ese clúster a Azure Arc.

Nota:

Azure IoT Operations admite AKS Edge Essentials cuando se implementa en clústeres de una sola máquina. La implementación de clústeres en varias máquinas es una característica experimental.

Requisitos previos para ejecutar el script

Para ejecutar el script, necesita los siguientes requisitos previos:

  • Una suscripción de Azure con el rol Propietario o una combinación de roles de colaborador y administrador de acceso de usuario. Para comprobar el nivel de acceso, vaya a la suscripción, seleccione Control de acceso (IAM) en el lado izquierdo de Azure Portal y, a continuación, seleccione Ver mi acceso. Si no tiene una suscripción de Azure, cree una gratuita antes de comenzar.

  • CLI de Azure versión 2.64.0 o posterior instalada en su máquina de desarrollo. Use az --version para comprobar la versión y az upgrade para actualizarla si es necesario. Para obtener más información, consulte Cómo instalar la CLI de Azure.

  • Instale la versión más reciente de las extensiones connectedk8s para la CLI de Azure:

    az extension add --upgrade --name connectedk8s 
    
  • Requisitos de hardware: asegúrese de que la máquina tenga un mínimo de 10 GB de RAM disponible, 4 vCPU disponibles y 52 GB de espacio libre en disco reservado para operaciones de Azure IoT.

Creación de un clúster habilitado para Arc

El script AksEdgeQuickStartForAio.ps1 automatiza el proceso de creación y conexión de un clúster, y es la ruta recomendada para implementar operaciones de Azure IoT en AKS Edge Essentials. Este script realiza las siguientes tareas:

  • Descarga la versión más reciente de MSI de AKS Edge Essentials desde este repositorio.
  • Instala AKS Edge Essentials e implementa y crea un único clúster de Kubernetes de máquina en la máquina Windows.
  • Se conecta a la suscripción de Azure, crea un grupo de recursos si aún no existe y conecta el clúster a Arc para crear un clúster de Kubernetes habilitado para Arc.
  • Habilita la característica de ubicación personalizada en el clúster de Kubernetes habilitado para Arc.
  • Habilita la característica de federación de identidades de carga de trabajo en el clúster de Kubernetes habilitado para Arc.
  • Implementa el aprovisionamiento de rutas de acceso local.
  • Configura reglas de firewall en la máquina Windows host para el agente MQTT.
  • En la máquina virtual Linux, que actúa como nodo del plano de control de Kubernetes:
    • Configura el proxy de puerto para el intervalo IP predeterminado del servicio Kubernetes de 10.96.0.0/28.
    • Configura las reglas de tabla de IP:
      • sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 9110 -j ACCEPT
      • sudo iptables -A INPUT -p tcp --dport (10124, 8420, 2379, 50051) -j ACCEPT

Para ejecutar el script de inicio rápido, siga estos pasos:

  1. Abra una ventana de PowerShell con privilegios elevados y cambie el directorio a una carpeta de trabajo.

  2. Obtenga el objectId de la aplicación de Microsoft Entra ID que usa el servicio Azure Arc. Ejecute el siguiente comando exactamente como está escrito, sin cambiar el valor GUID.

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. Ejecute los siguientes comandos y reemplace los valores de marcador de posición por la información:

    $url = "https://raw.githubusercontent.com/Azure/AKS-Edge/main/tools/scripts/AksEdgeQuickStart/AksEdgeQuickStartForAio.ps1"
    Invoke-WebRequest -Uri $url -OutFile .\AksEdgeQuickStartForAio.ps1
    Unblock-File .\AksEdgeQuickStartForAio.ps1
    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>"
    
    Marcador Value
    SUBSCRIPTION_ID Id. de la suscripción de Azure. Si no conoce el identificador de suscripción, vea Búsqueda de la suscripción de Azure.
    TENANT_ID Identificador del inquilino de Microsoft Entra. Si no conoce el identificador de inquilino, vea Buscar el inquilino de Microsoft Entra.
    RESOURCE_GROUP_NAME Nombre de un grupo de recursos existente o un nombre para crear un nuevo grupo de recursos. Solo se admite una instancia de Operaciones de IoT de Azure por grupo de recursos.
    LOCATION Región de Azure cercana a usted. Para obtener la lista de las regiones de Azure compatibles con Azure IoT Operations, consulte Regiones admitidas.
    CLUSTER_NAME Nombre del nuevo clúster que se va a crear.
    ARC_APP_OBJECT_ID Valor del identificador de objeto que recuperó en el paso 2.

    Si hay problemas durante la implementación, como si la máquina se reinicia como parte de este proceso, vuelva a ejecutar el conjunto de comandos.

  4. Ejecute los comandos siguientes para comprobar que la implementación se haya realizado correctamente:

    Import-Module AksEdge
    Get-AksEdgeDeploymentInfo
    

    En la salida del Get-AksEdgeDeploymentInfo comando, debería ver que el estado de Arc del clúster es Conectado.

Comprobación del clúster

Para comprobar que el clúster de Kubernetes ahora está habilitado para Azure Arc, ejecute el siguiente comando:

kubectl get deployments,pods -n azure-arc

El resultado es similar al ejemplo siguiente:

NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/clusterconnect-agent         1/1     1            1           10m
deployment.apps/extension-manager            1/1     1            1           10m
deployment.apps/clusteridentityoperator      1/1     1            1           10m
deployment.apps/controller-manager           1/1     1            1           10m
deployment.apps/flux-logs-agent              1/1     1            1           10m
deployment.apps/cluster-metadata-operator    1/1     1            1           10m
deployment.apps/extension-events-collector   1/1     1            1           10m
deployment.apps/config-agent                 1/1     1            1           10m
deployment.apps/kube-aad-proxy               1/1     1            1           10m
deployment.apps/resource-sync-agent          1/1     1            1           10m
deployment.apps/metrics-agent                1/1     1            1           10m

NAME                                              READY   STATUS    RESTARTS        AGE
pod/clusterconnect-agent-5948cdfb4c-vzfst         3/3     Running   0               10m
pod/extension-manager-65b8f7f4cb-tp7pp            3/3     Running   0               10m
pod/clusteridentityoperator-6d64fdb886-p5m25      2/2     Running   0               10m
pod/controller-manager-567c9647db-qkprs           2/2     Running   0               10m
pod/flux-logs-agent-7bf6f4bf8c-mr5df              1/1     Running   0               10m
pod/cluster-metadata-operator-7cc4c554d4-nck9z    2/2     Running   0               10m
pod/extension-events-collector-58dfb78cb5-vxbzq   2/2     Running   0               10m
pod/config-agent-7579f558d9-5jnwq                 2/2     Running   0               10m
pod/kube-aad-proxy-56d9f754d8-9gthm               2/2     Running   0               10m
pod/resource-sync-agent-769bb66b79-z9n46          2/2     Running   0               10m
pod/metrics-agent-6588f97dc-455j8                 2/2     Running   0               10m

Pasos siguientes