Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un clúster de Kubernetes habilitado para Azure Arc es un requisito previo para implementar Operaciones de IoT de Azure. Este artículo describe cómo preparar ese clúster, con orientación para Ubuntu, Windows, Azure Local y vSphere Kubernetes Service (VKS).
Si desea implementar Operaciones de IoT de Azure rápidamente y ejecutar una carga de trabajo de ejemplo en un entorno de prueba, consulte el Quickstart: Ejecutar Operaciones de IoT de Azure en GitHub Codespaces con K3s.
Requisitos previos
Para despliegues multi-nodo, usa K3s en Ubuntu, AKS en Azure Local o vSphere Kubernetes Service (VKS). AKS Edge Essentials en Windows solo soporta despliegues de un solo nodo.
Para preparar un clúster de Kubernetes habilitado para Azure Arc, necesita lo siguiente:
Una suscripción de Azure con el rol Owner o una combinación de roles Contributor y Administrador de acceso de usuario. Para comprobar el nivel de acceso, vaya a la suscripción, seleccione Access control (IAM) en el lado izquierdo del portal de Azure y seleccione View my access. Si no tiene una suscripción de Azure, cree una gratuita antes de comenzar.
CLI de Azure está instalado en la máquina de desarrollo. Consulta las extensiones disponibles de CLI de Azure para la versión mínima requerida para la extensión connectedk8s. Use
az --versionpara comprobar la versión yaz upgradepara actualizar si es necesario. Para más información, consulte Instalación de la CLI de Azure.La extensión connectedk8s para la CLI de Azure. Use el siguiente comando para agregar la extensión o actualizarla a la versión más reciente:
az extension add --upgrade --name connectedk8sUn grupo de recursos 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, consulte Regiones admitidas.
az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
Hardware que cumple los requisitos del sistema:
Si va a implementar Operaciones de IoT de Azure en un clúster de varios nodos con tolerancia a errores habilitada, revise los requisitos de hardware y almacenamiento en Prepare Linux para volúmenes perimetrales.
Los CLI de Azure ejemplos de este artículo usan variables de entorno para que puedas establecer cada valor una vez y luego copiar y pegar los comandos as-is. Si usas el entorno Operaciones de IoT de Azure Codespaces del quickstart, estas variables ya están configuradas para ti y puedes saltarte este paso. De lo contrario, configura las siguientes variables de entorno en tu shell antes de ejecutar los comandos.
Los siguientes scripts establecen las variables de entorno más usadas:
| Variable del entorno | Descripción |
|---|---|
SUBSCRIPTION_ID |
El ID de la suscripción que contiene tu instancia de Operaciones de IoT de Azure. |
RESOURCE_GROUP |
El nombre del grupo de recursos que contiene tu instancia de Operaciones de IoT de Azure. |
AIO_INSTANCE_NAME |
El nombre de tu instancia de Operaciones de IoT de Azure. Para listar tus instancias, ejecuta az iot ops list -o table. |
CLUSTER_NAME |
El nombre del clúster Kubernetes habilitado para Azure Arc que aloja tu instancia. |
LOCATION |
La región de Azure que se usará para los nuevos recursos, por ejemplo eastus. |
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>
Solo necesitas establecer las variables que utiliza este artículo. Este artículo podría utilizar variables de entorno adicionales para los nombres de recursos que elijas. El artículo explica cómo situarlos donde se introducen.
Creación y habilitación de Arc en un clúster
Esta sección proporciona pasos para crear clústeres en entornos validados en Ubuntu, Windows, Azure Local y vSphere Kubernetes Service (VKS).
Para preparar un clúster de Kubernetes K3s en Ubuntu:
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.
Comprueba que K3s esté instalado
kubectl. Si no es así, siga las instrucciones para instalar kubectl en Linux.kubectl version --clientSiga estas instrucciones para Instalar Helm.
Crea un archivo YAML de configuración 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.yamlEjecute el comando siguiente para aumentar los límites de inspección o instancia de 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 -pPara 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
Habilita tu clúster de K3s con Arc
Conecta tu clúster a Azure Arc para poder gestionarlo de forma remota.
Desde una máquina que tenga
kubectlacceso a tu clúster, inicia sesión en CLI de Azure con tu cuenta de usuario de Microsoft Entra que tenga los roles requeridos para la suscripción a Azure:az loginSi en algún momento aparece un error que diga que tu dispositivo debe ser gestionado para acceder a tu recurso, ejecuta
az loginde nuevo y asegúrate de iniciar sesión de forma interactiva usando un navegador.Después de iniciar sesión, la CLI de CLI de Azure muestra todas tus suscripciones e indica tu suscripción predeterminada con un asterisco
*. Para continuar con la suscripción predeterminada, seleccioneEnter. De lo contrario, escriba el número de la suscripción de Azure que desea usar.Registre los proveedores de recursos necesarios en la suscripción.
Nota
Solo tienes que hacer este paso una vez por suscripción. Para registrar proveedores de recursos, necesitas permiso para realizar la
/register/actionoperación, que incluye los roles de Contribuidor y Propietario de suscripción. Para obtener más información, consulte proveedores de recursos de Azure y tipos.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"Use el comando az connectedk8s connect para habilitar Arc el clúster de Kubernetes y administrarlo como parte del grupo de recursos de Azure.
az connectedk8s connect --name $CLUSTER_NAME -l $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --enable-oidc-issuer --enable-workload-identity --disable-auto-upgradePara evitar actualizaciones no planeadas de Azure Arc y las extensiones de Arc del sistema que Operaciones de IoT de Azure usa como dependencias, este comando deshabilita la actualización automática. En su lugar, actualizar manualmente los agentes según sea necesario.
Importante
Si el entorno usa un servidor proxy o una puerta de enlace de Azure Arc, modifique el comando
az connectedk8s connectcon la información del proxy:- Siga las instrucciones de Conectar utilizando un servidor proxy de salida o Incorporar clústeres de Kubernetes a Azure Arc con Azure Arc Gateway.
- Agregue
169.254.169.254al parámetro--proxy-skip-rangedel comandoaz connectedk8s connect. Registro de Dispositivos de Azure usa este extremo local para obtener tokens de acceso para autorización.
Operaciones de IoT de Azure no admite servidores proxy que requieran un certificado de confianza.
Obtenga la dirección URL del emisor del clúster.
az connectedk8s show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query oidcIssuerProfile.issuerUrl --output tsvGuarde la salida de este comando para usarla en los pasos siguientes.
Crea un archivo de configuración de K3s.
sudo nano /etc/rancher/k3s/config.yamlAgregue el siguiente contenido al
config.yamlarchivo 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=24hGuarde el archivo y salga del editor nano.
Prepárese para habilitar el servicio de Azure Arc y la ubicación personalizada en su clúster de Arc al obtener el identificador del objeto de ubicación personalizada y guardarlo como la variable de entorno OBJECT_ID. Debes iniciar sesión en CLI de Azure con una cuenta de usuario de Microsoft Entra, no un principal de servicio, para ejecutar el comando correctamente. Ejecute el siguiente comando exactamente como se escribe, 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 oid de la aplicación "custom-locations". Continuar sin habilitar la característica. Privilegios insuficientes para completar la operación," es posible que la entidad de servicio no tenga los permisos necesarios para recuperar el identificador de objeto de la ubicación personalizada. Inicia sesión en CLI de Azure con una cuenta de usuario de Microsoft Entra que cumpla los requisitos previos. Para obtener más información, consulte Creación y administración de ubicaciones personalizadas.
Use el comando az connectedk8s enable-features para habilitar la función de ubicación personalizada en el clúster de Arc. Este comando utiliza la variable de entorno OBJECT_ID que guardaste en el 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-locationsReinicie K3s.
systemctl restart k3s
Configurar Azure Container Storage habilitado por Azure Arc
Características como los puntos de conexión de almacenamiento local de flujo de datos y el conector multimedia usan opcionalmente Azure Container Storage habilitado por Azure Arc (ACSA) para sincronizar los datos locales con la nube. ACSA no está instalado como parte de Operaciones de IoT de Azure, así que debes instalarlo por separado.
Para aprender a instalar ACSA en tu clúster Kubernetes:
- Revisa Qué es Azure Container Storage habilitado por Azure Arc.
- Consulte Preparar Linux para Edge Volumes.
- Sigue los pasos en Instalar almacenamiento de contenedores de Azure habilitado por Azure Arc Edge Volumes.
Pasos siguientes
Ahora que tiene un clúster de Kubernetes habilitado para Azure Arc, puede implementar Operaciones de IoT de Azure.
- Use su propia entidad emisora: si desea configurar su propia entidad emisora de certificados en el clúster antes de implementar Operaciones de IoT de Azure.
- Implementación en un clúster de prueba: para una evaluación y pruebas rápidas antes de realizar la implementación en producción.
- Implementación en un clúster de producción: para cargas de trabajo listas para producción con una configuración segura.