Delen via


Quickstart: Een bestaand Kubernetes-cluster verbinden met Azure Arc

Ga aan de slag met Kubernetes met Azure Arc met behulp van Azure CLI of Azure PowerShell om een bestaand Kubernetes-cluster te verbinden met Azure Arc.

Voor een conceptueel overzicht van het verbinden van clusters met Azure Arc, zie het Azure Arc-enabled Kubernetes-agent overzicht. Als u dingen wilt uitproberen in een voorbeeld-/oefenervaring, gaat u naar de Azure Arc-jumpstart.

Vereiste voorwaarden

Belangrijk

Naast deze vereisten moet u voldoen aan alle netwerkvereisten voor Kubernetes met Azure Arc.

Providers registreren voor Kubernetes met Azure Arc

  1. Voer de volgende commando's in:

    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.KubernetesConfiguration
    az provider register --namespace Microsoft.ExtendedLocation
    
  2. Bewaak het registratieproces. De registratie kan tot maximaal 10 minuten duren.

    az provider show -n Microsoft.Kubernetes -o table
    az provider show -n Microsoft.KubernetesConfiguration -o table
    az provider show -n Microsoft.ExtendedLocation -o table
    

    Zodra de naamruimte is geregistreerd, wordt de RegistrationState status van deze naamruimten gewijzigd in Registered.

Een brongroep maken

Voer de volgende opdracht uit:

az group create --name AzureArcTest --location EastUS --output table

Uitvoer:

Location    Name
----------  ------------
eastus      AzureArcTest

Een bestaand Kubernetes-cluster verbinden

Voer de volgende opdracht uit om verbinding te maken met uw cluster. Met deze opdracht worden de Azure Arc-agents geïmplementeerd in het cluster en wordt Helm v. 3.6.3 geïnstalleerd in de .azure map van de implementatiemachine. Deze Helm 3-installatie wordt alleen gebruikt voor Azure Arc en verwijdert of wijzigt geen eerder geïnstalleerde versies van Helm op de computer.

In dit voorbeeld is de naam van het cluster AzureArcTest1.

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

Uitvoer:

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"
    }

Aanbeveling

Met de bovenstaande opdracht zonder de opgegeven locatieparameter wordt de Kubernetes-resource met Azure Arc op dezelfde locatie als de resourcegroep gemaakt. Als u de Kubernetes-resource met Azure Arc op een andere locatie wilt maken, geeft u of --location <region> of -l <region> op wanneer u de az connectedk8s connect opdracht uitvoert.

Belangrijk

Als de implementatie mislukt vanwege een time-outfout, raadpleegt u onze gids voor probleemoplossing voor meer informatie over het oplossen van dit probleem.

Verbinding maken met behulp van een uitgaande proxyserver

Als uw cluster zich achter een uitgaande proxyserver bevindt, moeten aanvragen worden gerouteerd via de uitgaande proxyserver.

  1. Stel op de implementatiecomputer de omgevingsvariabelen in die nodig zijn voor Azure CLI om de uitgaande proxyserver te gebruiken:

    export HTTP_PROXY=<proxy-server-ip-address>:<port>
    export HTTPS_PROXY=<proxy-server-ip-address>:<port>
    export NO_PROXY=<cluster-apiserver-ip-address>:<port>
    
  2. Voer op het Kubernetes-cluster de opdracht connect uit met de parameters proxy-https en proxy-http. Als uw proxyserver is ingesteld met zowel HTTP als HTTPS, moet u deze gebruiken --proxy-http voor de HTTP-proxy en --proxy-https voor de HTTPS-proxy. Als uw proxyserver alleen HTTP gebruikt, kunt u die waarde voor beide parameters gebruiken.

    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>
    

Opmerking

  • Sommige netwerkaanvragen, zoals de aanvragen met betrekking tot service-naar-service-communicatie in het cluster, moeten worden gescheiden van het verkeer dat wordt gerouteerd via de proxyserver voor uitgaande communicatie. De --proxy-skip-range parameter kan worden gebruikt om het CIDR-bereik en de eindpunten op een door komma's gescheiden manier op te geven, zodat communicatie van de agents naar deze eindpunten niet via de uitgaande proxy verloopt. Minimaal moet het CIDR-bereik van de services in het cluster worden opgegeven als waarde voor deze parameter. Stel, kubectl get svc -A retourneert een lijst met services waarin alle services ClusterIP-waarden hebben in het bereik 10.0.0.0/16. De waarde die moet worden opgegeven voor --proxy-skip-range is 10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc.
  • --proxy-http, --proxy-httpsen --proxy-skip-range worden verwacht voor de meeste uitgaande proxyomgevingen. --proxy-cert is alleen vereist als u vertrouwde certificaten moet injecteren die door de proxy worden verwacht in het vertrouwde certificaatarchief van agentpods.
  • De uitgaande proxy moet worden geconfigureerd om websocket-verbindingen toe te staan.

Voor uitgaande proxyservers, als u alleen een vertrouwd certificaat opgeeft, kunt u az connectedk8s connect uitvoeren met alleen de --proxy-cert parameter opgegeven.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>

Als er meerdere vertrouwde certificaten zijn, moet de certificaatketen (Leaf-certificaat, tussencertificaat, basiscertificaat) worden gecombineerd tot één bestand dat wordt doorgegeven in de --proxy-cert parameter.

Opmerking

  • --custom-ca-cert is een alias voor --proxy-cert. Beide parameters kunnen door elkaar worden gebruikt. Als beide parameters in dezelfde opdracht worden ingevoerd, krijgt de laatste parameter voorrang.

Clusterverbinding controleren

Voer de volgende opdracht uit:

az connectedk8s list --resource-group AzureArcTest --output table

Uitvoer:

Name           Location    ResourceGroup
-------------  ----------  ---------------
AzureArcTest1  eastus      AzureArcTest

Zie Verbindingsproblemen vaststellen voor Kubernetes-clusters met Azure Arc voor hulp bij het oplossen van verbindingsproblemen.

Opmerking

Na de onboarding van het cluster duurt het maximaal tien minuten voordat de clustermetagegevens (zoals de clusterversie en het aantal knooppunten) worden weergegeven op de overzichtspagina van de Kubernetes-resource met Azure Arc in Azure Portal.

Azure Arc-agents voor Kubernetes weergeven

Kubernetes met Azure Arc implementeert verschillende agents in de azure-arc naamruimte.

  1. Bekijk deze implementaties en pods met behulp van:

    kubectl get deployments,pods -n azure-arc
    
  2. Controleer of alle pods zich in een Running status bevinden.

    Uitvoer:

     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
    

Zie het overzicht van de Kubernetes-agent met Azure Arc voor meer informatie over deze agents.

De hulpbronnen opschonen

U kunt de Kubernetes-resource met Azure Arc, alle gekoppelde configuratieresources en agents die op het cluster worden uitgevoerd, verwijderen met behulp van de volgende opdracht:

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

Als het verwijderingsproces mislukt, gebruikt u de volgende opdracht om verwijdering af te dwingen (toevoegen -y als u de bevestigingsprompt wilt omzeilen):

az connectedk8s delete -n AzureArcTest1 -g AzureArcTest --force

Deze opdracht kan ook worden gebruikt als u problemen ondervindt bij het maken van een nieuwe clusterimplementatie (omdat eerder gemaakte resources niet volledig worden verwijderd).

Opmerking

Als u de Kubernetes-resource met Azure Arc verwijdert met behulp van Azure Portal, worden alle gekoppelde configuratieresources verwijderd, maar worden geen agents verwijderd die op het cluster worden uitgevoerd. Daarom raden we u aan om de Kubernetes-resource met Azure Arc te verwijderen in az connectedk8s delete plaats van de resource te verwijderen in Azure Portal.

Volgende stappen