Démarrage rapide : Connecter un cluster Kubernetes existant à Azure Arc
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
Notes
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 découvrir plus d’informations sur la définition d’un fichier kubeconfig et la façon de définir un contexte à pointer vers votre cluster, veuillez consulter cet article.
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>
Notes
- 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 de trafic sortant où seul un certificat approuvé doit être fourni sans les entrées de point de terminaison du serveur proxy, az connectedk8s connect
peut être exécuté en spécifiant seulement l’entrée --proxy-cert
. Si plusieurs certificats approuvés sont attendus, la chaîne de certificats combinée peut être fournie dans un seul fichier en utilisant le paramètre --proxy-cert
.
Notes
--custom-ca-cert
est un alias pour--proxy-cert
. Les deux paramètres peuvent être utilisés indifféremment. Si vous passez les deux paramètres dans la même commande, le dernier paramètre passé est honoré.
Exécutez la commande connect avec le paramètre --proxy-cert
spécifié :
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>
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
Notes
Après l’intégration du cluster, il faut environ 5 à 10 minutes pour que les métadonnées du cluster (version du cluster, version de l’agent, nombre de nœuds, etc.) soient visibles sur la page Vue d’ensemble de la ressource Kubernetes avec Azure Arc sur le Portail Azure.
Conseil
Pour obtenir de l’aide sur la résolution des problèmes lors de la connexion de votre cluster, consultez Diagnostiquer les problèmes de connexion pour les clusters Kubernetes avec Azure Arc.
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 d’Azure CLI et 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).
Notes
La suppression de la ressource Kubernetes avec Azure Arc à l’aide du portail Azure entraîne la suppression de toutes les ressources de configuration associées mais pas des agents s’exécutant sur le cluster. La meilleure pratique consiste à supprimer la ressource Kubernetes avec Azure Arc à l’aide de az connectedk8s delete
au lieu 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.