Compartir a través de


Implementación y administración de extensiones de clúster mediante la CLI de Azure

Puede crear instancias de extensión en un clúster de AKS, establecer parámetros obligatorios y opcionales, incluidas las opciones relacionadas con las actualizaciones y las configuraciones. También puede ver, enumerar, actualizar y eliminar instancias de extensiones.

Antes de comenzar, lea sobre 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.

Prerrequisitos

  • Suscripción a Azure. Si no tiene una suscripción a Azure, puede crear una cuenta gratuita.

  • Los proveedores de recursos Microsoft.ContainerService y Microsoft.KubernetesConfiguration deben estar registrados en la suscripción. Para registrar el proveedor, ejecute el siguiente comando:

    az provider register --namespace Microsoft.ContainerService --wait 
    az provider register --namespace Microsoft.KubernetesConfiguration --wait 
    
  • Un clúster de AKS. Es necesario que el clúster haya sido creado con una identidad administrada, ya que las extensiones de clúster no funcionarán con clústeres basados en la entidad de servicio. En el caso de los nuevos clústeres creados con az aks create, la identidad administrada se configura de forma predeterminada. Para los clústeres basados en entidades de servicio existentes, cambie para administrar la identidad mediante la ejecución az aks update con la marca --enable-managed-identity. Para más información, consulte Habilitación de identidades administradas.

  • CLI de Azure versión >= 2.16.0 instalado. Se recomienda usar la versión más reciente.

  • La versión más reciente de la extensión de la CLI de Azure k8s-extension. Instale la extensión mediante la ejecución del siguiente comando:

    az extension add --name k8s-extension
    

    Si la extensión ya está instalada, asegúrese de que está ejecutando la versión más reciente mediante el siguiente comando:

    az extension update --name k8s-extension
    

Creación de la 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. Este comando de ejemplo crea una instancia de extensión de Azure Machine Learning en su clúster de AKS:

az k8s-extension create --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --configuration-settings enableInference=True allowInsecureConnections=True inferenceRouterServiceType=LoadBalancer

Este comando de ejemplo crea una aplicación de Kubernetes de ejemplo (publicada en Marketplace) en el clúster de AKS:

az k8s-extension create --name voteapp --extension-type Contoso.AzureVoteKubernetesAppTest --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --plan-name testPlanID --plan-product testOfferID --plan-publisher testPublisherID --configuration-settings title=VoteAnimal value1=Cats value2=Dogs

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. Por ejemplo: 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ámetro version, 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. Pase valores como pares separados por pares key=value 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. Pase valores como pares separados por pares key=value 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 --auto-upgrade-minor-version 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.
--plan-name Id. de plan de la extensión, que se encuentra en la página Marketplace del Azure Portal en Información de uso y soporte técnico.
--plan-product Id. de producto de la extensión, que se encuentra en la página Marketplace del Azure Portal en Información de uso y soporte técnico. Un ejemplo de esto es el nombre de la oferta de ISV usada.
--plan-publisher Id. del publicador de la extensión, que se encuentra en la página Marketplace del Azure Portal en Información de uso y soporte técnico.

Visualización de los detalles de una instancia de extensión

Para ver los detalles de una instancia de extensión que esté instalada, use 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

Para mostrar una lista de todas las extensiones instaladas en un clúster, use 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 específico para comprender la configuración específica de --configuration-settings y --configuration-protected-settings que se pueden actualizar. Para --configuration-protected-settings, se espera que se proporcionen todas las configuraciones, incluso si solo se está actualizando una configuración. Si se omiten algunos de estos valores, se considerarán obsoletos y se eliminarán.

Para actualizar una instancia de extensión existente, use k8s-extension update; para ello, pase 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 necesarios para la actualización

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

Si actualiza una aplicación de Kubernetes adquirida a través de Marketplace, también se requieren los parámetros siguientes:

Nombre de parámetro Descripción
--plan-name Id. de plan de la extensión, que se encuentra en la página Marketplace del Azure Portal en Información de uso y soporte técnico.
--plan-product Id. de producto de la extensión, que se encuentra en la página Marketplace del Azure Portal en Información de uso y soporte técnico. Un ejemplo de esto es el nombre de la oferta de ISV usada.
--plan-publisher Id. del publicador de la extensión, que se encuentra en la página Marketplace del Azure Portal en Información de uso y soporte técnico.

Parámetros opcionales para la actualización

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. Pase valores como pares separados por pares key=value 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 especifiquen todos los valores. Si se omiten algunos valores, estos se considerarían obsoletos y se eliminarían. Pase valores como pares separados por pares key=value 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

Para eliminar una instancia de extensión en un clúster, use 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

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.

Pasos siguientes