Compartir a través de


Preparar el clúster de Kubernetes habilitado para Azure Arc

Un clúster de Kubernetes habilitado para Azure Arc es un requisito previo para implementar Operaciones de IoT de Azure, 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 Operaciones de IoT de Azure 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. 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:

  • Una suscripción de Azure con el rol de Propietario o una combinación de los 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.

  • Grupo de recursos de Azure. Solo se admite una instancia de Operaciones de IoT de Azure por grupo de recursos. Para crear un nuevo grupo de recursos, use el comando az group create. 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>
    
  • CLI de Azure versión 2.64.0 o posterior instalada en el equipo del clúster. 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 la extensión connectedk8s para la CLI de Azure:

    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. Cree un clúster K3s de un solo nodo o varios nodos. Para obtener ejemplos, consulte la guía de inicio rápido de K3s o los proyectos relacionados con 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
    

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 en la CLI de Azure con su cuenta de usuario de Microsoft Entra que tenga los roles necesarios para la suscripción 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 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 --disable-auto-upgrade
    

    Para evitar actualizaciones no planeadas en Azure Arc y las extensiones de Azure Arc que Operaciones de IoT de Azure usa como dependencias, este comando deshabilita la actualización automática. En su lugar, actualice manualmente los agentes según sea necesario.

    Importante

    Si en el entorno se usa un servidor proxy o una puerta de enlace de Azure Arc, modifique el comando az connectedk8s connect con la información del proxy:

    1. Siga las instrucciones de Conexión mediante un servidor proxy saliente o Incorporación de clústeres de Kubernetes a Azure Arc con Azure Arc Gateway.
    2. Agregue 169.254.169.254 al parámetro --proxy-skip-range del comando az connectedk8s connect. En Registro de dispositivos de Azure se usa este punto de conexión local a fin de obtener tokens de acceso para la autorización.

    Operaciones de IoT de Azure no admite servidores proxy que necesiten un certificado de confianza.

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

  6. Cree un archivo de configuración k3s.

    sudo nano /etc/rancher/k3s/config.yaml
    
  7. 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
    
  8. Guarde el archivo y salga del editor nano.

  9. Prepárese para habilitar el servicio Azure Arc, ubicación personalizada, en el clúster de Arc. Para ello, obtenga el identificador de objeto de la ubicación personalizada y guárdelo como la variable de entorno, OBJECT_ID. Debe iniciar sesión en la CLI de Azure con una cuenta de usuario de Microsoft Entra para ejecutar correctamente el comando, no con una entidad de servicio. 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)
    

Nota:

Si recibe el error: "No se puede capturar el identificador de objetos de la aplicación custom-locations. Continúe sin habilitar la característica. No tiene permisos suficientes para completar la operación", puede usar una entidad de servicio que no tenga los permisos necesarios para recuperar el identificador de objetos de la ubicación personalizada. Inicie sesión en la CLI de Azure con una cuenta de usuario de Microsoft Entra que cumpla los requisitos previos.

  1. Use el comando az connectedk8s enable-features para habilitar la función de ubicación personalizada en el clúster de Arc. Este comando usa la variable de entorno OBJECT_ID guardada del paso anterior para establecer el valor del parámetro custom-locations-oid. 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
    
  2. Reinicie K3s.

    systemctl restart k3s
    

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.

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.