Snabbstart: Anslut ett befintligt Kubernetes-kluster att Azure Arc
I den här snabbstarten lär du dig fördelarna med Azure Arc-aktiverad Kubernetes och hur du ansluter ett befintligt Kubernetes-kluster till Azure Arc. En konceptuell titt på hur du ansluter kluster till Azure Arc finns i artikeln Azure Arc kubernetes-agentarkitektur.
Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.
Förutsättningar
Installera eller uppgradera Azure CLI till version >= 2.16.0
Installera connectedk8s Azure CLI-tillägget för version >= 1.2.0:
az extension add --name connectedk8sLogga in på Azure CLI med den identitet (användare eller tjänstens huvudnamn) som du vill använda för att ansluta klustret till Azure Arc.
- Den identitet som används måste minst ha läs- och skrivbehörighet för den Azure Arc Kubernetes-resurstypen (
Microsoft.Kubernetes/connectedClusters). - Den inbyggda Kubernetes-Azure Arc Onboarding-rollen är användbar för storskalig registrering eftersom den har de detaljerade behörigheter som krävs för att endast ansluta kluster till Azure Arc. Den här rollen har inte behörighet att uppdatera, ta bort eller ändra andra kluster eller andra Azure-resurser.
- Den identitet som används måste minst ha läs- och skrivbehörighet för den Azure Arc Kubernetes-resurstypen (
Ett igång kubernetes-kluster. Om du inte har något kan du skapa ett kluster med något av följande alternativ:
Skapa ett Kubernetes-kluster med Docker för Mac eller Windows
Självstyrt Kubernetes-kluster med kluster-API
Om du vill ansluta ett OpenShift-kluster till Azure Arc måste du köra följande kommando en gång i klustret innan du kör
az connectedk8s connect:oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
Anteckning
Klustret måste ha minst en nod av operativsystemet och arkitekturtypen
linux/amd64. Kluster med endastlinux/arm64noder stöds inte ännu.En
kubeconfigfil och kontext som pekar på klustret.
Uppfylla nätverkskrav
Viktigt
Azure Arc-agenter kräver att följande utgående URL:er https://:443 fungerar.
För *.servicebus.windows.net måste websockets aktiveras för utgående åtkomst i brandväggen och proxyn.
| Slutpunkt (DNS) | Beskrivning |
|---|---|
https://management.azure.com (för Azure Cloud) https://management.usgovcloudapi.net (för Azure US Government) |
Krävs för att agenten ska kunna ansluta till Azure och registrera klustret. |
https://<region>.dp.kubernetesconfiguration.azure.com (för Azure Cloud) https://<region>.dp.kubernetesconfiguration.azure.us (för Azure US Government) |
Dataplansslutpunkt för agenten för att skicka status och hämta konfigurationsinformation. |
https://login.microsoftonline.com, login.windows.net (för Azure Cloud) https://login.microsoftonline.us (för Azure US Government) |
Krävs för att hämta och Azure Resource Manager token. |
https://mcr.microsoft.com, https://*.data.mcr.microsoft.com |
Krävs för att hämta containeravbildningar för Azure Arc agenter. |
https://gbl.his.arc.azure.com (för Azure Cloud) https://gbl.his.arc.azure.us (för Azure US Government) |
Krävs för att hämta den regionala slutpunkten för att hämta system tilldelade certifikat för hanterad identitet. |
https://*.his.arc.azure.com (för Azure Cloud) https://usgv.his.arc.azure.us (för Azure US Government) |
Krävs för att hämta system tilldelade certifikat för hanterad identitet. |
*.servicebus.windows.net, guestnotificationservice.azure.com, *.guestnotificationservice.azure.com, sts.windows.net |
För kluster Anslut för scenarier baserade på anpassad plats. |
https://k8connecthelm.azureedge.net |
az connectedk8s connect använder Helm 3 för att Azure Arc-agenter i Kubernetes-klustret. Den här slutpunkten behövs för nedladdning av Helm-klienten för att underlätta distributionen av agentens Helm-diagram. |
1. Registrera leverantörer för Azure Arc-aktiverad Kubernetes
Ange följande kommandon:
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocationÖ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 tableNär de har registrerats bör du
RegistrationStatese att tillståndet för dessa namnområden ändras tillRegistered.
2. Skapa en resursgrupp
Kör följande kommando:
az group create --name AzureArcTest --location EastUS --output table
Utdata:
Location Name ---------- ------------ eastus AzureArcTest
3. Anslut ett befintligt Kubernetes-kluster
Kör följande kommando:
az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest
Anteckning
Om du är inloggad i Azure CLI med hjälp av ett huvudnamn för tjänsten måste ytterligare en parameter anges för att aktivera funktionen för anpassad plats i klustret.
Utdata:
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"
}
Tips
Kommandot ovan utan den angivna platsparametern skapar den Azure Arc Kubernetes-resursen på samma plats som resursgruppen. Om du vill Azure Arc kubernetes-resurs på en annan plats anger du antingen --location <region> eller när du kör -l <region> az connectedk8s connect kommandot.
4a. Anslut använda en utgående proxyserver
Om klustret finns bakom en utgående proxyserver måste Azure CLI och de Azure Arc-aktiverade Kubernetes-agenterna dirigera sina begäranden via den utgående proxyservern.
Ange de miljövariabler som behö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>Kör connect-kommandot med angivna proxyparametrar:
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>Anteckning
- Vissa nätverksbegäranden, till exempel sådana som rör tjänst-till-tjänst-kommunikation i kluster, måste separeras från den trafik som dirigeras via proxyservern för utgående kommunikation. Parametern 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
--proxy-skip-rangevia den utgående proxyn. Som minst ska CIDR-intervallet för tjänsterna i klustret anges som värde för den här parametern. Anta till exempel att returnerarkubectl get svc -Aen lista över tjänster där alla tjänster har ClusterIP-värden i intervallet10.0.0.0/16. Värdet som ska anges för--proxy-skip-rangeär10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svcsedan . --proxy-http,--proxy-httpsoch förväntas för de flesta--proxy-skip-rangeutgående proxymiljöer.--proxy-certkrä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.
- Vissa nätverksbegäranden, till exempel sådana som rör tjänst-till-tjänst-kommunikation i kluster, måste separeras från den trafik som dirigeras via proxyservern för utgående kommunikation. Parametern 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
5. Verifiera klusteranslutningen
Kör följande kommando:
az connectedk8s list --resource-group AzureArcTest --output table
Utdata:
Name Location ResourceGroup ------------- ---------- --------------- AzureArcTest1 eastus AzureArcTest
Anteckning
När klustret har integrering tar det cirka 5 till 10 minuter för klustermetadata (klusterversion, agentversion, antal noder osv.) att visas på översiktssidan för den Azure Arc-aktiverade Kubernetes-resursen i Azure Portal.
6. Visa Azure Arc för Kubernetes
Azure Arc-aktiverade Kubernetes distribuerar några operatorer till azure-arc namnområdet.
Visa dessa distributioner och poddar med hjälp av:
kubectl get deployments,pods -n azure-arcKontrollera att alla poddar är i
Runningett tillstånd.Utdata:
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
En konceptuell översikt över dessa agenter finns här.
7. Rensa resurser
Du kan ta bort Azure Arc Kubernetes-resursen, eventuella associerade konfigurationsresurser och alla agenter som körs i klustret med Hjälp av Azure CLI med hjälp av följande kommando:
az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest
Anteckning
Om du tar Azure Arc Kubernetes-resurs med Azure Portal tar bort alla associerade konfigurationsresurser, men inga agenter som körs i klustret tas bort. Bästa praxis är att ta bort den Azure Arc Kubernetes-resursen med hjälp az connectedk8s delete av i stället för Azure Portal.
Nästa steg
Gå vidare till nästa artikel om du vill lära dig hur du distribuerar konfigurationer till ditt anslutna Kubernetes-kluster med GitOps.