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.
Zie het overzicht van kubernetes-agent met Azure Arc voor een conceptueel overzicht van het verbinden van clusters met Azure Arc. Als u dingen wilt uitproberen in een voorbeeld-/oefenervaring, gaat u naar de Azure Arc-jumpstart.
Vereisten
Belangrijk
Naast deze vereisten moet u voldoen aan alle netwerkvereisten voor Kubernetes met Azure Arc.
Een Azure-account met een actief abonnement. Gratis een account maken
Basiskennis van Kubernetes-kernconcepten.
Een identiteit (gebruiker of service-principal) die kan worden gebruikt om u aan te melden bij Azure CLI en uw cluster te verbinden met Azure Arc.
De nieuwste versie van Azure CLI.
De nieuwste versie van de Azure CLI-extensie connectedk8s , geïnstalleerd door de volgende opdracht uit te voeren:
az extension add --name connectedk8s
Een up-and-running Kubernetes-cluster. Als u nog geen cluster hebt, kunt u een cluster maken met een van de volgende opties:
Zelfbeheerde Kubernetes-cluster met behulp van cluster-API
Ten minste 850 MB gratis voor de Arc-agents die op het cluster worden geïmplementeerd en capaciteit om ongeveer 7% van één CPU te gebruiken.
Een kubeconfig-bestand en -context die naar uw cluster wijst. Raadpleeg dit artikel voor meer informatie over wat een kubeconfig-bestand is en hoe u context instelt om naar uw cluster te verwijzen.
Providers registreren voor Kubernetes met Azure Arc
Voer de volgende opdrachten in:
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocation
Controleer het registratieproces. Registratie kan tot 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 inRegistered
.
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"
}
Tip
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 --location <region>
een van beide op of -l <region>
bij het uitvoeren van de az connectedk8s connect
opdracht.
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.
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>
Voer in het Kubernetes-cluster de opdracht Verbinding maken uit met de
proxy-https
opgegeven parameters.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>
Notitie
- Sommige netwerkaanvragen, zoals de aanvragen die betrekking hebben op service-naar-servicecommunicatie in het cluster, moeten worden gescheiden van het verkeer dat via de proxyserver wordt gerouteerd 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. Stelkubectl get svc -A
dat er een lijst met services wordt geretourneerd waarin alle services ClusterIP-waarden in het bereik10.0.0.0/16
hebben. Vervolgens is10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc
de waarde die moet worden opgegeven--proxy-skip-range
. --proxy-http
,--proxy-https
en--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 waarbij alleen een vertrouwd certificaat moet worden opgegeven zonder de invoer van het eindpunt van de proxyserver, az connectedk8s connect
kan worden uitgevoerd met alleen de --proxy-cert
opgegeven invoer. Als er meerdere vertrouwde certificaten worden verwacht, kan de gecombineerde certificaatketen worden opgegeven in één bestand met behulp van de --proxy-cert
parameter.
Notitie
--custom-ca-cert
is een alias voor--proxy-cert
. Beide parameters kunnen door elkaar worden gebruikt. Als u beide parameters in dezelfde opdracht doorgeeft, wordt de laatste doorgegeven.
Voer de opdracht Verbinding maken uit met de --proxy-cert
opgegeven parameter:
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>
Clusterverbinding controleren
Voer de volgende opdracht uit:
az connectedk8s list --resource-group AzureArcTest --output table
Uitvoer:
Name Location ResourceGroup
------------- ---------- ---------------
AzureArcTest1 eastus AzureArcTest
Notitie
Na onboarding van het cluster duurt het ongeveer 5 tot 10 minuten voordat de clustermetagegevens (clusterversie, agentversie, aantal knooppunten, enzovoort) worden weergegeven op de overzichtspagina van de Kubernetes-resource met Azure Arc in Azure Portal.
Tip
Zie Verbindingsproblemen vaststellen voor Kubernetes-clusters met Azure Arc voor hulp bij het oplossen van problemen bij het verbinden van uw cluster.
Azure Arc-agents voor Kubernetes weergeven
Kubernetes met Azure Arc implementeert verschillende agents in de azure-arc
naamruimte.
Bekijk deze implementaties en pods met behulp van:
kubectl get deployments,pods -n azure-arc
Controleer of alle pods een
Running
status hebben.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.
Resources opschonen
U kunt de Kubernetes-resource met Azure Arc, alle bijbehorende configuratieresources en agents die op het cluster worden uitgevoerd, verwijderen met behulp van Azure CLI 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).
Notitie
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. Best practice is om de Kubernetes-resource met Azure Arc te verwijderen in az connectedk8s delete
plaats van de resource te verwijderen in Azure Portal.
Volgende stappen
- Meer informatie over het implementeren van configuraties met behulp van GitOps met Flux v2.
- Veelvoorkomende Kubernetes-problemen met Azure Arc oplossen.
- Ervaar geautomatiseerde Kubernetes-scenario's met Azure Arc met Behulp van Azure Arc Jumpstart.