Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez utiliser une extension dans un cluster Kubernetes avec Azure Arc pour accéder aux services et scénarios Azure. Cet article explique comment créer des instances d’extension et définir des paramètres obligatoires et facultatifs, notamment des options pour les mises à jour et les configurations. Vous allez également découvrir comment afficher, lister, mettre à jour, et supprimer des instances d’extension.
Avant de commencer, lisez la vue d’ensemble des extensions de cluster Kubernetes avec Azure Arc et passez en revue la liste des extensions actuellement disponibles.
Prérequis
La version la plus récente d’Azure CLI.
Les dernières versions des extensions
connectedk8setk8s-extensionAzure CLI. Pour installer ces extensions, exécutez les commandes suivantes :az extension add --name connectedk8s az extension add --name k8s-extensionSi les extensions
connectedk8setk8s-extensionsont déjà installées, vérifiez qu’elles sont mises à jour vers la dernière version à l’aide de ces commandes :az extension update --name connectedk8s az extension update --name k8s-extensionUn cluster connecté Kubernetes avec Azure Arc existant, avec au moins un nœud de système d’exploitation et un type d’architecture
linux/amd64. Si vous déployez Flux (GitOps), vous pouvez utiliser un cluster ARM64 sans utiliser de nœudlinux/amd64.- Si vous n’avez pas encore connecté de cluster, utilisez notre guide de démarrage rapide pour en connecter un.
- Mettez à niveau vos agents vers la dernière version.
Créer une instance d’extension
Pour créer une instance d’extension, utilisez la commande k8s-extension create. Utilisez les valeurs de votre scénario pour les espaces réservés de paramètres requis.
Cet exemple crée une instance d’extension Container Insights dans Azure Monitor sur un cluster Kubernetes avec Azure Arc :
az k8s-extension create --name azuremonitor-containers --extension-type Microsoft.AzureMonitor.Containers --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Vérifiez la sortie qui ressemble à cet exemple :
{
"autoUpgradeMinorVersion": true,
"configurationProtectedSettings": null,
"configurationSettings": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
},
"creationTime": "2021-04-02T12:13:06.7534628+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "microsoft.azuremonitor.containers",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
"identity": null,
"installState": "Pending",
"lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
"lastStatusTime": null,
"name": "azuremonitor-containers",
"releaseTrain": "Stable",
"resourceGroup": "demo",
"scope": {
"cluster": {
"releaseNamespace": "azuremonitor-containers"
},
"namespace": null
},
"statuses": [],
"systemData": null,
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "2.8.2"
}
Remarque
Le service ne conserve pas les informations sensibles au-delà de 48 heures. Si les agents Kubernetes avec Azure Arc 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’étatFailed. Dans ce scénario, vous devez réexécuter k8s-extension create pour créer une nouvelle ressource Azure d’extension.
Une seule instance de Container Insights dans l’extension Azure Monitor est requise par cluster. Avant d’installer Container Insights via une extension, vous devez supprimer toute installation de graphique Helm précédente de Container Insights qui n’utilise pas d’extensions. Avant d’exécuter az k8s-extension create, suivez les étapes pour supprimer le graphique Helm.
Paramètres obligatoires
Le tableau suivant décrit les paramètres requis lorsque vous utilisez az k8s-extension create pour créer une instance d’extension :
| Nom du paramètre | Description |
|---|---|
--name |
Nom de l’instance d’extension. |
--extension-type |
Type d’extension que vous souhaitez installer sur le cluster. Par exemple, Microsoft.AzureMonitor.Containers ou microsoft.azuredefender.kubernetes. |
--scope |
Étendue de l’installation pour l’extension. Utilisez cluster ou namespace. |
--cluster-name |
Nom de la ressource Kubernetes avec Azure Arc sur laquelle créer l’instance d’extension. |
--resource-group |
Groupe de ressources contenant la ressource Kubernetes avec Azure Arc. |
--cluster-type |
Type de cluster sur lequel créer l’instance d’extension. Pour la plupart des scénarios, utilisez connectedClusters, le type de cluster pour un cluster Kubernetes avec Azure Arc. |
Paramètres facultatifs
Vous pouvez utiliser un ou plusieurs de ces paramètres facultatifs avec les paramètres requis pour votre scénario.
Remarque
Vous pouvez choisir de mettre automatiquement à niveau votre instance d’extension vers les dernières versions mineures et correctives en définissant auto-upgrade-minor-version sur true. Vous pouvez également définir la version de l’instance d’extension manuellement à l’aide du paramètre --version. Nous vous recommandons d’activer les mises à niveau automatiques pour les versions mineures et correctives, afin de toujours disposer des derniers correctifs et fonctionnalités de sécurité.
Étant donné que les mises à niveau de versions majeures peuvent inclure des changements cassants, les mises à niveau automatiques pour les nouvelles versions majeures d’une instance d’extension ne sont pas prises en charge. Vous pouvez choisir quand mettre à niveau manuellement une instance d’extension vers une nouvelle version majeure.
| Nom du paramètre | Description |
|---|---|
--auto-upgrade-minor-version |
Propriété booléenne qui indique si la version mineure de l’extension est automatiquement mise à niveau. La valeur par défaut est true. Si ce paramètre est défini sur true, vous ne pouvez pas définir le paramètre version, car la version est mise à jour dynamiquement. Si ce paramètre est défini sur false, l’extension n’est pas automatiquement mise à niveau, même pour les versions de correctifs. |
--version |
Version de l’extension à installer (version spécifique à laquelle épingler l’instance d’extension). Vous ne pouvez pas définir le paramètre version si auto-upgrade-minor-version est défini sur true. |
--configuration-settings |
Paramètres qui peuvent être transmis dans l’extension pour contrôler sa fonctionnalité. Ces paramètres sont transmis en tant que paires de key=value séparées par un espace après le nom du paramètre. Si ce paramètre est utilisé dans la commande, vous ne pouvez pas transmettre --configuration-settings-file dans la même commande. |
--configuration-settings-file |
Chemin d’accès à un fichier JSON avec des paires key=value à utiliser pour transmettre des paramètres de configuration à l’extension. Si ce paramètre est utilisé dans la commande, vous ne pouvez pas utiliser --configuration-settings dans la même commande. |
--configuration-protected-settings |
Paramètres qui ne sont pas récupérables à l’aide d’appels d’API GET ou de commandes az k8s-extension show. Généralement utilisé pour transmettre des paramètres sensibles. Ces paramètres sont transmis en tant que paires de key=value séparées par un espace après le nom du paramètre. Si ce paramètre est utilisé dans la commande, vous ne pouvez pas utiliser --configuration-protected-settings-file dans la même commande. |
--configuration-protected-settings-file |
Chemin d’accès à un fichier JSON avec des paires key=value à utiliser pour transmettre des paramètres sensibles à l’extension. Si ce paramètre est utilisé dans la commande, vous ne pouvez pas utiliser --configuration-protected-settings dans la même commande. |
--release-namespace |
Ce paramètre indique l’espace de noms dans lequel créer la mise en production. Ce paramètre est pertinent uniquement si scope a la valeur cluster. |
--release-train |
L’auteur d’une extension peut publier des versions dans différents trains de mise en production, tels que Stable ou Preview. Si ce paramètre n’est pas défini explicitement, Stable est la valeur par défaut. |
--target-namespace |
Indique l’espace de noms dans lequel créer la mise en production. L’autorisation pour le compte système créé pour cette instance d’extension est limitée à cet espace de noms. Ce paramètre est pertinent uniquement si scope a la valeur namespace. |
Afficher les détails de l’extension
Pour afficher les détails d’une instance d’extension actuellement installée, utilisez la commande k8s-extension show. Dans ce code, utilisez les valeurs de votre scénario pour les espaces réservés de paramètres requis.
az k8s-extension show --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Vérifiez la sortie qui ressemble à cet exemple :
{
"autoUpgradeMinorVersion": true,
"configurationProtectedSettings": null,
"configurationSettings": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
},
"creationTime": "2021-04-02T12:13:06.7534628+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "microsoft.azuremonitor.containers",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
"identity": null,
"installState": "Installed",
"lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
"lastStatusTime": "2021-04-02T12:13:49.636+00:00",
"name": "azuremonitor-containers",
"releaseTrain": "Stable",
"resourceGroup": "demo",
"scope": {
"cluster": {
"releaseNamespace": "azuremonitor-containers"
},
"namespace": null
},
"statuses": [],
"systemData": null,
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "2.8.2"
}
Lister toutes les extensions installées sur le cluster
Pour afficher la liste de toutes les extensions installées sur un cluster, utilisez la commande k8s-extension list. Dans ce code, utilisez les valeurs de votre scénario pour les espaces réservés de paramètres requis.
az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Vérifiez la sortie qui ressemble à cet exemple :
[
{
"autoUpgradeMinorVersion": true,
"creationTime": "2020-09-15T02:26:03.5519523+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "Microsoft.AzureMonitor.Containers",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/myExtInstanceName",
"identity": null,
"installState": "Pending",
"lastModifiedTime": "2020-09-15T02:48:45.6469664+00:00",
"lastStatusTime": null,
"name": "myExtInstanceName",
"releaseTrain": "Stable",
"resourceGroup": "myRG",
"scope": {
"cluster": {
"releaseNamespace": "myExtInstanceName1"
}
},
"statuses": [],
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "0.1.0"
},
{
"autoUpgradeMinorVersion": true,
"creationTime": "2020-09-02T00:41:16.8005159+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "microsoft.azuredefender.kubernetes",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/defender",
"identity": null,
"installState": "Pending",
"lastModifiedTime": "2020-09-02T00:41:16.8005162+00:00",
"lastStatusTime": null,
"name": "microsoft.azuredefender.kubernetes",
"releaseTrain": "Stable",
"resourceGroup": "myRg",
"scope": {
"cluster": {
"releaseNamespace": "myExtInstanceName2"
}
},
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "0.1.0"
}
]
Mettre à jour une instance d’extension
Remarque
Pour comprendre les paramètres spécifiques dans --configuration-settings et --configuration-protected-settings qui peuvent être mis à jour, consultez la documentation relative au type d’extension spécifique. Pour --configuration-protected-settings, fournissez tous les paramètres, même si un seul paramètre est mis à jour. Si certains de ces paramètres sont omis, ils seront considérés comme obsolètes et seront supprimés.
Pour mettre à jour une instance d’extension existante, utilisez k8s-extension update. Transmettez les valeurs des paramètres obligatoires et facultatifs. Les paramètres obligatoires et facultatifs sont légèrement différents des paramètres que vous utilisez pour créer une instance d’extension.
Cet exemple met à jour le paramètre auto-upgrade-minor-version d’une instance d’extension Azure Machine Learning avec la valeur true :
az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --auto-upgrade-minor-version true --cluster-type managedClusters
Paramètres requis pour une mise à jour
| Nom du paramètre | Description |
|---|---|
--name |
Nom de l’instance d’extension. |
--cluster-name |
Nom du cluster sur lequel l’instance d’extension est créée. |
--resource-group |
Groupe de ressources qui contient le cluster. |
--cluster-type |
Type de cluster sur lequel l’instance d’extension doit être créée. Pour les clusters Kubernetes avec Azure Arc, utilisez connectedClusters. Pour les clusters AKS, utilisez managedClusters. |
Paramètres facultatifs pour une 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 est automatiquement mise à niveau. La valeur par défaut est true. Si ce paramètre est défini sur true, vous ne pouvez pas définir le paramètre version, car la version est mise à jour dynamiquement. Si le paramètre est défini sur false, l’extension n’est pas automatiquement mise à niveau, même pour les versions de correctifs. |
--version |
Version de l’extension à installer (une version spécifique à laquelle épingler l’instance d’extension). Ne doit pas être fourni si auto-upgrade-minor-version a la valeur true. |
--configuration-settings |
Paramètres qui peuvent être transmis dans l’extension pour contrôler sa fonctionnalité. Ces paramètres sont transmis en tant que paires de key=value séparées par un espace après le nom du paramètre. Si le paramètre est utilisé dans la commande, --configuration-settings-file ne peut pas être utilisé dans la même commande. Seuls les paramètres qui nécessitent une mise à jour doivent être fournis. Les paramètres fournis sont remplacés par les valeurs spécifiées. |
--configuration-settings-file |
Chemin d’accès à un fichier JSON qui contient des paires key=value à utiliser pour transmettre les paramètres de configuration à l’extension. Si ce paramètre est utilisé dans la commande, vous ne pouvez pas utiliser --configuration-settings dans la même commande. |
--configuration-protected-settings |
Paramètres qui ne sont pas récupérables à l’aide d’appels d’API GET ou de commandes az k8s-extension show. Généralement utilisé pour transmettre des paramètres sensibles. Ces paramètres sont transmis en tant que paires de 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. Lorsque vous mettez à jour un paramètre protégé, configurez tous les paramètres protégés. Si certains des paramètres sont omis, ils sont considérés comme obsolètes et sont supprimés. |
--configuration-protected-settings-file |
Chemin d’accès à un fichier JSON qui contient des paires key=value à utiliser pour transmettre les paramètres sensibles à l’extension. Si ce paramètre est utilisé dans la commande, vous ne pouvez pas utiliser --configuration-protected-settings dans la même commande. |
--scope |
Étendue d’installation pour l’extension. Utilisez cluster ou namespace. |
--release-train |
L’auteur d’une extension peut publier des versions dans différents trains de mise en production, tels que Stable ou Preview. Si ce paramètre n’est pas défini explicitement, Stable est la valeur par défaut. |
Mettre à niveau une instance d’extension
Comme indiqué précédemment, si vous définissez auto-upgrade-minor-version sur true, l’extension est automatiquement mise à niveau lorsqu’une nouvelle version mineure est publiée. Pour la plupart des scénarios, nous vous recommandons d’activer les mises à niveau automatiques. Si vous définissez auto-upgrade-minor-version sur false, vous devez mettre à niveau l’extension manuellement si vous souhaitez une version plus récente.
Des mises à niveau manuelles sont également requises pour obtenir une nouvelle instance principale d’une extension. Vous pouvez choisir quand effectuer une mise à niveau afin d’éviter tout changement cassant inattendu dans les mises à niveau de versions majeures.
Pour mettre à niveau manuellement une instance d’extension, utilisez k8s-extension update et définissez le paramètre version.
Cet exemple met à jour une instance d’extension Azure Machine Learning vers la version x.y.z :
az k8s-extension update --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters --name azureml --version x.y.z
Supprimer une instance d’extension
Pour supprimer une instance d’extension sur un cluster, utilisez la commande k8s-extension delete. Utilisez les valeurs de votre scénario pour les espaces réservés de paramètres requis.
az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Remarque
La ressource Azure qui représente 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 accéder aux services Azure pour obtenir l’état souhaité.
Contenu connexe
- 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.
- Apprenez-en davantage sur le fonctionnement des extensions avec les clusters Kubernetes avec Azure Arc.
- Passez en revue les extensions de cluster disponibles pour Kubernetes avec Azure Arc.
- Obtenez de l’aide pour résoudre les problèmes d’extension.