Schnellstart: Herstellen einer Verbindung eines vorhandenen Kubernetes-Clusters mit Azure ArcQuickstart: Connect an existing Kubernetes cluster to Azure Arc

In diesem Schnellstart werden wir die Vorteile von Kubernetes mit Azure Arc-Aktivierung nutzen und eine Verbindung von einem vorhandenen Kubernetes-Cluster mit Azure Arc herstellen. Eine konzeptionelle Übersicht über das Herstellen einer Verbindung von Clustern mit Azure Arc finden Sie im Artikel Architektur eines Azure Arc-fähigen Kubernetes-Agents.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.

Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

VoraussetzungenPrerequisites

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell.Use the Bash environment in Azure Cloud Shell.

    Starten von Cloud Shell in einem neuen FensterLaunch Cloud Shell in a new window

  • Wenn Sie möchten, können Sie auch die Azure CLI installieren, um CLI-Verweisbefehle auszuführen.If you prefer, install the Azure CLI to run CLI reference commands.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an.If you're using a local installation, sign in to the Azure CLI by using the az login command. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen.To finish the authentication process, follow the steps displayed in your terminal. Weitere Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.For additional sign-in options, see Sign in with the Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterungen bei der ersten Verwendung, wenn Sie dazu aufgefordert werden.When you're prompted, install Azure CLI extensions on first use. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.For more information about extensions, see Use extensions with the Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln.Run az version to find the version and dependent libraries that are installed. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.To upgrade to the latest version, run az upgrade.

  • Ein funktionierender Kubernetes-Cluster.An up-and-running Kubernetes cluster. Wenn Sie über keinen verfügen, haben Sie die folgenden drei Möglichkeiten, um einen Cluster zu erstellen:If you don't have one, you can create a cluster using one of these options:

    • Kubernetes in Docker (KIND)Kubernetes in Docker (KIND)

    • Erstellen eines Kubernetes-Clusters mithilfe von Docker für Mac oder WindowsCreate a Kubernetes cluster using Docker for Mac or Windows

    • Selbst verwalteter Kubernetes-Cluster mithilfe der Cluster-APISelf-managed Kubernetes cluster using Cluster API

    • Wenn Sie einen OpenShift-Cluster mit Azure Arc verbinden möchten, müssen Sie den folgenden Befehl nur einmal in Ihrem Cluster ausführen, bevor Sie az connectedk8s connect ausführen:If you want to connect a OpenShift cluster to Azure Arc, you need to execute the following command just once on your cluster before running az connectedk8s connect:

      oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
      

    Hinweis

    Der Cluster muss mindestens einen Knoten des Betriebssystems und des Architektur Typs linux/amd64 aufweisen.The cluster needs to have at least one node of operating system and architecture type linux/amd64. Cluster mit nur linux/arm64-Knoten werden noch nicht unterstützt.Clusters with only linux/arm64 nodes aren't yet supported.

  • Eine kubeconfig-Datei und ein Kontext, der auf Ihren Cluster verweist.A kubeconfig file and context pointing to your cluster.

  • Lese- und Schreibberechtigungen für den Azure Arc-aktivierten Kubernetes-Ressourcentyp (Microsoft.Kubernetes/connectedClusters).'Read' and 'Write' permissions on the Azure Arc enabled Kubernetes resource type (Microsoft.Kubernetes/connectedClusters).

  • Installieren Sie das neueste Release von Helm 3.Install the latest release of Helm 3.

  • Installieren oder aktualisieren Sie Azure CLI auf eine Version >= 2.16.0Install or upgrade Azure CLI to version >= 2.16.0

  • Installieren Sie die Azure CLI-Erweiterung connectedk8s in einer Version >= 1.0.0:Install the connectedk8s Azure CLI extension of version >= 1.0.0:

    az extension add --name connectedk8s
    

Tipp

Wenn die Erweiterung connectedk8s bereits installiert ist, können Sie sie mit dem folgenden Befehl auf die neueste Version aktualisieren: az extension update --name connectedk8sIf the connectedk8s extension is already installed, update it to the latest version using the following command - az extension update --name connectedk8s

Hinweis

Die Liste der Regionen, die von Azure Arc-aktiviertem Kubernetes unterstützt werden, finden Sie hier.The list of regions supported by Azure Arc enabled Kubernetes can be found here.

Hinweis

Wenn Sie benutzerdefinierte Speicherorte im Cluster verwenden möchten, verwenden Sie die Regionen „USA, Osten“ oder „Europa, Westen“, um Ihren Cluster zu verbinden, da benutzerdefinierte Speicherorte derzeit nur in diesen Regionen verfügbar sind.If you want to use custom locations on the cluster, then use East US or West Europe regions for connecting your cluster as custom locations is only available in these regions as of now. Alle anderen Azure Arc-aktivierten Kubernetes-Funktionen sind in allen oben aufgeführten Regionen verfügbar.All other Azure Arc enabled Kubernetes features are available in all regions listed above.

Erfüllen von NetzwerkanforderungenMeet network requirements

Wichtig

Azure Arc-Agents müssen über die folgenden Protokolle/Ports/ausgehenden URLs verfügen, um zu funktionieren:Azure Arc agents require the following protocols/ports/outbound URLs to function:

  • TCP an Port 443: https://:443TCP on port 443: https://:443
  • TCP an Port 9418: git://:9418TCP on port 9418: git://:9418
Endpunkt (DNS)Endpoint (DNS) BESCHREIBUNGDescription
https://management.azure.com Erforderlich, damit der Agent eine Verbindung mit Azure herstellen und den Cluster registrieren kann.Required for the agent to connect to Azure and register the cluster.
https://<region>.dp.kubernetesconfiguration.azure.com Endpunkt auf Datenebene, über den der Agent Statusinformationen mithilfe von Push übermitteln und Konfigurationsinformationen abrufen kannData plane endpoint for the agent to push status and fetch configuration information.
https://login.microsoftonline.com Erforderlich zum Abrufen und Aktualisieren von Azure Resource Manager-Token.Required to fetch and update Azure Resource Manager tokens.
https://mcr.microsoft.com Erforderlich zum Pullen von Containerimages für Azure Arc-Agents.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 Erforderlich zum Pullen vom System zugewiesener Zertifikate für verwaltete Dienstidentitäten (MSI).Required to pull system-assigned Managed Service Identity (MSI) certificates.

Registrieren von Anbietern für Kubernetes mit Azure Arc-UnterstützungRegister providers for Azure Arc enabled Kubernetes

  1. Geben Sie die folgenden Befehle ein:Enter the following commands:
    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.KubernetesConfiguration
    az provider register --namespace Microsoft.ExtendedLocation
    
  2. Überwachen Sie den Registrierungsprozess.Monitor the registration process. Die Registrierung kann bis zu 10 Minuten dauern.Registration may take up to 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
    

Erstellen einer RessourcengruppeCreate a resource group

Erstellen Sie eine Ressourcengruppe:Create a resource group:

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

Herstellen der Verbindung mit einem vorhandenen Kubernetes-ClusterConnect an existing Kubernetes cluster

  1. Verbinden Sie Ihren Kubernetes-Cluster mithilfe des folgenden Befehls mit Azure Arc: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"
    }
    

Tipp

Mit dem obigen Befehl ohne den angegebenen location-Parameter wird die Kubernetes-Ressource mit Azure Arc-Unterstützung am gleichen Standort wie die Ressourcengruppe erstellt.The above command without the location parameter specified creates the Azure Arc enabled Kubernetes resource in the same location as the resource group. Wenn Sie die Kubernetes-Ressource mit Azure Arc-Unterstützung an einem anderen Standort erstellen möchten, geben Sie bei Ausführung des Befehls az connectedk8s connect entweder --location <region> oder -l <region> an.To create the Azure Arc enabled Kubernetes resource in a different location, specify either --location <region> or -l <region> when running the az connectedk8s connect command.

Hinweis

Wenn Sie mithilfe eines Dienstprinzipals bei Azure CLI angemeldet sind, sind zusätzliche Berechtigungen für den Dienstprinzipal erforderlich, um das Feature für benutzerdefinierte Speicherorte zu aktivieren, wenn der Cluster mit Azure Arc verbunden wird.If you are logged into Azure CLI using a service principal, additional permissions are required on the service principal for enabling the custom location feature when connecting the cluster to Azure Arc.

Überprüfen der ClusterverbindungVerify cluster connection

Zeigen Sie mit dem folgenden Befehl eine Liste Ihrer verbundenen Cluster an:View a list of your connected clusters with the following command:

az connectedk8s list -g AzureArcTest -o table
Name           Location    ResourceGroup
-------------  ----------  ---------------
AzureArcTest1  eastus      AzureArcTest

Hinweis

Nach dem Onboarding des Clusters dauert es ungefähr 5 bis 10 Minuten, bis die Clustermetadaten (Clusterversion, Agent-Version, Anzahl der Knoten usw.) auf der Übersichtsseite der Azure Arc-fähigen Kubernetes-Ressource im Azure-Portal angezeigt wird.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.

Herstellen einer Verbindung mit einem ausgehenden ProxyserverConnect using an outbound proxy server

Wenn sich Ihr Cluster hinter einem ausgehenden Proxyserver befindet, müssen die Azure-Befehlszeilenschnittstelle und die Kubernetes-Agents mit Azure Arc-Aktivierung ihre Anforderungen über den ausgehenden Proxyserver weiterleiten.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. Legen Sie die für Azure CLI erforderlichen Umgebungsvariablen fest, um den ausgehenden Proxyserver zu verwenden:Set the environment variables needed for Azure CLI to use the outbound proxy server:

    • Wenn Sie die Bash verwenden, führen Sie den folgenden Befehl mit entsprechenden Werten aus: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>
      
    • Wenn Sie PowerShell verwenden, führen Sie den folgenden Befehl mit entsprechenden Werten aus: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. Führen Sie den connect-Befehl mit den angegebenen Proxyparametern aus: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>
    

Hinweis

  • Geben Sie excludedCIDR unter --proxy-skip-range an, um sicherzustellen, dass die clusterinterne Kommunikation für die Agents nicht unterbrochen wird.Specify excludedCIDR under --proxy-skip-range to ensure in-cluster communication is not broken for the agents.
  • --proxy-http, --proxy-https und --proxy-skip-range werden für die meisten ausgehenden Proxyumgebungen erwartet.--proxy-http, --proxy-https, and --proxy-skip-range are expected for most outbound proxy environments. --proxy-cert ist nur erforderlich, wenn Sie vertrauenswürdige Zertifikate, die vom Proxy erwartet werden, in den vertrauenswürdigen Zertifikatspeicher der Agent-Pods einfügen müssen.--proxy-cert is only required if you need to inject trusted certificates expected by proxy into the trusted certificate store of agent pods.

Anzeigen von Azure Arc-Agents für KubernetesView Azure Arc agents for Kubernetes

Kubernetes mit Azure Arc-Aktivierung stellt einige Operatoren im Namespace azure-arc bereit.Azure Arc enabled Kubernetes deploys a few operators into the azure-arc namespace.

  1. Zeigen Sie diese Bereitstellungen und Pods wie folgt an:View these deployments and pods using:

    kubectl -n azure-arc get deployments,pods
    
  2. Vergewissern Sie sich, dass alle Pods den Zustand Running aufweisen.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
    

Bereinigen von RessourcenClean up resources

Mit dem folgenden Befehl können Sie die Kubernetes-Ressource mit Azure Arc-Aktivierung, alle zugeordneten Konfigurationsressourcen und alle Agents, die auf dem Cluster ausgeführt werden, mit der Azure CLI löschen: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

Hinweis

Das Löschen der Kubernetes-Ressource mit Azure Arc-Aktivierung mithilfe des Azure-Portals entfernt alle zugehörigen Konfigurationsressourcen, entfernt jedoch keine Agents, die auf dem Cluster ausgeführt werden.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. Die bewährte Methode besteht darin, die Kubernetes-Ressource mit Azure Arc-Aktivierung mithilfe von az connectedk8s delete anstatt über das Azure-Portal zu löschen.Best practice is to delete the Azure Arc enabled Kubernetes resource using az connectedk8s delete instead of Azure portal.

Nächste SchritteNext steps

Fahren Sie mit dem nächsten Artikel fort, um zu erfahren, wie Sie Konfigurationen mithilfe von GitOps für Ihren verbundenen Kubernetes-Cluster bereitstellen.Advance to the next article to learn how to deploy configurations to your connected Kubernetes cluster using GitOps.