Notes
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.
Prise en main de Kubernetes compatible avec Azure Arc à l’aide d’Azure CLI ou Azure PowerShell pour connecter un cluster Kubernetes existant à Azure Arc.
Pour obtenir un aperçu conceptuel de la connexion de clusters à Azure Arc, consultez Vue d’ensemble de l’agent Kubernetes avec Azure Arc. Pour essayer des choses dans un exemple d’expérience/pratique, visitez le démarrage rapide d’Azure Arc.
Prérequis
Important
Outre ces conditions préalables, veillez à répondre à toutes les exigences réseau pour Kubernetes avec Azure Arc.
Compte Azure avec un abonnement actif. Créez un compte gratuitement.
Une connaissance de base des concepts Kubernetes de base.
Identité (utilisateur ou principal de service) qui peut être utilisée pour se connecter à Azure CLI et connecter votre cluster à Azure Arc.
La dernière version d’Azure CLI.
Version la plus récente de l’extension Azure CLI connectedk8s, installée avec la commande suivante :
az extension add --name connectedk8s
Un cluster Kubernetes fonctionnel. Si vous n'en avez pas, vous pouvez créer un cluster en utilisant l'une des options suivantes :
Créer un cluster Kubernetes à l’aide de Docker pour Mac ou Windows
Cluster Kubernetes automanagé utilisant l'API Cluster
Remarque
Le cluster doit disposer d’au moins un nœud de système d’exploitation et d’une architecture de type
linux/amd64
et/oulinux/arm64
. Pour plus d’informations sur les scénarios ARM64, consultez les exigences relatives aux clusters.
Au moins 850 Mo gratuits pour les agents Arc déployés sur le cluster et possibilité d’utiliser environ 7 % d’un même processeur.
Fichier kubeconfig et contexte pointant vers votre cluster. Pour plus d’informations, consultez Configurer l’accès à plusieurs clusters.
Inscrire les fournisseurs pour Kubernetes avec Azure Arc
Entrez les commandes suivantes :
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocation
Supervisez le processus d’inscription. L’inscription peut prendre jusqu’à 10 minutes.
az provider show -n Microsoft.Kubernetes -o table az provider show -n Microsoft.KubernetesConfiguration -o table az provider show -n Microsoft.ExtendedLocation -o table
Une fois l’inscription effectuée, vous devriez voir que l’état
RegistrationState
pour ces espaces de noms passe àRegistered
.
Créer un groupe de ressources
Exécutez la commande suivante :
az group create --name AzureArcTest --location EastUS --output table
Sortie :
Location Name
---------- ------------
eastus AzureArcTest
Connecter un cluster Kubernetes existant
Exécutez la commande suivante pour vous connecter à votre cluster. Cette commande déploie les agents Azure Arc sur le cluster et installe Helm v. 3.6.3 dans le dossier .azure
de la machine de déploiement. Cette installation de Helm 3 est utilisée uniquement pour Azure Arc et ne supprime ni ne modifie pas les versions précédemment installées de Helm sur l’ordinateur.
Dans cet exemple, le nom du cluster est AzureArcTest1.
az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest
Sortie :
Helm release deployment succeeded
{
"aadProfile": {
"clientAppId": "",
"serverAppId": "",
"tenantId": ""
},
"agentPublicKeyCertificate": "xxxxxxxxxxxxxxxxxxx",
"agentVersion": null,
"connectivityStatus": "Connecting",
"distribution": "gke",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/AzureArcTest/providers/Microsoft.Kubernetes/connectedClusters/AzureArcTest1",
"identity": {
"principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SystemAssigned"
},
"infrastructure": "gcp",
"kubernetesVersion": null,
"lastConnectivityTime": null,
"location": "eastus",
"managedIdentityCertificateExpirationTime": null,
"name": "AzureArcTest1",
"offering": null,
"provisioningState": "Succeeded",
"resourceGroup": "AzureArcTest",
"tags": {},
"totalCoreCount": null,
"totalNodeCount": null,
"type": "Microsoft.Kubernetes/connectedClusters"
}
Conseil
La commande ci-dessus sans paramètre d’emplacement spécifié crée la ressource Kubernetes avec Azure Arc dans le même emplacement que le groupe de ressources. Pour créer la ressource Kubernetes avec Azure Arc dans un emplacement différent, spécifiez --location <region>
ou -l <region>
lors de l’exécution de la commande az connectedk8s connect
.
Important
Si le déploiement échoue en raison d’une erreur de délai d’expiration, consultez notre guide de résolution des problèmes pour plus d’informations sur la résolution de ce problème.
Se connecter à l’aide d’un serveur proxy sortant
Si votre cluster se trouve derrière un serveur proxy sortant, les demandes doivent être acheminées via le serveur proxy sortant.
Sur la machine de déploiement, définissez les variables d’environnement nécessaires pour Azure CLI afin d’utiliser le serveur proxy sortant :
export HTTP_PROXY=<proxy-server-ip-address>:<port> export HTTPS_PROXY=<proxy-server-ip-address>:<port> export NO_PROXY=<cluster-apiserver-ip-address>:<port>
Sur le cluster Kubernetes, exécutez la commande connect avec les paramètres
proxy-https
etproxy-http
spécifiés. Si votre serveur proxy est configuré à la fois pour HTTP et HTTPS, veillez à l’utiliser--proxy-http
pour le proxy HTTP et--proxy-https
pour le proxy HTTPS. Si votre serveur proxy utilise uniquement HTTP, vous pouvez utiliser cette valeur pour les deux paramètres.az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR> --proxy-cert <path-to-cert-file>
Remarque
- Certaines requêtes réseau, telles que celles impliquant une communication de service à service dans le cluster, doivent être séparées du trafic qui est routé via le serveur proxy pour les communications sortantes. Vous pouvez utiliser le paramètre
--proxy-skip-range
pour spécifier la plage CIDR et les points de terminaison en les séparant par des virgules afin qu’aucune communication depuis les agents vers ces points de terminaison ne passe par le proxy sortant. Au minimum, la plage CIDR des services dans le cluster doit être spécifiée en tant que valeur pour ce paramètre. Par exemple, supposons quekubectl get svc -A
retourne une liste de services qui, tous, ont des valeurs ClusterIP dans la plage10.0.0.0/16
. La valeur à spécifier ensuite pour--proxy-skip-range
est10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc
. --proxy-http
,--proxy-https
et--proxy-skip-range
sont attendus pour la plupart des environnements de serveurs proxy sortants.--proxy-cert
est nécessaire uniquement si vous devez injecter les certificats approuvés attendus par le serveur proxy dans le magasin de certificats approuvés des pods d’agents.- Le proxy sortant doit être configuré pour autoriser les connexions websocket.
Pour les serveurs proxy sortants, si vous fournissez uniquement un certificat approuvé, vous pouvez exécuter az connectedk8s connect
uniquement avec le --proxy-cert
paramètre spécifié :
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>
S’il existe plusieurs certificats approuvés, la chaîne de certificats (certificat feuille, certificat intermédiaire, certificat racine) doit être combinée dans un seul fichier passé dans le --proxy-cert
paramètre.
Remarque
--custom-ca-cert
est un alias pour--proxy-cert
. L’un ou l’autre paramètre peut être utilisé de façon interchangeable. Si vous passez les deux paramètres dans la même commande, le dernier paramètre passé est honoré.
Vérifier la connexion du cluster
Exécutez la commande suivante :
az connectedk8s list --resource-group AzureArcTest --output table
Sortie :
Name Location ResourceGroup
------------- ---------- ---------------
AzureArcTest1 eastus AzureArcTest
Pour résoudre les problèmes de connexion, consultez Diagnostiquer les problèmes de connexion pour les clusters Kubernetes avec Azure Arc.
Remarque
Après l’intégration du cluster, il faut jusqu’à dix minutes pour que les métadonnées du cluster (telles que la version du cluster et le nombre de nœuds) apparaissent sur la page vue d’ensemble de la ressource Kubernetes avec Azure Arc dans le portail Azure.
Voir les agents Azure Arc pour Kubernetes
Kubernetes avec Azure Arc déploie plusieurs agents dans l’espace de noms azure-arc
.
Visualisez ces déploiements et ces pods à l’aide de :
kubectl get deployments,pods -n azure-arc
Vérifiez que tous les pods sont à l’état
Running
.Sortie :
NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/cluster-metadata-operator 1/1 1 1 13d deployment.apps/clusterconnect-agent 1/1 1 1 13d deployment.apps/clusteridentityoperator 1/1 1 1 13d deployment.apps/config-agent 1/1 1 1 13d deployment.apps/controller-manager 1/1 1 1 13d deployment.apps/extension-manager 1/1 1 1 13d deployment.apps/flux-logs-agent 1/1 1 1 13d deployment.apps/kube-aad-proxy 1/1 1 1 13d deployment.apps/metrics-agent 1/1 1 1 13d deployment.apps/resource-sync-agent 1/1 1 1 13d NAME READY STATUS RESTARTS AGE pod/cluster-metadata-operator-9568b899c-2stjn 2/2 Running 0 13d pod/clusterconnect-agent-576758886d-vggmv 3/3 Running 0 13d pod/clusteridentityoperator-6f59466c87-mm96j 2/2 Running 0 13d pod/config-agent-7cbd6cb89f-9fdnt 2/2 Running 0 13d pod/controller-manager-df6d56db5-kxmfj 2/2 Running 0 13d pod/extension-manager-58c94c5b89-c6q72 2/2 Running 0 13d pod/flux-logs-agent-6db9687fcb-rmxww 1/1 Running 0 13d pod/kube-aad-proxy-67b87b9f55-bthqv 2/2 Running 0 13d pod/metrics-agent-575c565fd9-k5j2t 2/2 Running 0 13d pod/resource-sync-agent-6bbd8bcd86-x5bk5 2/2 Running 0 13d
Pour plus d’informations sur ces agents, consultez Vue d’ensemble de l’agent Kubernetes avec Azure Arc.
Nettoyer les ressources
Vous pouvez supprimer la ressource Kubernetes avec Azure Arc, toutes les ressources de configuration associées et tous les agents s’exécutant sur le cluster à l’aide de la commande suivante :
az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest
Si le processus de suppression échoue, utilisez la commande suivante pour forcer la suppression (ajout de -y
si vous souhaitez contourner l’invite de confirmation) :
az connectedk8s delete -n AzureArcTest1 -g AzureArcTest --force
Cette commande peut également être utilisée si vous rencontrez des problèmes lors de la création d’un déploiement de cluster (en raison de ressources créées précédemment qui ne sont pas complètement supprimées).
Remarque
La suppression de la ressource Kubernetes avec Azure Arc à l’aide du portail Microsoft Azure entraîne la suppression de toutes les ressources de configuration associées mais pas des agents s’exécutant sur le cluster. Pour cette raison, nous vous recommandons de supprimer la ressource az connectedk8s delete
Kubernetes avec Azure Arc plutôt que de supprimer la ressource dans le portail Azure.
Étapes suivantes
- Découvrez comment déployer des configurations à l’aide de GitOps avec Flux v2.
- Résoudre les problèmes courants liés à Kubernetes avec Azure Arc.
- Découvrez des scénarios automatisés de Kubernetes avec Azure Arc avec le démarrage rapide Azure Arc Jumpstart.
- Aidez-vous à protéger votre cluster en suivant les instructions du livre de sécurité pour Kubernetes avec Azure Arc.