Quickstart: Verbinding maken kubernetes-cluster maken om een Azure Arc
In deze quickstart leert u de voordelen van kubernetes met Azure Arc-functie en leert u hoe u een bestaand Kubernetes-cluster verbindt met Azure Arc. Zie het artikel kubernetes-agentarchitectuurmet Azure Arc voor een conceptueel artikel over het Azure Arc van clusters met meerdere clusters.
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Vereisten
Azure CLI installeren of upgraden naar versie >= 2.16.0
Installeer de Azure CLI-extensie connectedk8s van versie >= 1.2.0:
az extension add --name connectedk8sMeld u aan bij Azure CLI met behulp van de identiteit (gebruiker of service-principal) die u wilt gebruiken om uw cluster te verbinden met Azure Arc.
- De identiteit die wordt gebruikt, moet ten minste de machtigingen Lezen en Schrijven hebben voor het kubernetes-resourcetype Azure Arc kubernetes
Microsoft.Kubernetes/connectedClusters(). - De ingebouwde rol Kubernetes Cluster - Azure Arc Onboarding is handig voor onboarding op schaal, omdat het de gedetailleerde machtigingen heeft die nodig zijn om clusters alleen te verbinden met Azure Arc. Deze rol heeft niet de machtigingen om andere clusters of andere Azure-resources bij te werken, te verwijderen of te wijzigen.
- De identiteit die wordt gebruikt, moet ten minste de machtigingen Lezen en Schrijven hebben voor het kubernetes-resourcetype Azure Arc kubernetes
Een actief Kubernetes-cluster. Als u nog geen cluster hebt, kunt u een cluster maken met behulp van een van de volgende opties:
Zelf-beheerd Kubernetes-cluster met cluster-API
Als u een OpenShift-cluster wilt verbinden met Azure Arc, moet u de volgende opdracht slechts eenmaal in uw cluster uitvoeren voordat u
az connectedk8s connectuitvoert:oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
Notitie
Het cluster moet ten minste één knooppunt van het besturingssysteem en architectuurtype
linux/amd64hebben. Clusters met alleenlinux/arm64knooppunten worden nog niet ondersteund.Een
kubeconfigbestand en context die naar uw cluster wijzen.
Voldoen aan netwerkvereisten
Belangrijk
Azure Arc agents moeten de volgende uitgaande URL's op https://:443 werken.
Voor moet websockets zijn ingeschakeld voor uitgaande toegang op *.servicebus.windows.net de firewall en proxy.
| Eindpunt (DNS) | Beschrijving |
|---|---|
https://management.azure.com (voor Azure Cloud), https://management.usgovcloudapi.net (voor Azure US Government) |
Vereist om de agent verbinding te laten maken met Azure en het cluster te registreren. |
https://<region>.dp.kubernetesconfiguration.azure.com (voor Azure Cloud), https://<region>.dp.kubernetesconfiguration.azure.us (voor Azure US Government) |
Het eindpunt van de gegevensvlak voor de agent om de status te pushen en configuratiegegevens op te halen. |
https://login.microsoftonline.com, login.windows.net (voor Azure Cloud), https://login.microsoftonline.us (voor Azure US Government) |
Vereist voor het ophalen en bijwerken Azure Resource Manager tokens. |
https://mcr.microsoft.com, https://*.data.mcr.microsoft.com |
Vereist voor het pullen van containerafbeeldingen Azure Arc agents. |
https://gbl.his.arc.azure.com (voor Azure Cloud), https://gbl.his.arc.azure.us (voor Azure US Government) |
Vereist om het regionale eindpunt op te halen voor het binnenhalen van door het systeem toegewezen beheerde identiteitscertificaten. |
https://*.his.arc.azure.com (voor Azure Cloud), https://usgv.his.arc.azure.us (voor Azure US Government) |
Vereist voor het pullen van door het systeem toegewezen beheerde identiteitscertificaten. |
*.servicebus.windows.net, guestnotificationservice.azure.com, *.guestnotificationservice.azure.com, sts.windows.net |
Voor Cluster Verbinding maken voor scenario's op basis van aangepaste locatie. |
https://k8connecthelm.azureedge.net |
az connectedk8s connect gebruikt Helm 3 voor het implementeren Azure Arc agents op het Kubernetes-cluster. Dit eindpunt is nodig voor het downloaden van de Helm-client om de implementatie van de Helm-grafiek van de agent mogelijk te maken. |
1. Providers registreren Azure Arc Kubernetes met ingeschakelde service
Voer de volgende opdrachten in:
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocationControleer het registratieproces. De registratie kan 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 tableNa de registratie ziet u dat de
RegistrationStatestatus van deze naamruimten wordt gewijzigd inRegistered.
2. Een resourcegroep maken
Voer de volgende opdracht uit:
az group create --name AzureArcTest --location EastUS --output table
Uitvoer:
Location Name ---------- ------------ eastus AzureArcTest
3. Verbinding maken kubernetes-cluster maken
Voer de volgende opdracht uit:
az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest
Notitie
Als u bent aangemeld bij Azure CLI met behulp van een service-principal, moet er een extra parameter worden ingesteld voor het inschakelen van de functie voor aangepaste locatie in het cluster.
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 Azure Arc Kubernetes-resource gemaakt op dezelfde locatie als de resourcegroep. Als u de Azure Arc Kubernetes-resource op een andere locatie wilt maken, geeft u of op --location <region> bij het uitvoeren van de -l <region> az connectedk8s connect opdracht.
4a. Verbinding maken een uitgaande proxyserver gebruiken
Als uw cluster zich achter een uitgaande proxyserver, moeten Azure CLI en de kubernetes-agents met Azure Arc-ondersteuning hun aanvragen doorverzenden via de uitgaande proxyserver.
Stel de omgevingsvariabelen in die azure CLI nodig heeft 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 de verbindingsopdracht uit met de opgegeven proxyparameters:
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 aanvragen met in-cluster service-naar-service-communicatie, moeten worden gescheiden van het verkeer dat via de proxyserver wordt doorgeleid voor uitgaande communicatie. De 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-skip-rangeproxy gaat. Het CIDR-bereik van de services in het cluster moet minimaal worden opgegeven als waarde voor deze parameter. Stel bijvoorbeeld dat een lijst met services retourneert waarin allekubectl get svc -Aservices ClusterIP-waarden in het bereik10.0.0.0/16hebben. Vervolgens is de waarde die moet worden--proxy-skip-rangeopgegeven voor10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc. --proxy-http,--proxy-httpsen worden verwacht voor de meeste uitgaande--proxy-skip-rangeproxyomgevingen.--proxy-certis alleen vereist als u vertrouwde certificaten die worden verwacht door de proxy, moet injecteren in het vertrouwde certificaatopslag van agentpods.- De uitgaande proxy moet worden geconfigureerd om websocket-verbindingen toe te staan.
- Sommige netwerkaanvragen, zoals aanvragen met in-cluster service-naar-service-communicatie, moeten worden gescheiden van het verkeer dat via de proxyserver wordt doorgeleid voor uitgaande communicatie. De 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
5. Clusterverbinding controleren
Voer de volgende opdracht uit:
az connectedk8s list --resource-group AzureArcTest --output table
Uitvoer:
Name Location ResourceGroup ------------- ---------- --------------- AzureArcTest1 eastus AzureArcTest
Notitie
Na het onboarden van het cluster duurt het ongeveer 5 tot 10 minuten voordat de metagegevens van het cluster (clusterversie, agentversie, aantal knooppunten, enzovoort) worden weergegeven op de overzichtspagina van de Kubernetes-resource met Azure Arc-functie in Azure Portal.
6. De Azure Arc voor Kubernetes weergeven
Azure Arc kubernetes met ingeschakelde functie implementeert een aantal operators in de azure-arc naamruimte.
Bekijk deze implementaties en pods met behulp van:
kubectl get deployments,pods -n azure-arcControleer of alle pods een status
Runninghebben.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
Een conceptueel overzicht van deze agents is hier beschikbaar.
7. Resources ops schonen
U kunt de Azure Arc Kubernetes-resource, alle bijbehorende configuratieresources en eventuele 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
Notitie
Als u de Kubernetes-resource Azure Arc ingeschakeld verwijdert met behulp van Azure Portal, worden alle bijbehorende configuratieresources verwijderd, maar worden er geen agents verwijderd die op het cluster worden uitgevoerd. De best practice is om de kubernetes-resource Azure Arc te verwijderen met in plaats az connectedk8s delete van Azure Portal.
Volgende stappen
Ga naar het volgende artikel voor meer informatie over het implementeren van configuraties in uw verbonden Kubernetes-cluster met behulp van GitOps.