Dela via


Snabbstart: Ansluta ett befintligt Kubernetes-kluster till Azure Arc

Kom igång med Azure Arc-aktiverade Kubernetes med hjälp av Azure CLI eller Azure PowerShell för att ansluta ett befintligt Kubernetes-kluster till Azure Arc.

En konceptuell titt på hur du ansluter kluster till Azure Arc finns i Översikt över Azure Arc-aktiverade Kubernetes-agenter. Om du vill prova saker i en exempel-/övningsupplevelse går du till Azure Arc Jumpstart.

Prerequisites

Important

Utöver dessa krav måste du uppfylla alla nätverkskrav för Azure Arc-aktiverade Kubernetes.

  • Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt.

  • En grundläggande förståelse för Kubernetes grundläggande begrepp.

  • En identitet (användaren eller tjänstens huvudnamn) som kan användas för att logga in på Azure CLI och ansluta klustret till Azure Arc.

  • Den senaste versionen av Azure CLI.

  • Den senaste versionen av Azure CLI-tillägget connectedk8s , installerad genom att köra följande kommando:

    az extension add --name connectedk8s
    
  • Ett fungerande Kubernetes-kluster. Om du inte har något kan du skapa ett kluster med något av följande alternativ:

    • Kubernetes i Docker (KIND)

    • Skapa ett Kubernetes-kluster med Docker för Mac eller Windows

    • Självhanterat Kubernetes-kluster med kluster-API

      Note

      Klustret måste ha minst en nod av operativsystem och arkitekturtyp linux/amd64 och/eller linux/arm64. Mer information om ARM64-scenarier finns i Klusterkrav .

  • Minst 850 MB kostnadsfritt för Arc-agenter som ska distribueras i klustret och kapacitet att använda cirka 7% av en enda processor.

  • En kubeconfig-fil och kontext som pekar på klustret. Mer information finns i Konfigurera åtkomst till flera kluster.

Registrera leverantörer för Azure Arc-aktiverade Kubernetes

  1. Ange följande kommandon:

    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.KubernetesConfiguration
    az provider register --namespace Microsoft.ExtendedLocation
    
  2. Övervaka registreringsprocessen. Registreringen kan ta upp till 10 minuter.

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

    När du har registrerat dig bör statusen RegistrationState för dessa namnområden ändras till Registered.

Skapa en resursgrupp

Kör följande kommando:

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

Output:

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

Ansluta ett befintligt Kubernetes-kluster

Kör följande kommando för att ansluta klustret. Det här kommandot distribuerar Azure Arc-agenterna till klustret och installerar Helm v. 3.6.3 i .azure mappen för distributionsdatorn. Den här Helm 3-installationen används endast för Azure Arc och den tar inte bort eller ändrar tidigare installerade versioner av Helm på datorn.

I det här exemplet är klustrets namn AzureArcTest1.

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

Output:

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

Tip

Kommandot ovan utan den angivna platsparametern skapar Den Azure Arc-aktiverade Kubernetes-resursen på samma plats som resursgruppen. Om du vill skapa den Azure Arc-aktiverade Kubernetes-resursen på en annan plats anger du antingen --location <region> eller -l <region> när du az connectedk8s connect kör kommandot.

Important

Om distributionen misslyckas på grund av ett timeoutfel kan du läsa felsökningsguiden för mer information om hur du löser problemet.

Ansluta med en utgående proxyserver

Om klustret ligger bakom en utgående proxyserver måste begäranden dirigeras via den utgående proxyservern.

  1. På distributionsdatorn anger du de miljövariabler som krävs för att Azure CLI ska kunna använda den utgående proxyservern:

    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. Kör kommandot connect på Kubernetes-klustret med parametrarna proxy-https och proxy-http som specificerats. Om proxyservern har konfigurerats med både HTTP och HTTPS ska du använda --proxy-http för HTTP-proxyn och --proxy-https för HTTPS-proxyn. Om proxyservern bara använder HTTP kan du använda det värdet för båda parametrarna.

    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>
    

Note

  • Vissa nätverksbegäranden, till exempel de som rör kommunikation mellan tjänster i klustret, måste separeras från trafiken som dirigeras via proxyservern för utgående kommunikation. Parametern --proxy-skip-range kan användas för att ange CIDR-intervallet och slutpunkterna på ett kommaavgränsat sätt så att all kommunikation från agenterna till dessa slutpunkter inte går via den utgående proxyn. CIDR-intervallet för tjänsterna i klustret ska åtminstone anges som värde för den här parametern. Anta till exempel att kubectl get svc -A returnerar en lista över tjänster där alla tjänster har ClusterIP-värden i intervallet 10.0.0.0/16. Då är värdet att ange för --proxy-skip-range10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc.
  • --proxy-http, --proxy-httpsoch --proxy-skip-range förväntas för de flesta utgående proxymiljöer. --proxy-cert krävs endast om du behöver mata in betrodda certifikat som förväntas av proxyn i det betrodda certifikatarkivet för agentpoddar.
  • Den utgående proxyn måste konfigureras för att tillåta websocket-anslutningar.

Om du bara tillhandahåller ett betrott certifikat för utgående proxyservrar kan du köra az connectedk8s connect med bara den angivna parametern --proxy-cert :

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

Om det finns flera betrodda certifikat måste certifikatkedjan (Lövcertifikat, mellanliggande certifikat, rotcertifikat) kombineras till en enda fil som skickas i parametern --proxy-cert .

Note

  • --custom-ca-cert är ett alias för --proxy-cert. Båda parametrarna kan användas omväxlande. Om båda parametrarna skickas i samma kommando respekteras den som skickades sist.

Verifiera klusteranslutning

Kör följande kommando:

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

Output:

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

Hjälp med att felsöka anslutningsproblem finns i Diagnostisera anslutningsproblem för Azure Arc-aktiverade Kubernetes-kluster.

Note

När klustret har registrerats tar det upp till tio minuter innan klustermetadata (till exempel klusterversion och antal noder) visas på översiktssidan för den Azure Arc-aktiverade Kubernetes-resursen i Azure-portalen.

Visa Azure Arc-agenter för Kubernetes

Azure Arc-aktiverade Kubernetes distribuerar flera agenter i namnområdet azure-arc.

  1. Visa dessa distributioner och poddar med hjälp av:

    kubectl get deployments,pods -n azure-arc
    
  2. Kontrollera att alla poddar är i ett Running tillstånd.

    Output:

     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
    

Mer information om dessa agenter finns i Översikt över Azure Arc-aktiverade Kubernetes-agenter.

Rensa resurser

Du kan ta bort Den Azure Arc-aktiverade Kubernetes-resursen, eventuella associerade konfigurationsresurser och alla agenter som körs i klustret med hjälp av följande kommando:

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

Om borttagningsprocessen misslyckas använder du följande kommando för att framtvinga borttagning (lägga -y till om du vill kringgå bekräftelseprompten):

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

Det här kommandot kan också användas om du får problem när du skapar en ny klusterdistribution (på grund av att tidigare skapade resurser inte tas bort helt).

Note

Om du tar bort den Azure Arc-aktiverade Kubernetes-resursen med azure-portalen tas alla associerade konfigurationsresurser bort, men inga agenter som körs i klustret tas bort. Därför rekommenderar vi att du tar bort den Azure Arc-aktiverade Kubernetes-resursen med az connectedk8s delete istället för att ta bort resursen i Azure-portalen.

Nästa steg