Implementación y administración de extensiones de clúster para Azure Kubernetes Service (AKS) (versión preliminar)
Las extensiones de clúster brindan una experiencia impulsada por Azure Resource Manager para la instalación y la administración del ciclo de vida de servicios como Azure Machine Learning (ML) en un clúster de AKS. Esta característica permite:
- Implementación de extensiones basada en Azure Resource Manager, incluidas implementaciones a escala en clústeres de AKS.
- Administración del ciclo de vida de la extensión (Actualización, eliminación) desde Azure Resource Manager.
En este artículo, aprenderá lo siguiente:
- Cómo crear una instancia de extensión.
- Extensiones de clúster disponibles en AKS.
- Cómo ver, enumerar, actualizar y eliminar instancias de extensiones.
Puede encontrar información general y algunos conceptos sobre esta característica en el artículo Extensiones de clúster: Kubernetes habilitado para Azure Arc.
Importante
Las características en versión preliminar de AKS están disponibles como opción de participación y autoservicio. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y la garantía limitada. Las versiones preliminares de AKS reciben cobertura parcial del soporte al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:
Prerrequisitos
- Suscripción a Azure. Si no tiene una suscripción a Azure, puede crear una cuenta gratuita.
- CLI de Azure versión >= 2.16.0 instalado.
Registro del proveedor para extensiones de clúster
Escriba los siguientes comandos:
az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ContainerServiceSupervise el proceso de registro. El registro puede tardar un máximo de 10 minutos.
az provider show -n Microsoft.KubernetesConfiguration -o table az provider show -n Microsoft.ContainerService -o tableUna vez registrado, debería ver que el estado
RegistrationStatede estos espacios de nombres cambia aRegistered.
Registro de las características en vista previa (GB) AKS-ExtensionManager
Para crear un clúster de AKS que pueda usar extensiones de clúster, debe habilitar la marca AKS-ExtensionManager de características en la suscripción.
Registre la marca de la característica AKS-ExtensionManager con el comando az feature register, como se muestra en el siguiente ejemplo:
az feature register --namespace "Microsoft.ContainerService" --name "AKS-ExtensionManager"
Tarda unos minutos en que el estado muestre Registrado. Puede comprobar el estado de registro con el comando az feature list:
az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AKS-ExtensionManager')].{Name:name,State:properties.state}"
Cuando esté listo, actualice el registro de los proveedores de recursos Microsoft.KubernetesConfiguration y Microsoft.ContainerService mediante el comando az provider register:
az provider register --namespace Microsoft.KubernetesConfiguration
az provider register --namespace Microsoft.ContainerService
Configuración de la CLI de Azure para extensiones de clúster
Nota
La versión mínima admitida para la extensión CLI de Azure k8s-extension es 1.0.0. Si no está seguro de qué versión ha instalado, ejecute az extension show --name k8s-extension y busque el campo version.
También necesitará la extensión CLI de Azure k8s-extension. Para instalarla, ejecute los siguientes comandos:
az extension add --name k8s-extension
Si la extensión k8s-extension ya está instalada, puede actualizarla a su versión más reciente con el siguiente comando:
az extension update --name k8s-extension
Extensiones disponibles actualmente
Nota
Las extensiones de clúster proporcionan una plataforma para que las distintas extensiones se instalen y se administran en un clúster de AKS. Si tiene problemas al usar cualquiera de estas extensiones, abra una incidencia de soporte técnico con el servicio correspondiente.
| Extensión | Descripción |
|---|---|
| Dapr | Dapr es un entorno de ejecución portátil controlado por eventos que facilita a cualquier desarrollador la creación de aplicaciones resistentes, sin estado y con estado que se ejecutan en la nube y en el perímetro. |
| Aprendizaje automático de Azure | Use clústeres de Azure Kubernetes Service para entrenar, inferir y administrar modelos de aprendizaje automático en Azure Machine Learning. |
Regiones admitidas y versiones de Kubernetes
Las extensiones de clúster se pueden usar en clústeres de AKS en las regiones enumeradas en la compatibilidad con la región de Kubernetes habilitada para Azure Arc.
Para ver las versiones de Kubernetes admitidas, consulte la documentación correspondiente para cada extensión.
Uso de las extensiones de clúster
Nota
Los ejemplos proporcionados en este artículo no están completos y solo están diseñados para presentar la funcionalidad. Para obtener una lista completa de los comandos y sus parámetros, consulte la referencia de la CLI az k8s-extension.
Creación de una instancia de extensión
Cree una instancia de la extensión con k8s-extension create; para ello, pase los valores de los parámetros obligatorios. El siguiente comando crea una instancia de extensión de Azure Machine Learning en su clúster de AKS:
az k8s-extension create --name aml-compute --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --configuration-settings enableInference=True allowInsecureConnections=True
Nota
El servicio extensiones de clúster no puede conservar información confidencial durante más de 48 horas. Si los agentes de extensión de clúster no tienen conectividad de red durante más de 48 horas y no pueden determinar si se debe crear una extensión en el clúster, la extensión pasa al estado Failed. Una vez en el estado Failed, tendrá que volver a ejecutar k8s-extension create para crear una nueva instancia de extensión.
Parámetros obligatorios
| Nombre de parámetro | Descripción |
|---|---|
--name |
Nombre de la instancia de extensión. |
--extension-type |
Tipo de extensión que quiere instalar en el clúster. For example: Microsoft.AzureML.Kubernetes |
--cluster-name |
Nombre del clúster de AKS en el que se debe crear la instancia de extensión |
--resource-group |
El grupo de recursos que incluya el clúster de AKS. |
--cluster-type |
Tipo de clúster en el que se debe crear la instancia de extensión. Especificar managedClusters a medida que se asigna a clústeres de AKS |
Parámetros opcionales
| Nombre de parámetro | Descripción |
|---|---|
--auto-upgrade-minor-version |
Propiedad booleana que especifica si la versión secundaria de la extensión se actualizará automáticamente o no. Predeterminado: true. Si este parámetro se establece en true, no se puede establecer el valor del parámetroversion, ya que la versión se actualizará dinámicamente. Si se establece en false, la extensión no se actualizará automáticamente, ni siquiera para las versiones de revisión. |
--version |
Versión de la extensión que se va a instalar (versión específica en la que se fijará la instancia de extensión). No se debe proporcionar si auto-upgrade-minor-version está establecido en true. |
--configuration-settings |
Configuración que se puede pasar a la extensión para controlar su funcionalidad. Se deben pasar como pares key=value separados por espacios después del nombre del parámetro. Si se usa este parámetro, no se podrá emplear --configuration-settings-file en el mismo comando. |
--configuration-settings-file |
Ruta de acceso al archivo JSON que contiene los pares clave-valor que se usarán para pasar los valores de configuración a la extensión. Si se usa este parámetro, no se podrá emplear --configuration-settings en el mismo comando. |
--configuration-protected-settings |
Estos valores de configuración no se pueden recuperar mediante llamadas API GET o comandos az k8s-extension show y, por tanto, se usan para pasar valores de configuración confidenciales. Se deben pasar como pares key=value separados por espacios después del nombre del parámetro. Si se usa este parámetro, no se podrá emplear --configuration-protected-settings-file en el mismo comando. |
--configuration-protected-settings-file |
Ruta de acceso al archivo JSON que contiene los pares clave-valor que se usarán para pasar configuraciones confidenciales a la extensión. Si se usa este parámetro, no se podrá emplear --configuration-protected-settings en el mismo comando. |
--scope |
Ámbito de instalación de la extensión: cluster o namespace. |
--release-namespace |
Este parámetro indica el espacio de nombres en el que se debe crear la versión. Este parámetro solo es pertinente si el parámetro scope se establece en cluster. |
--release-train |
Los autores de las extensiones pueden publicar las versiones en series de versiones diferentes, como Stable, Preview, etc. Si este parámetro no se establece explícitamente, Stable se usa como valor predeterminado. Este parámetro no se puede usar cuando el parámetro autoUpgradeMinorVersion está establecido en false. |
--target-namespace |
Este parámetro indica el espacio de nombres en el que se creará la versión. El permiso de la cuenta del sistema creada para esta instancia de extensión está restringido a este espacio de nombres. Este parámetro solo es pertinente si el parámetro scope se establece en namespace. |
Visualización de los detalles de una instancia de extensión
Vea los detalles de una instancia de extensión instalada actualmente con k8s-extension show; para ello, pase valores para los parámetros obligatorios:
az k8s-extension show --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters
Lista de todas las extensiones instaladas en el clúster
Muestre una lista de todas las extensiones instaladas en un clúster con k8s-extension list; para ello, pase los valores de los parámetros obligatorios.
az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters
Actualización de la instancia de extensión
Nota
Consulte la documentación del tipo de extensión (por ejemplo, Azure ML) para obtener información sobre la configuración específica en ConfigurationSetting y ConfigurationProtectedSettings que se pueden actualizar. Para ConfigurationProtectedSettings, se espera que todos los valores se proporcionen durante una actualización de un solo valor. Si se omiten algunos valores, estos se considerarían obsoletos y se eliminarían.
Actualice una instancia de extensión existente con k8s-extension update, al pasar los valores para los parámetros obligatorios. El comando siguiente actualiza la configuración de actualización automática para una instancia de extensión de Azure Machine Learning:
az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters
Parámetros obligatorios
| Nombre de parámetro | Descripción |
|---|---|
--name |
Nombre de la instancia de extensión. |
--extension-type |
Tipo de extensión que quiere instalar en el clúster. For example: Microsoft.AzureML.Kubernetes |
--cluster-name |
Nombre del clúster de AKS en el que se debe crear la instancia de extensión |
--resource-group |
El grupo de recursos que incluya el clúster de AKS. |
--cluster-type |
Tipo de clúster en el que se debe crear la instancia de extensión. Especificar managedClusters a medida que se asigna a clústeres de AKS |
Parámetros opcionales
| Nombre de parámetro | Descripción |
|---|---|
--auto-upgrade-minor-version |
Propiedad booleana que especifica si la versión secundaria de la extensión se actualizará automáticamente o no. Predeterminado: true. Si este parámetro se establece en true, no se puede establecer el valor del parámetroversion, ya que la versión se actualizará dinámicamente. Si se establece en false, la extensión no se actualizará automáticamente, ni siquiera para las versiones de revisión. |
--version |
Versión de la extensión que se va a instalar (versión específica en la que se fijará la instancia de extensión). No se debe proporcionar si auto-upgrade-minor-version está establecido en true. |
--configuration-settings |
Configuración que se puede pasar a la extensión para controlar su funcionalidad. Solo se deben proporcionar los valores que requieren una actualización. La configuración proporcionada se reemplazaría por los valores proporcionados. Se deben pasar como pares key=value separados por espacios después del nombre del parámetro. Si se usa este parámetro, no se podrá emplear --configuration-settings-file en el mismo comando. |
--configuration-settings-file |
Ruta de acceso al archivo JSON que contiene los pares clave-valor que se usarán para pasar los valores de configuración a la extensión. Si se usa este parámetro, no se podrá emplear --configuration-settings en el mismo comando. |
--configuration-protected-settings |
Estos valores de configuración no se pueden recuperar mediante llamadas API GET o comandos az k8s-extension show y, por tanto, se usan para pasar valores de configuración confidenciales. Al actualizar un valor, se espera que se proporcionan todas los valores. Si se omiten algunos valores, estos se considerarían obsoletos y se eliminarían. Se deben pasar como pares key=value separados por espacios después del nombre del parámetro. Si se usa este parámetro, no se podrá emplear --configuration-protected-settings-file en el mismo comando. |
--configuration-protected-settings-file |
Ruta de acceso al archivo JSON que contiene los pares clave-valor que se usarán para pasar configuraciones confidenciales a la extensión. Si se usa este parámetro, no se podrá emplear --configuration-protected-settings en el mismo comando. |
--scope |
Ámbito de instalación de la extensión: cluster o namespace. |
--release-train |
Los autores de las extensiones pueden publicar las versiones en series de versiones diferentes, como Stable, Preview, etc. Si este parámetro no se establece explícitamente, Stable se usa como valor predeterminado. Este parámetro no se puede usar cuando el parámetro autoUpgradeMinorVersion está establecido en false. |
Eliminación de una instancia de extensión
Nota
El recurso de Azure que representa esta extensión se elimina inmediatamente. La versión de Helm del clúster asociado a esta extensión solo se eliminará cuando los agentes que se ejecutan en el clúster de Kubernetes tengan conectividad de red y puedan ponerse en contacto con los servicios de Azure de nuevo para recuperar el estado deseado.
Elimine una instancia de extensión en un clúster con k8s-extension delete; para ello, pase los valores de los parámetros obligatorios.
az k8s-extension delete --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters