Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os 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 trabajar con 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 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 poder probar el escenario sin instalar nuevas herramientas en sus propias máquinas. Sin embargo, si desea implementar Operaciones de IoT de Azure en un clúster local en Ubuntu o Azure Kubernetes Service (AKS), consulte Prepare el 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 para la 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. Consulte estos scripts en GitHub para una implementación preparada para producción con configuración segura.
Requisitos previos
Antes de comenzar, prepare los siguientes requisitos previos:
Una suscripción Azure. Si no tiene una suscripción de Azure, cree una gratuita antes de comenzar.
Una cuenta GitHub.
Visual Studio Code instalado en la máquina de desarrollo. Para obtener más información, vea Download Visual Studio Code.
Permisos de Microsoft.Authorization/roleAssignments/write en 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.
- Conecte el clúster a Azure Arc para la administración remota.
- Cree un registro de esquema.
- Implemente 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 IoT de Azure anteriormente, consulte los pasos descritos en Clean up resources para desinstalar Operaciones de IoT de Azure 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 Identificador de suscripción de Azure. GRUPO_DE_RECURSOS Nombre de un nuevo grupo de recursos Azure donde se creará el clúster. UBICACIÓN Una región Azure cerca de 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 su cuenta de GitHub para ser usados en este y en futuros 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ón GitHub Codespaces para Visual Studio Code e inicie sesión en GitHub.
En Visual Studio Code, seleccione View>Terminal.
Use este terminal para ejecutar todos los comandos de la CLI para administrar el clúster.
Conexión del clúster a Azure Arc
Para conectar el clúster a Azure Arc:
En el terminal de codespace, inicie sesión en 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 ejecute
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, 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 obtener más información, consulte proveedores y tipos 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 para 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 de Microsoft Entra ID que utiliza el servicio Azure Arc en su entorno 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 el
objectIdde la aplicación Microsoft Entra ID que usa el servicio Azure Arc. 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 Operaciones de IoT de Azure. Para instalar la versión más reciente, necesita la versión más reciente de la extensión de la CLI de Operaciones de IoT de Azure:
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 esquema en el clúster. El registro de esquemas requiere una cuenta de almacenamiento Azure para la información de esquema almacenada en la nube.
El comando para crear un registro de esquema en esta sección requiere el permiso 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 Azure
Operaciones de IoT de Azure y Azure Registro de dispositivos usan namespaces para organizar recursos y dispositivos. Cada instancia de Operaciones de IoT de Azure usa un único espacio de nombres para sus recursos y dispositivos.
Ejecute el siguiente comando de la CLI para crear un espacio de nombres del Registro de dispositivos Azure.
az iot ops ns create -n myqsnamespace -g $RESOURCE_GROUP
Implementación de Operaciones de IoT de Azure
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 su clúster para las operaciones de Azure IoT.
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 de Operaciones de IoT de Azure más reciente 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.
Implemente Operaciones de IoT de Azure. Este comando incluye el conector opcional para OPC UA que se usa en los siguientes inicios rápidos.
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 Low --feature opcua.mode=StableEste 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 kubectl para observar los cambios en el clúster o, dado que el clúster está habilitado para Arc, puede usar el portal de Azure.
Para ver los pods del clúster, ejecute el siguiente comando:
kubectl get pods -n azure-iot-operations
Para ver los recursos en el portal de Azure, siga estos pasos:
En el portal Azure, vaya al grupo de recursos que contiene la instancia de Operaciones de IoT de Azure o busque y seleccione Operaciones de IoT de Azure.
Seleccione el nombre de la instancia de Operaciones de IoT de Azure.
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 este inicio rápido, configuró el 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 quitar la implementación de Operaciones de IoT de Azure pero mantener el clúster, use el comando az iot ops delete:
az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Si desea eliminar todos los recursos que creó para este inicio rápido, elimine el clúster de Kubernetes donde implementó Operaciones de IoT de Azure y, a continuación, 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.