Inicio rápido: Ejecución de Operaciones de IoT de Azure (versión preliminar) en GitHub Codespaces con K3s
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.
En este inicio rápido, implementará un conjunto de servicios de IoT en un clúster de Kubernetes habilitado para Azure Arc para que pueda administrar de forma remota los dispositivos y las cargas de trabajo. Operaciones de IoT de Azure es un conjunto de operaciones digitales de servicios. En esta guía de inicio rápido se explica cómo usar Orchestrator para implementar estos servicios en un clúster de Kubernetes. Al final del inicio rápido, tiene un clúster que puede administrar desde la nube que genera datos de muestra que se usarán en los siguientes inicios rápidos.
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.
Si quiere implementar Operaciones de Azure IoT en un clúster local, como Azure Kubernetes Service Edge Essentials o K3s en Ubuntu, consulte Detalles de implementación.
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. También se proporcionan pasos para usar GitHub Codespaces como entorno virtual en el que puede empezar rápidamente a implementar recursos y ejecutar comandos sin instalar nuevas herramientas en sus propias máquinas.
Requisitos previos
En este inicio rápido, creará un clúster de Kubernetes para recibir la implementación de Operaciones de IoT de Azure.
Si desea reutilizar un clúster que ya tiene implementadas Operaciones de Azure IoT, consulte los pasos descritos en Limpieza de recursos para desinstalar Operaciones de Azure IoT antes de continuar.
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 y conéctelo a Azure Arc para la administración remota.
- Cree un registro de esquema.
- Implementar Operaciones de IoT de Azure en el clúster.
Conexión de un clúster de Kubernetes a Azure Arc
Operaciones de IoT de Azure debe funcionar en cualquier clúster de Kubernetes que se ajuste a los estándares de Cloud Native Computing Foundation (CNCF). Para mayor rapidez y comodidad, este inicio rápido usa GitHub Codespaces para hospedar el clúster.
Importante
Los codespaces son fáciles de configurar rápidamente y desmontar más adelante, pero no son adecuados para la evaluación del rendimiento ni para las pruebas de escalado. Use GitHub Codespaces solo con fines de exploración. Para obtener información sobre cómo implementar Operaciones de IoT de Azure en un clúster de producción como AKS Edge Essentials, consulte Preparar clúster de Kubernetes habilitado para Azure Arc.
En esta sección, creará un nuevo clúster y lo conectará a Azure Arc. 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.
Use GitHub Codespaces para probar Operaciones de IoT de Azure en un clúster de Kubernetes sin instalar nada en la máquina local. 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 Valor SUBSCRIPTION_ID Su identificador de suscripción de Azure. RESOURCE_GROUP Un nombre para un nuevo grupo de recursos de Azure donde se creará el clúster. LOCATION 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 futuros espacios de código. 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_NAME
que 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.
Para conectar el clúster a Azure Arc:
En el terminal de codespace, inicie sesión en la CLI de Azure:
az login
Sugerencia
Si usa el entorno de codespace de GitHub en un explorador en lugar del escritorio de VS Code, la ejecución de
az login
devuelve 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, 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:
az group create --location $LOCATION --resource-group $RESOURCE_GROUP
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 --location $LOCATION --resource-group $RESOURCE_GROUP
Sugerencia
El valor de
$CLUSTER_NAME
se establece automáticamente en el nombre del codespace. Reemplace la variable de entorno si desea usar un nombre diferente.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.az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
Comprobación del clúster
Use la extensión Operaciones de IoT de Azure para la CLI de Azure a fin de comprobar que el host del clúster está configurado correctamente para la implementación mediante el comando verify-host en el host del clúster:
az iot ops verify-host
Este comando auxiliar comprueba la conectividad a los puntos de conexión de Azure Resource Manager y Microsoft Container Registry.
Creación de una cuenta de almacenamiento y un registro de esquema
Operaciones de IoT de Azure requiere un registro de esquemas en su clúster. El registro de esquemas requiere una cuenta de almacenamiento Azure para poder sincronizar la información de esquemas entre la nube y el borde.
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.
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 Valor <STORAGE_ACCOUNT_NAME> 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. <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. export STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME> export SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME> export 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-namespace
Cree 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 si aún no existe uno.
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)
Implementación de versión preliminar 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 el clúster para Operaciones de IoT de Azure.
Sugerencia
El comando
init
solo debe ejecutarse una vez por clúster. Si va a reutilizar un clúster que ya tenía implementada la versión 0.7.0 de Operaciones de IoT de Azure, puede omitir este paso.az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --sr-resource-id $(az iot ops schema registry show --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP -o tsv --query id)
Este comando puede tardar varios minutos en completarse. Puede ver el progreso en la presentación del progreso de la implementación en el terminal.
Implementación de Operaciones de IoT de Azure. El comando tarda varios minutos en completarse:
az iot ops create --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name ${CLUSTER_NAME}-instance
Este comando puede tardar varios minutos en completarse. Puede ver el progreso en la presentación del progreso de la implementación en el terminal.
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.
Visualización de recursos en el clúster
Mientras la implementación está en curso, la interfaz de progreso de la CLI muestra la fase de implementación en la que se encuentra. 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, la pestaña Extensiones de Arc muestra 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 probablemente se ejecute localmente en su máquina. 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.