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.
En este inicio rápido, implementará Operaciones de IoT de Azure en un clúster de Kubernetes habilitado para Azure Arc para que pueda administrar de forma remota los dispositivos y las cargas de trabajo. Al final del inicio rápido, tiene un clúster que puede administrar desde la nube. El resto de los inicios rápidos de esta serie integral se basan en este para definir recursos de ejemplo, canalizaciones de procesamiento de datos y visualizaciones.
Antes de empezar
Esta serie de inicios rápidos está pensada para ayudarle a empezar a usar Operaciones de IoT de Azure lo más rápido posible para poder evaluar un escenario de un extremo a otro. En un verdadero entorno de desarrollo o producción, varios equipos que trabajan juntos realizan estas tareas y algunas pueden requerir permisos elevados.
Para obtener la mejor experiencia de usuario nueva, se recomienda usar una cuenta gratuita de Azure para que tenga permisos de propietario sobre los recursos de estos inicios rápidos.
Usamos GitHub Codespaces como entorno virtual para este inicio rápido para que pueda probar el escenario sin instalar nuevas herramientas en sus propias máquinas. Sin embargo, si quiere implementar operaciones de Azure IoT en un clúster local en Ubuntu o Azure Kubernetes Service (AKS), consulte Preparación del clúster de Kubernetes habilitado para Azure Arc.
Importante
Los espacios de código son fáciles de configurar rápidamente y desmontar más adelante, pero no son adecuados para producción, evaluación de rendimiento o pruebas de escalado. Use GitHub Codespaces solo con fines de exploración.
El entorno de Codespaces es suficiente para completar los pasos de inicio rápido, pero no admite configuraciones avanzadas, como la configuración segura.
Requisitos previos
Antes de comenzar, prepare los siguientes requisitos previos:
Suscripción a Azure. Si no tiene una suscripción de Azure, cree una gratuita antes de comenzar.
Una cuenta de GitHub.
Visual Studio Code instalado en la máquina de desarrollo. Para obtener más información, consulte Descargar Visual Studio Code.
Permisos Microsoft.Authorization/roleAssignments/write en el nivel de grupo de recursos.
¿Qué problema resolveremos?
Operaciones de IoT de Azure es un conjunto de servicios de datos que se ejecutan en clústeres de Kubernetes. Quiere que estos clústeres se administren de forma remota desde la nube y puedan comunicarse de forma segura con los puntos de conexión y los recursos en la nube. En esta guía de inicio rápido abordamos estas cuestiones con las siguientes tareas:
- Cree un clúster de Kubernetes en GitHub Codespaces.
- Conectar el clúster a Azure Arc para la administración remota.
- Cree un registro de esquema.
- Implementar Operaciones de IoT de Azure en el clúster.
Crear clúster
En esta sección, creará un nuevo clúster. Si desea reutilizar un clúster en el que implementó operaciones de Azure IoT antes, consulte los pasos descritos en Limpieza de recursos para desinstalar operaciones de Azure IoT antes de continuar.
El Azure-Samples/explore-iot-operations codespace está preconfigurado con:
- K3s ejecutándose en K3d para un clúster ligero de Kubernetes
- CLI de Azure
- Kubectl para administrar recursos de Kubernetes
- Otras herramientas útiles, como Helm y k9s
Para crear el codespace y el clúster, siga estos pasos:
Cree un espacio de código en GitHub Codespaces.
Proporcione los siguientes secretos recomendados para el espacio de código:
Parámetro Value SUBSCRIPTION_ID El identificador de la suscripción a Azure. GRUPO_DE_RECURSOS Un nombre para un nuevo grupo de recursos de Azure donde se creará el clúster. UBICACIÓN Región de Azure cercana a usted. Para ver la lista de las regiones admitidas actualmente, consulte Regiones admitidas. Sugerencia
Los valores que proporcione como secretos en este paso se guardan en la cuenta de GitHub que se usará en este y en el futuro Codespaces. Se agregan como variables de entorno en el terminal de codespace y puede usar esas variables de entorno en los comandos de la CLI en la sección siguiente.
Además, este codespace crea una variable de entorno
CLUSTER_NAMEque se establece con el nombre del codespace.Seleccione Crear un codespace.
Una vez que el codespace esté listo, seleccione el botón de menú de la parte superior izquierda y elija Abrir en VS Code Desktop.
Si se le solicita, instale la extensiónGitHub Codespaces para Visual Studio Code e inicie sesión en GitHub.
En Visual Studio Code, seleccione Ver>Terminal.
Use este terminal para ejecutar todos los comandos de la CLI para administrar el clúster.
Conexión de un clúster a Azure Arc
Para conectar el clúster a Azure Arc:
En el terminal de codespace, inicie sesión en la CLI de Azure:
az loginSugerencia
Si usa el entorno de codespace de GitHub en un explorador en lugar del escritorio de VS Code, la ejecución de
az logindevuelve un error localhost. Para corregir el error, haga lo siguiente:- Abra el espacio de código en el escritorio de VS Code y vuelva al terminal del explorador y vuelva a ejecutar
az login. - O bien, después de obtener el error localhost en el explorador, copie la dirección URL del explorador y ejecútelo
curl "<URL>"en una nueva pestaña de terminal. Debería ver una respuesta JSON con el mensaje "Ha iniciado sesión en Microsoft Azure!"
- Abra el espacio de código en el escritorio de VS Code y vuelva al terminal del explorador y vuelva a ejecutar
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:
Sugerencia
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, consulte 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:
az group create --location $LOCATION --resource-group $RESOURCE_GROUPUse 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 --location $LOCATION --resource-group $RESOURCE_GROUPSugerencia
El valor de
$CLUSTER_NAMEse establece automáticamente en el nombre del codespace. Reemplace la variable de entorno si desea usar un nombre diferente.Obtenga el
objectIdde 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
objectIdde 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
Instalación de la versión más reciente de az iot ops
En este inicio rápido se usa la versión más reciente de Azure IoT Operations. Para instalar la versión más reciente, necesita la versión más reciente de la extensión de la CLI de Azure IoT Operations:
az extension add --upgrade --name azure-iot-ops
Crear una cuenta de almacenamiento y un registro de esquemas
El registro de esquemas es un repositorio sincronizado que almacena definiciones de mensajes tanto en la nube como en el perímetro. Operaciones de IoT de Azure requiere un registro de esquemas en su clúster. El registro de esquemas requiere una cuenta de almacenamiento de Azure para la información de esquema almacenada en la nube.
El comando para crear un registro de esquema en esta sección requiere permisos de Microsoft.Authorization/roleAssignments/write en el nivel de grupo de recursos. Este permiso se usa para conceder al registro de esquema un rol de colaborador para que pueda escribir en la cuenta de almacenamiento.
Ejecute los siguientes comandos de la CLI en el terminal Codespaces.
Establezca variables de entorno para los recursos que cree en esta sección.
Marcador de posición Value <NOMBRE_DE_CUENTA_DE_ALMACENAMIENTO> Un nombre para la cuenta de almacenamiento. Los nombres de las cuentas de almacenamiento deben tener entre 3 y 24 caracteres y solo contener números y letras minúsculas. <SCHEMA_REGISTRY_NAME> Nombre del registro de esquema. Los nombres de registro de esquema solo pueden contener letras minúsculas, números y guiones. <SCHEMA_REGISTRY_NAMESPACE> Nombre del espacio de nombres del registro de esquema. El espacio de nombres identifica de forma única un registro de esquema dentro de un inquilino. Los nombres del espacio de nombres de registro de esquema solo pueden contener letras minúsculas, números y guiones. STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME> SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME> SCHEMA_REGISTRY_NAMESPACE=<SCHEMA_REGISTRY_NAMESPACE>Cree una cuenta de almacenamiento con el espacio de nombres jerárquico habilitado.
az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespaceCree un registro de esquema que se conecte a la cuenta de almacenamiento. Este comando también crea un contenedor de blobs denominado esquemas en la cuenta de almacenamiento.
az iot ops schema registry create --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP --registry-namespace $SCHEMA_REGISTRY_NAMESPACE --sa-resource-id $(az storage account show --name $STORAGE_ACCOUNT -o tsv --query id)
Creación de un espacio de nombres del Registro de Dispositivos de Azure
Azure IoT Operations y Azure Device Registry usan espacios de nombres para organizar recursos y dispositivos. Cada instancia de Azure IoT Operations usa un único espacio de nombres para sus recursos y dispositivos.
Ejecute el siguiente comando de la CLI para crear un espacio de nombres de Azure Device Registry.
az iot ops ns create -n myqsnamespace -g $RESOURCE_GROUP
Implementación de operaciones de Azure IoT
En esta sección, configurará el clúster con las dependencias de los componentes de Operaciones de IoT de Azure y, a continuación, implementará Operaciones de IoT de Azure.
Ejecute los siguientes comandos de la CLI en el terminal Codespaces.
Inicialice el clúster para Operaciones de IoT de Azure.
Sugerencia
El comando
initsolo debe ejecutarse una vez por clúster. Si va a reutilizar un clúster que ya tenía la versión más reciente de Azure IoT Operations implementada en él, puede omitir este paso.az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUPEste comando puede tardar varios minutos en completarse. Puede ver el progreso en la pantalla de progreso de implementación en el terminal.
Implementación de Operaciones de IoT de Azure.
az iot ops create --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name ${CLUSTER_NAME}-instance --sr-resource-id $(az iot ops schema registry show --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP -o tsv --query id) --ns-resource-id $(az iot ops ns show --name myqsnamespace --resource-group $RESOURCE_GROUP -o tsv --query id) --broker-frontend-replicas 1 --broker-frontend-workers 1 --broker-backend-part 1 --broker-backend-workers 1 --broker-backend-rf 2 --broker-mem-profile LowEste comando puede tardar varios minutos en completarse. Puede ver el progreso en la pantalla de progreso de implementación en el terminal.
Si recibe un error que indica El dispositivo debe administrarse para acceder al recurso, vuelva a ejecutar
az loginy asegúrese de iniciar sesión interactivamente con un explorador.
Visualización de recursos en el clúster
Una vez completada la implementación, puede usar comandos de kubectl para observar los cambios en el clúster, o bien, dado que el clúster está habilitado para Arc, puede usar Azure Portal.
Para ver los pods del clúster, ejecute el siguiente comando:
kubectl get pods -n azure-iot-operations
Para ver los recursos en Azure Portal, siga estos pasos:
En el Azure Portal, vaya al grupo de recursos que contiene la instancia de Azure IoT Operations o busque y seleccione Azure IoT Operations.
Seleccione el nombre de la instancia de Azure IoT Operations.
En la página Información general de la instancia, seleccione la pestaña Resumen de recursos para ver el estado de aprovisionamiento de los recursos que se implementaron en el clúster.
¿Cómo solucionamos el problema?
En esta guía de inicio rápido, ha configurado un clúster de Kubernetes habilitado para Arc para que pueda comunicarse de forma segura con los componentes de Operaciones de IoT de Azure. A continuación, ha implementado esos componentes en el clúster. En este escenario de prueba, tiene un único clúster de Kubernetes que se ejecuta en Codespaces. Sin embargo, en un escenario de producción, puede usar los mismos pasos para implementar cargas de trabajo en muchos clústeres en muchos sitios.
Limpieza de recursos
Si va a continuar con la siguiente guía de inicio rápido, conserve todos los recursos.
Si quiere eliminar la implementación de Operaciones de IoT de Azure, pero quiere mantener el clúster, use el comando az iot ops delete:
az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Si quiere eliminar todos los recursos que ha creado para este inicio rápido, elimine el clúster de Kubernetes donde ha implementado Operaciones de IoT de Azure y quite el grupo de recursos de Azure que contenía el clúster.
Si usó Codespaces para estas guías de inicio rápido, elimine Codespace de GitHub.