Déployer et gérer des extensions de cluster à l’aide d’Azure CLI

Vous pouvez créer des instances d’extension dans un cluster AKS, en définissant les paramètres obligatoires et facultatifs, comme les options liées aux mises à jour et aux configurations. Vous pouvez aussi afficher, lister, mettre à jour et supprimer des instances d’extensions.

Avant de commencer, découvrez-en plus sur les extensions de cluster.

Notes

Les exemples fournis dans cet article ne sont pas complets et sont uniquement destinés à présenter les fonctionnalités. Pour obtenir une liste complète des commandes et de leurs paramètres, consultez les informations de référence sur l’interface CLI az k8s-extension.

Prérequis

  • Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, vous pouvez créer un compte gratuit.

  • Les fournisseurs de ressources Microsoft.ContainerService et Microsoft.KubernetesConfiguration doivent être inscrits sur votre abonnement. Exécutez la commande suivante pour enregistrer ces fournisseurs :

    az provider register --namespace Microsoft.ContainerService --wait 
    az provider register --namespace Microsoft.KubernetesConfiguration --wait 
    
  • Un cluster AKS. Ce cluster doit avoir été créé avec une identité managée, car les extensions de cluster ne fonctionnent pas avec les clusters basés sur un principal de service. Pour les nouveaux clusters créés avec az aks create, l’identité managée est configurée par défaut. Pour les clusters existants basés sur un principal de service, basculez pour gérer l’identité en exécutant az aks update avec l’indicateur --enable-managed-identity. Pour plus d’informations, consultez Utiliser une identité managée.

  • Azure CLI version >=2.16.0 installée. Nous vous recommandons d’utiliser la dernière version.

  • Dernière version des extensions Azure CLI k8s-extension. Installez cette extension en exécutant la commande suivante :

    az extension add --name k8s-extension
    

    Si l’extension est déjà installée, vérifiez que vous exécutez la dernière version à l’aide de la commande suivante :

    az extension update --name k8s-extension
    

Créer une instance d’extension

Créez une nouvelle instance d’extension avec la commande k8s-extension create, transmettant des valeurs pour les paramètres obligatoires. Cet exemple de commande crée une instance d’extension Azure Machine Learning sur votre cluster 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

Cet exemple de commande crée un exemple d’application Kubernetes (publiée sur la place de marché) sur votre cluster 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

Notes

Le service Extensions de cluster ne peut pas conserver d’informations sensibles pendant plus de 48 heures. Si les agents d’extension de cluster n’ont pas de connectivité réseau pendant plus de 48 heures et ne peuvent pas déterminer s’il faut créer une extension sur le cluster, l’extension passe à l’état Failed. Une fois dans l’état Failed, vous devrez réexécuter k8s-extension create pour créer une nouvelle instance d’extension.

Paramètres obligatoires

Nom du paramètre Description
--name Nom de l’instance d’extension
--extension-type Sélectionnez le type d’extension que vous souhaitez installer sur le cluster. Par exemple : Microsoft.AzureML.Kubernetes
--cluster-name Nom du cluster AKS sur lequel l’instance d’extension doit être créée
--resource-group Le groupe de ressources contenant le cluster AKS
--cluster-type Type de cluster sur lequel l’instance d’extension doit être créée. Spécifier managedClusters car il est mappé à des clusters AKS

Paramètres facultatifs

Nom du paramètre Description
--auto-upgrade-minor-version Propriété booléenne qui spécifie si la version mineure de l’extension sera mise à niveau automatiquement ou non. Par défaut : true. Si ce paramètre est défini sur true, vous ne pouvez pas définir le paramètre version, car la version sera mise à jour dynamiquement. S’il est défini sur false, l’extension ne sera pas mise à niveau automatiquement, même pour les versions correctives.
--version Version de l’extension à installer (version spécifique à laquelle épingler l’instance d’extension). Ne doit pas être fournie si la mise à niveau automatique de version mineure est définie sur true.
--configuration-settings Paramètres qui peuvent être transmis dans l’extension pour contrôler sa fonctionnalité. Passez les valeurs sous forme de paires key=value séparées par un espace après le nom du paramètre. Si ce paramètre est utilisé dans la commande, --configuration-settings-file ne peut pas être utilisé dans la même commande.
--configuration-settings-file Chemin d’accès au fichier JSON avec des paires clé-valeur à utiliser pour transmettre des paramètres de configuration à l’extension. Si ce paramètre est utilisé dans la commande, --configuration-settings ne peut pas être utilisé dans la même commande.
--configuration-protected-settings Ces paramètres ne pouvant pas être récupérés à l’aide d’appels d’API GET ou de commandes az k8s-extension show, ils sont donc utilisés pour transmettre des paramètres sensibles. Passez les valeurs sous forme de paires key=value séparées par un espace après le nom du paramètre. Si ce paramètre est utilisé dans la commande, --configuration-protected-settings-file ne peut pas être utilisé dans la même commande.
--configuration-protected-settings-file Chemin d’accès au fichier JSON avec des paires clé-valeur à utiliser pour transmettre des paramètres sensibles à l’extension. Si ce paramètre est utilisé dans la commande, --configuration-protected-settings ne peut pas être utilisé dans la même commande.
--scope Étendue d’installation pour l’extension : cluster ou namespace
--release-namespace Ce paramètre indique l’espace de noms dans lequel la mise en production doit être créée. Ce paramètre n’est pertinent que si le paramètre scope a la valeur cluster.
--release-train Les créateurs d’extensions peuvent publier des versions dans différents trains de versions, comme Stable, Preview, etc. Si ce paramètre n’est pas défini explicitement, Stable est utilisé comme valeur par défaut. Ce paramètre ne peut pas être utilisé quand le paramètre --auto-upgrade-minor-version a la valeur false.
--target-namespace Ce paramètre indique l’espace de noms dans lequel la mise en production sera créée. L’autorisation du compte système créé pour cette instance d’extension sera limitée à cet espace de noms. Ce paramètre n’est pertinent que si le paramètre scope a la valeur namespace.
--plan-name ID de plan de l’extension, situé sur la page Place de marché dans le portail Azure sous Informations d’utilisation + Support.
--plan-product ID de produit de l’extension, situé sur la page Place de marché dans le portail Azure sous Informations d’utilisation + Support. Le nom de l’offre ISV utilisée en est un exemple.
--plan-publisher ID de l’éditeur de l’extension, situé sur la page Place de marché dans le portail Azure sous Informations d’utilisation + Support.

Afficher les détails d’une instance d’extension

Pour afficher les détails d’une instance d’extension actuellement installée, utilisez k8s-extension show, qui transmet des valeurs pour les paramètres obligatoires.

az k8s-extension show --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Répertorier toutes les extensions installées sur le cluster

Pour répertorier toutes les extensions installées sur un cluster, utilisez k8s-extension list, qui transmet des valeurs pour les paramètres obligatoires.

az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Mettre à jour l’instance d’extension

Notes

Reportez-vous à la documentation pour le type d’extension spécifique pour comprendre les paramètres spécifiques dans --configuration-settings et --configuration-protected-settings qui peuvent être mis à jour. Pour --configuration-protected-settings, tous les paramètres sont censés être fournis, même si un seul paramètre est en cours de mise à jour. Si certains de ces paramètres sont omis, ils seront considérés comme obsolètes puis supprimés.

Pour mettre à jour une instance d’extension existante, utilisez k8s-extension update, qui transmet des valeurs pour les paramètres obligatoires. La commande suivante met à jour le paramètre de mise à niveau automatique pour une instance d’extension 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

Paramètres requis pour la mise à jour

Nom du paramètre Description
--name Nom de l’instance d’extension
--extension-type Sélectionnez le type d’extension que vous souhaitez installer sur le cluster. Par exemple : Microsoft.AzureML.Kubernetes
--cluster-name Nom du cluster AKS sur lequel l’instance d’extension doit être créée
--resource-group Le groupe de ressources contenant le cluster AKS
--cluster-type Type de cluster sur lequel l’instance d’extension doit être créée. Spécifier managedClusters car il est mappé à des clusters AKS

Si vous mettez à jour une application Kubernetes obtenue via la Place de marché, les paramètres suivants sont également requis :

Nom du paramètre Description
--plan-name ID de plan de l’extension, situé sur la page Place de marché dans le portail Azure sous Informations d’utilisation + Support.
--plan-product ID de produit de l’extension, situé sur la page Place de marché dans le portail Azure sous Informations d’utilisation + Support. Le nom de l’offre ISV utilisée en est un exemple.
--plan-publisher ID de l’éditeur de l’extension, situé sur la page Place de marché dans le portail Azure sous Informations d’utilisation + Support.

Paramètres facultatifs pour la mise à jour

Nom du paramètre Description
--auto-upgrade-minor-version Propriété booléenne qui spécifie si la version mineure de l’extension sera mise à niveau automatiquement ou non. Par défaut : true. Si ce paramètre est défini sur true, vous ne pouvez pas définir le paramètre version, car la version sera mise à jour de façon dynamique. S’il est défini sur false, l’extension ne sera pas mise à niveau automatiquement, même pour les versions correctives.
--version Version de l’extension à installer (version spécifique à laquelle épingler l’instance d’extension). Ne doit pas être fournie si la mise à niveau automatique de version mineure est définie sur true.
--configuration-settings Paramètres qui peuvent être transmis dans l’extension pour contrôler sa fonctionnalité. Seuls les paramètres qui nécessitent une mise à jour doivent être fournis. Les paramètres fournis seraient remplacés par les valeurs fournies. Passez les valeurs sous forme de paires key=value séparées par un espace après le nom du paramètre. Si ce paramètre est utilisé dans la commande, --configuration-settings-file ne peut pas être utilisé dans la même commande.
--configuration-settings-file Chemin d’accès au fichier JSON avec des paires clé-valeur à utiliser pour transmettre des paramètres de configuration à l’extension. Si ce paramètre est utilisé dans la commande, --configuration-settings ne peut pas être utilisé dans la même commande.
--configuration-protected-settings Ces paramètres ne pouvant pas être récupérés à l’aide d’appels d’API GET ou de commandes az k8s-extension show, ils sont donc utilisés pour transmettre des paramètres sensibles. Quand vous mettez à jour un paramètre, tous les paramètres doivent être spécifiés. Si certains paramètres sont omis, ils sont considérés comme obsolètes et supprimés. Passez les valeurs sous forme de paires key=value séparées par un espace après le nom du paramètre. Si ce paramètre est utilisé dans la commande, --configuration-protected-settings-file ne peut pas être utilisé dans la même commande.
--configuration-protected-settings-file Chemin d’accès au fichier JSON avec des paires clé-valeur à utiliser pour transmettre des paramètres sensibles à l’extension. Si ce paramètre est utilisé dans la commande, --configuration-protected-settings ne peut pas être utilisé dans la même commande.
--scope Étendue d’installation pour l’extension : cluster ou namespace
--release-train Les créateurs d’extensions peuvent publier des versions dans différents trains de versions, comme Stable, Preview, etc. Si ce paramètre n’est pas défini explicitement, Stable est utilisé comme valeur par défaut. Ce paramètre ne peut pas être utilisé quand le paramètre autoUpgradeMinorVersion a la valeur false.

Supprimer une instance d’extension

Pour supprimer une instance d’extension sur un cluster, utilisez k8s-extension-delete, qui transmet des valeurs pour les paramètres obligatoires.

az k8s-extension delete --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Notes

La ressource Azure représentant cette extension est immédiatement supprimée. La version Helm sur le cluster associé à cette extension n’est supprimée que quand les agents s’exécutant sur le cluster Kubernetes disposent d’une connectivité réseau et peuvent à nouveau accéder aux services Azure pour extraire l’état souhaité.

Étapes suivantes