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
etMicrosoft.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écutantaz 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
- Consultez la liste des extensions de cluster actuellement disponibles.
- Découvrez les applications Kubernetes disponibles sur la place de marché.
Azure Kubernetes Service