Compartir a través de


Preparar el clúster de Kubernetes habilitado para Azure Arc

Importante

Versión preliminar de operaciones de Azure IoT: habilitada 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.

Deberá implementar una nueva instalación de Azure IoT Operations cuando esté disponible una versión general. No podrá actualizar una instalación de versión preliminar.

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.

Un clúster de Kubernetes habilitado para Azure Arc es un requisito previo para implementar Azure IoT Operations Preview, habilitado por Azure Arc. En este artículo se describe cómo preparar un clúster antes de implementar operaciones de Azure IoT. En este artículo se incluyen instrucciones para máquinas Ubuntu y Windows.

Los pasos de este artículo preparan el clúster para una implementación de configuración segura, que es un proceso más largo pero listo para producción. Si quiere implementar operaciones de Azure IoT rápidamente y ejecutar una carga de trabajo de ejemplo con solo configuración de prueba, consulte inicio rápido: Ejecución de Azure IoT Operations Preview en GitHub Codespaces con K3s en su lugar. Para obtener más información sobre la configuración de prueba y la configuración segura, consulte Detalles de implementación > Elegir las características.

Requisitos previos

Microsoft admite Azure Kubernetes Service (AKS) Edge Essentials para implementaciones en Windows y K3s para implementaciones en Ubuntu. Para obtener una lista de combinaciones de hardware y software específicas que se prueban y validan, consulte Entornos validados.

Si quiere implementar operaciones de Azure IoT en una solución de varios nodos, use K3s en Ubuntu.

Para preparar un clúster de Kubernetes habilitado para Azure Arc, necesita lo siguiente:

  • Suscripción a Azure. 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.

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

    az extension add --upgrade --name azure-iot-ops
    az extension add --upgrade --name connectedk8s
    
  • Hardware que cumple los requisitos del sistema:

  • Si va a implementar operaciones de Azure IoT en un clúster de varios nodos con tolerancia a errores habilitada, revise los requisitos de hardware y almacenamiento en Preparación de linux para volúmenes perimetrales.

Crear y habilitar Arc en un clúster

En esta sección se proporcionan pasos para crear clústeres en entornos validados en Linux y Windows.

Para preparar un clúster de K3s Kubernetes en Ubuntu:

  1. Instale K3s siguiendo las instrucciones de la guía de inicio rápido de K3s.

  2. Compruebe que kubectl se instaló como parte de K3s. Si no es así, siga las instrucciones para instalar kubectl en Linux.

    kubectl version --client
    
  3. Siga estas instrucciones para instalar Helm.

  4. Cree un archivo yaml de configuración de K3s en .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.yaml
    
  5. Ejecute el comando siguiente para aumentar los límites de inspección o instancia del usuario.

    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 -p
    
  6. Para mejorar el rendimiento, aumente el límite del descriptor de archivo:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    
    sudo sysctl -p
    

Configuración de clústeres de varios nodos para Azure Container Storage

En clústeres de varios nodos con al menos tres nodos, tiene la opción de habilitar la tolerancia a errores para el almacenamiento con Azure Container Storage habilitado por Azure Arc al implementar operaciones de Azure IoT.

Si desea habilitar la tolerancia a errores durante la implementación, configure los clústeres siguiendo los pasos descritos en Preparar Linux para volúmenes perimetrales mediante un clúster de Ubuntu de varios nodos.

Habilite su clúster para Arc

Conecte el clúster a Azure Arc para que se pueda administrar de forma remota.

  1. En la máquina donde implementó el clúster de Kubernetes, inicie sesión con la CLI de Azure:

    az login
    

    Si recibe un error que indica El dispositivo debe administrarse para acceder al recurso, vuelva a ejecutar az login y asegúrese de iniciar sesión interactivamente con un explorador.

  2. Después de iniciar sesión, la CLI de Azure muestra todas las suscripciones e indica la suscripción predeterminada con un asterisco *. Para continuar con la suscripción predeterminada, seleccione Enter. De lo contrario, escriba el número de la suscripción de Azure que desea usar.

  3. Registre los proveedores de recursos necesarios en la suscripción.

    Nota:

    Este paso solo debe ejecutarse una vez por suscripción. Para registrar proveedores de recursos, necesita permiso para realizar la operación de /register/action, que se incluye en los roles Colaborador y Propietario de la suscripción. Para más información, vea Tipos y proveedores de recursos de 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"
    
  4. Use el comando az group create para crear un grupo de recursos en la suscripción de Azure donde almacenar todos los recursos:

    Para obtener la lista de regiones de Azure admitidas actualmente, vea Regiones admitidas.

    az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
    
  5. Use el comando az connectedk8s connect al clúster de Kubernetes y administrarlo como parte del grupo de recursos de Azure.

    az connectedk8s connect --name <CLUSTER_NAME> -l <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID> --enable-oidc-issuer --enable-workload-identity
    
  6. Obtenga la dirección URL del emisor del clúster.

    az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
    

    Guarde la salida de este comando para usarla en los pasos siguientes.

  7. Cree un archivo de configuración k3s.

    sudo nano /etc/rancher/k3s/config.yaml
    
  8. Agregue el siguiente contenido al config.yaml archivo y reemplace el marcador de posición por la <SERVICE_ACCOUNT_ISSUER> dirección URL del emisor del clúster.

    kube-apiserver-arg:
     - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
     - service-account-max-token-expiration=24h
    
  9. Guarde el archivo y salga del editor nano.

  10. Obtenga el objectId de la aplicación Microsoft Entra ID que usa el servicio Azure Arc y guárdelo como una variable de entorno. Ejecute el siguiente comando exactamente como está escrito, sin cambiar el valor GUID.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  11. Use el comando az connectedk8s enable-features para habilitar la compatibilidad con una ubicación personalizada en el clúster. Este comando usa objectId de la aplicación de Microsoft Entra ID que el servicio Azure Arc utiliza. Ejecute este comando en la máquina donde implementó el clúster de Kubernetes:

    az connectedk8s enable-features -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    
  12. Reinicie K3s.

    systemctl restart k3s
    

Comprobación del clúster

Para comprobar que el clúster está listo para la implementación de operaciones de Azure IoT, puede usar el comando del asistente de verify-host en la extensión azure IoT Operations para la CLI de Azure. Cuando se ejecuta en el host del clúster, este comando auxiliar comprueba la conectividad con los puntos de conexión de Azure Resource Manager y Microsoft Container Registry.

az iot ops verify-host

Configuración avanzada

En este momento, cuando tiene un clúster de Kubernetes habilitado para Azure Arc, pero antes de implementar operaciones de Azure IoT en él, es posible que quiera configurar el clúster para escenarios avanzados.

Pasos siguientes

Ahora que tiene un clúster de Kubernetes habilitado para Azure Arc, puede implementar Azure IoT Operations.