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.
Förutsättningar
Viktigt!
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 utan kostnad.
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 up-and-running 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älvhanterat Kubernetes-kluster med kluster-API
Kommentar
Klustret måste ha minst en nod av operativsystem och arkitekturtyp
linux/amd64
och/ellerlinux/arm64
. Mer information om ARM64-scenarier finns i Klusterkrav .
Minst 850 MB kostnadsfritt för Arc-agenter som ska distribueras i klustret och kapacitet för att använda cirka 7 % av en enda processor.
En kubeconfig-fil och kontext som pekar på klustret. Mer information om vad en kubeconfig-fil är och hur du ställer in kontexten så att den pekar på klustret finns i den här artikeln.
Registrera leverantörer för Azure Arc-aktiverade 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 table
När du har registrerat dig bör statusen
RegistrationState
för dessa namnområden ändras tillRegistered
.
Skapa en resursgrupp
Kör följande kommando:
az group create --name AzureArcTest --location EastUS --output table
Utdata:
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
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"
}
Dricks
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.
Ansluta med en utgående proxyserver
Om klustret ligger bakom en utgående proxyserver måste begäranden dirigeras via den utgående proxyservern.
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>
I Kubernetes-klustret kör du kommandot connect med de
proxy-https
parametrar ochproxy-http
som angetts. 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>
Kommentar
- Vissa nätverksbegäranden, till exempel de som involverar tjänst-till-tjänst-kommunikation i klustret, måste separeras från den trafik 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 attkubectl get svc -A
returnerar en lista över tjänster där alla tjänster har ClusterIP-värden i intervallet10.0.0.0/16
. Sedan är10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc
värdet som ska anges för--proxy-skip-range
. --proxy-http
,--proxy-https
och--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.
För utgående proxyservrar där endast ett betrott certifikat behöver tillhandahållas utan proxyserverns slutpunktsindata, az connectedk8s connect
kan köras med bara de --proxy-cert
angivna indata. Om flera betrodda certifikat förväntas kan den kombinerade certifikatkedjan anges i en enda fil med hjälp av parametern --proxy-cert
.
Kommentar
--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.
Kör kommandot connect med den angivna parametern --proxy-cert
:
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>
Verifiera klusteranslutning
Kör följande kommando:
az connectedk8s list --resource-group AzureArcTest --output table
Utdata:
Name Location ResourceGroup
------------- ---------- ---------------
AzureArcTest1 eastus AzureArcTest
Kommentar
När klustret har registrerats tar det cirka 5 till 10 minuter innan klustermetadata (klusterversion, agentversion, antal noder och så vidare) visas på översiktssidan för den Azure Arc-aktiverade Kubernetes-resursen i Azure-portalen.
Dricks
Hjälp med att felsöka problem när du ansluter klustret finns i Diagnostisera anslutningsproblem för Azure Arc-aktiverade Kubernetes-kluster.
Visa Azure Arc-agenter för Kubernetes
Azure Arc-aktiverade Kubernetes distribuerar flera agenter till azure-arc
namnområdet.
Visa dessa distributioner och poddar med hjälp av:
kubectl get deployments,pods -n azure-arc
Kontrollera att alla poddar är i ett
Running
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
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 Azure CLI 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).
Kommentar
Om du tar bort den Azure Arc-aktiverade Kubernetes-resursen med hjälp av Azure Portal tas alla associerade konfigurationsresurser bort, men inga agenter som körs i klustret tas bort. Bästa praxis är att ta bort den Azure Arc-aktiverade Kubernetes-resursen med i az connectedk8s delete
stället för att ta bort resursen i Azure Portal.
Nästa steg
- Lär dig hur du distribuerar konfigurationer med GitOps med Flux v2.
- Felsöka vanliga Azure Arc-aktiverade Kubernetes-problem.
- Upplev automatiserade Azure Arc-aktiverade Kubernetes-scenarier med Azure Arc Jumpstart.