Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Voor een conceptueel overzicht van het verbinden van clusters met Azure Arc, zie het Azure Arc-enabled Kubernetes-agent overzicht. Als u dingen wilt uitproberen in een voorbeeld-/oefenervaring, gaat u naar de Azure Arc-jumpstart.
Vereiste voorwaarden
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 operationeel 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
Opmerking
Het cluster moet ten minste één knooppunt van het besturingssysteem en het architectuurtype
linux/amd64
en/oflinux/arm64
hebben. Zie Clustervereisten voor meer informatie over ARM64-scenario's.
Ten minste 850 MB beschikbaar voor de Arc-agents die in het cluster worden ingezet en capaciteit om ongeveer 7% van een enkele processor te gebruiken.
Een kubeconfig-bestand en -context die naar uw cluster wijst. Zie Toegang tot meerdere clusters configureren voor meer informatie.
Providers registreren voor Kubernetes met Azure Arc
Voer de volgende commando's in:
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocation
Bewaak het registratieproces. De registratie kan tot 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 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"
}
Aanbeveling
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 of --location <region>
of -l <region>
op wanneer u de az connectedk8s connect
opdracht uitvoert.
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 op het Kubernetes-cluster de opdracht connect uit met de parameters
proxy-https
enproxy-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>
Opmerking
- Sommige netwerkaanvragen, zoals de aanvragen met betrekking tot service-naar-service-communicatie in het cluster, moeten worden gescheiden van het verkeer dat wordt gerouteerd via de proxyserver 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. Stel,kubectl get svc -A
retourneert een lijst met services waarin alle services ClusterIP-waarden hebben in het bereik10.0.0.0/16
. De waarde die moet worden opgegeven voor--proxy-skip-range
is10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc
. -
--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, als u alleen een vertrouwd certificaat opgeeft, kunt u az connectedk8s connect
uitvoeren met alleen de --proxy-cert
parameter opgegeven.
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>
Als er meerdere vertrouwde certificaten zijn, moet de certificaatketen (Leaf-certificaat, tussencertificaat, basiscertificaat) worden gecombineerd tot één bestand dat wordt doorgegeven in de --proxy-cert
parameter.
Opmerking
-
--custom-ca-cert
is een alias voor--proxy-cert
. Beide parameters kunnen door elkaar worden gebruikt. Als beide parameters in dezelfde opdracht worden ingevoerd, krijgt de laatste parameter voorrang.
Clusterverbinding controleren
Voer de volgende opdracht uit:
az connectedk8s list --resource-group AzureArcTest --output table
Uitvoer:
Name Location ResourceGroup
------------- ---------- ---------------
AzureArcTest1 eastus AzureArcTest
Zie Verbindingsproblemen vaststellen voor Kubernetes-clusters met Azure Arc voor hulp bij het oplossen van verbindingsproblemen.
Opmerking
Na de onboarding van het cluster duurt het maximaal tien minuten voordat de clustermetagegevens (zoals de clusterversie en het aantal knooppunten) worden weergegeven op de overzichtspagina van de Kubernetes-resource met Azure Arc in Azure Portal.
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 zich in een
Running
status bevinden.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.
De hulpbronnen opschonen
U kunt de Kubernetes-resource met Azure Arc, alle gekoppelde configuratieresources en agents die op het cluster worden uitgevoerd, verwijderen 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).
Opmerking
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. Daarom raden we u aan 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 Azure Arc-enabled Kubernetes-scenario's met behulp van Azure Arc Jumpstart.
- Hulp bij het beveiligen van uw cluster door de richtlijnen in het beveiligingsboek voor Kubernetes met Azure Arc te volgen.