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 yaz 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:
- Asegúrese de que la máquina tiene un mínimo de 16 GB de RAM disponible y 8 vCPU disponibles reservadas para operaciones de Azure IoT.
- Requisitos del sistema Kubernetes habilitado para Azure Arc.
- Requisitos de K3s.
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:
Instale K3s siguiendo las instrucciones de la guía de inicio rápido de K3s.
Compruebe que kubectl se instaló como parte de K3s. Si no es así, siga las instrucciones para instalar kubectl en Linux.
kubectl version --client
Siga estas instrucciones para instalar Helm.
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
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
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.
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.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, 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:
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"
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>
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
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.
Cree un archivo de configuración k3s.
sudo nano /etc/rancher/k3s/config.yaml
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
Guarde el archivo y salga del editor nano.
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)
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
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.
- Si desea habilitar las características de observabilidad en el clúster, siga los pasos descritos en Implementación de recursos de observabilidad y configuración de registros.
- Si desea configurar su propio emisor de certificados en el clúster, siga los pasos descritos en Administración de certificados>traiga su propio emisor.
Pasos siguientes
Ahora que tiene un clúster de Kubernetes habilitado para Azure Arc, puede implementar Azure IoT Operations.