Démarrage rapide : Connecter un cluster Kubernetes existant à Azure ArcQuickstart: Connect an existing Kubernetes cluster to Azure Arc

Dans ce guide de démarrage rapide, nous allons tirer parti des avantages de Kubernetes avec Azure Arc pour connecter un cluster Kubernetes existant à Azure Arc. Pour un aperçu conceptuel de la connexion de clusters à Azure Arc, consultez l’article sur l’architecture des agents Kubernetes avec Azure Arc.In this quickstart, we'll reap the benefits of Azure Arc enabled Kubernetes and connect an existing Kubernetes cluster to Azure Arc. For a conceptual take on connecting clusters to Azure Arc, see the Azure Arc enabled Kubernetes Agent Architecture article.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

PrérequisPrerequisites

  • Utilisez l’environnement Bash dans Azure Cloud Shell.Use the Bash environment in Azure Cloud Shell.

    Lancer Cloud Shell dans une nouvelle fenêtreLaunch Cloud Shell in a new window

  • Si vous préférez, installez l’interface Azure CLI pour exécuter les commandes de référence de l’interface de ligne de commande.If you prefer, install the Azure CLI to run CLI reference commands.

    • Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login.If you're using a local installation, sign in to the Azure CLI by using the az login command. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal.To finish the authentication process, follow the steps displayed in your terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.For additional sign-in options, see Sign in with the Azure CLI.

    • Lorsque vous y êtes invité, installez les extensions Azure CLI lors de la première utilisation.When you're prompted, install Azure CLI extensions on first use. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.For more information about extensions, see Use extensions with the Azure CLI.

    • Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées.Run az version to find the version and dependent libraries that are installed. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.To upgrade to the latest version, run az upgrade.

  • Vérifiez que vous disposez des éléments suivants :Verify you have:

    • Un cluster Kubernetes fonctionnel.An up-and-running Kubernetes cluster.
    • Fichier kubeconfig.A kubeconfig file.
    • Autorisations d’accès en lecture/écriture pour l’utilisateur ou le principal de service qui se connecte afin de créer le type de ressource Kubernetes avec Azure Arc (Microsoft.Kubernetes/connectedClusters).'Read' and 'Write' permissions for the user or service principal connecting creating the Azure Arc enabled Kubernetes resource type (Microsoft.Kubernetes/connectedClusters).
  • Installez la dernière version de Helm 3.Install the latest release of Helm 3.

  • Installez les extensions CLI de Kubernetes avec Azure Arc versions 1.0.0 et ultérieures :Install the following Azure Arc enabled Kubernetes CLI extensions of versions >= 1.0.0:

    az extension add --name connectedk8s
    az extension add --name k8s-configuration
    
    • Pour mettre à jour ces extensions vers la dernière version, exécutez les commandes suivantes :To update these extensions to the latest version, run the following commands:
    az extension update --name connectedk8s
    az extension update --name k8s-configuration
    

Notes

Régions prises en charge :Supported regions:

  • USA EstEast US
  • Europe OuestWest Europe
  • Centre-USA OuestWest Central US
  • États-Unis - partie centrale méridionaleSouth Central US
  • Asie Sud-EstSoutheast Asia
  • Sud du Royaume-UniUK South
  • USA Ouest 2West US 2
  • Australie EstAustralia East
  • USA Est 2East US 2
  • Europe NordNorth Europe

Répondre à la configuration réseau nécessaireMeet network requirements

Important

Les agents Azure Arc requièrent les protocoles/ports/URL sortantes suivants pour fonctionner :Azure Arc agents require the following protocols/ports/outbound URLs to function:

  • TCP sur le port 443 : https://:443TCP on port 443: https://:443
  • TCP sur le port 9418 : git://:9418TCP on port 9418: git://:9418
Point de terminaison (DNS)Endpoint (DNS) DescriptionDescription
https://management.azure.com Requis pour que l’agent se connecte à Azure et inscrive le cluster.Required for the agent to connect to Azure and register the cluster.
https://eastus.dp.kubernetesconfiguration.azure.com, https://westeurope.dp.kubernetesconfiguration.azure.com, https://westcentralus.dp.kubernetesconfiguration.azure.com, https://southcentralus.dp.kubernetesconfiguration.azure.com, https://southeastasia.dp.kubernetesconfiguration.azure.com, https://uksouth.dp.kubernetesconfiguration.azure.com, https://westus2.dp.kubernetesconfiguration.azure.com, https://australiaeast.dp.kubernetesconfiguration.azure.com, https://eastus2.dp.kubernetesconfiguration.azure.com, https://northeurope.dp.kubernetesconfiguration.azure.comhttps://eastus.dp.kubernetesconfiguration.azure.com, https://westeurope.dp.kubernetesconfiguration.azure.com, https://westcentralus.dp.kubernetesconfiguration.azure.com, https://southcentralus.dp.kubernetesconfiguration.azure.com, https://southeastasia.dp.kubernetesconfiguration.azure.com, https://uksouth.dp.kubernetesconfiguration.azure.com, https://westus2.dp.kubernetesconfiguration.azure.com, https://australiaeast.dp.kubernetesconfiguration.azure.com, https://eastus2.dp.kubernetesconfiguration.azure.com, https://northeurope.dp.kubernetesconfiguration.azure.com Point de terminaison du plan de données permettant à l’agent d’envoyer (push) le statut et de récupérer (fetch) les informations de configuration.Data plane endpoint for the agent to push status and fetch configuration information.
https://login.microsoftonline.com Requis pour extraire et mettre à jour des jetons Azure Resource Manager.Required to fetch and update Azure Resource Manager tokens.
https://mcr.microsoft.com Requis pour extraire des images conteneurs pour les agents Azure Arc.Required to pull container images for Azure Arc agents.
https://eus.his.arc.azure.com, https://weu.his.arc.azure.com, https://wcus.his.arc.azure.com, https://scus.his.arc.azure.com, https://sea.his.arc.azure.com, https://uks.his.arc.azure.com, https://wus2.his.arc.azure.com, https://ae.his.arc.azure.com, https://eus2.his.arc.azure.com, https://ne.his.arc.azure.comhttps://eus.his.arc.azure.com, https://weu.his.arc.azure.com, https://wcus.his.arc.azure.com, https://scus.his.arc.azure.com, https://sea.his.arc.azure.com, https://uks.his.arc.azure.com, https://wus2.his.arc.azure.com, https://ae.his.arc.azure.com, https://eus2.his.arc.azure.com, https://ne.his.arc.azure.com Indispensable à l’extraction des certificats attribués par le système dans le cadre des identités managées pour les ressources Azure.Required to pull system-assigned Managed Service Identity (MSI) certificates.

Installer les extensions CLI Kubernetes avec Azure ArcInstall the Azure Arc enabled Kubernetes CLI extensions

Entrez les commandes suivantes :Enter the following commands:

```azurecli
az extension add --name connectedk8s
az extension add --name k8s-configuration
```

Inscription des deux fournisseurs pour Kubernetes avec Azure ArcRegister the two providers for Azure Arc enabled Kubernetes

  1. Entrez les commandes suivantes :Enter the following commands:
    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.KubernetesConfiguration
    
  2. Supervisez le processus d’inscription.Monitor the registration process. L’inscription peut prendre jusqu’à 10 minutes.Registration may take up to 10 minutes.
    az provider show -n Microsoft.Kubernetes -o table
    az provider show -n Microsoft.KubernetesConfiguration -o table    
    

Créer un groupe de ressourcesCreate a resource group

Créez un groupe de ressources :Create a resource group:

az group create --name AzureArcTest -l EastUS -o table
Location    Name
----------  ------------
eastus      AzureArcTest

Connecter un cluster Kubernetes existantConnect an existing Kubernetes cluster

  1. Connectez votre cluster Kubernetes à Azure Arc à l’aide de la commande suivante :Connect your Kubernetes cluster to Azure Arc using the following command:

    az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest
    
    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"
    }
    

Vérifier la connexion du clusterVerify cluster connection

Visualisez la liste de vos clusters connectés avec la commande suivante :View a list of your connected clusters with the following command:

az connectedk8s list -g AzureArcTest -o table
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.After onboarding the cluster, it takes around 5 to 10 minutes for the cluster metadata (cluster version, agent version, number of nodes, etc.) to surface on the overview page of the Azure Arc enabled Kubernetes resource in Azure portal.

Se connecter à l’aide d’un serveur proxy sortantConnect using an outbound proxy server

Si votre cluster se trouve derrière un serveur proxy sortant, Azure CLI et les agents Kubernetes avec Azure Arc doivent router leurs requêtes via ce serveur proxy sortant.If your cluster is behind an outbound proxy server, Azure CLI and the Azure Arc enabled Kubernetes agents need to route their requests via the outbound proxy server.

  1. Définissez les variables d’environnement nécessaires pour Azure CLI afin d’utiliser le serveur proxy sortant :Set the environment variables needed for Azure CLI to use the outbound proxy server:

    • Si vous utilisez bash, exécutez la commande suivante avec les valeurs appropriées :If you are using bash, run the following command with appropriate values:

      export HTTP_PROXY=<proxy-server-ip-address>:<port>
      export HTTPS_PROXY=<proxy-server-ip-address>:<port>
      export NO_PROXY=<cluster-apiserver-ip-address>:<port>
      
    • Si vous utilisez PowerShell, exécutez la commande suivante avec les valeurs appropriées :If you are using PowerShell, run the following command with appropriate values:

      $Env:HTTP_PROXY = "<proxy-server-ip-address>:<port>"
      $Env:HTTPS_PROXY = "<proxy-server-ip-address>:<port>"
      $Env:NO_PROXY = "<cluster-apiserver-ip-address>:<port>"
      
  2. Exécutez la commande connect avec les paramètres de proxy spécifiés :Run the connect command with proxy parameters specified:

    az connectedk8s connect -n <cluster-name> -g <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

  • Spécifiez excludedCIDR sous --proxy-skip-range pour vérifier si la communication des agents au sein du cluster n’est pas interrompue.Specify excludedCIDR under --proxy-skip-range to ensure in-cluster communication is not broken for the agents.
  • --proxy-http, --proxy-https et --proxy-skip-range sont attendus pour la plupart des environnements de serveurs proxy sortants.--proxy-http, --proxy-https, and --proxy-skip-range are expected for most outbound proxy environments. --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.--proxy-cert is only required if you need to inject trusted certificates expected by proxy into the trusted certificate store of agent pods.

Voir les agents Azure Arc pour KubernetesView Azure Arc agents for Kubernetes

Un Kubernetes à extension Azure Arc déploie quelques opérateurs dans l’espace de noms azure-arc.Azure Arc enabled Kubernetes deploys a few operators into the azure-arc namespace.

  1. Visualisez ces déploiements et ces pods à l’aide de :View these deployments and pods using:

    kubectl -n azure-arc get deployments,pods
    
  2. Vérifiez que tous les pods sont à l’état Running.Verify all pods are in a Running state.

    NAME                                        READY      UP-TO-DATE  AVAILABLE  AGE
    deployment.apps/cluster-metadata-operator     1/1             1        1      16h
    deployment.apps/clusteridentityoperator       1/1             1        1      16h
    deployment.apps/config-agent                  1/1             1        1      16h
    deployment.apps/controller-manager            1/1             1        1      16h
    deployment.apps/flux-logs-agent               1/1             1        1      16h
    deployment.apps/metrics-agent                 1/1             1        1      16h
    deployment.apps/resource-sync-agent           1/1             1        1      16h
    
    NAME                                           READY    STATUS   RESTART AGE
    pod/cluster-metadata-operator-7fb54d9986-g785b  2/2     Running  0       16h
    pod/clusteridentityoperator-6d6678ffd4-tx8hr    3/3     Running  0       16h
    pod/config-agent-544c4669f9-4th92               3/3     Running  0       16h
    pod/controller-manager-fddf5c766-ftd96          3/3     Running  0       16h
    pod/flux-logs-agent-7c489f57f4-mwqqv            2/2     Running  0       16h
    pod/metrics-agent-58b765c8db-n5l7k              2/2     Running  0       16h
    pod/resource-sync-agent-5cf85976c7-522p5        3/3     Running  0       16h
    

Nettoyer les ressourcesClean up resources

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 :You can delete the Azure Arc enabled Kubernetes resource, any associated configuration resources, and any agents running on the cluster using Azure CLI using the following command:

az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest

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.Deleting the Azure Arc enabled Kubernetes resource using Azure portal removes any associated configuration resources, but does not remove any agents running on the cluster. Il est recommandé de suivre la bonne pratique qui consiste à supprimer la ressource Kubernetes avec Azure Arc via az connectedk8s delete au d’utiliser le portail Azure.Best practice is to delete the Azure Arc enabled Kubernetes resource using az connectedk8s delete instead of Azure portal.

Étapes suivantesNext steps

Passez à l’article suivant pour savoir comment déployer des configurations sur votre cluster Kubernetes connecté à l’aide de GitOps.Advance to the next article to learn how to deploy configurations to your connected Kubernetes cluster using GitOps.