Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Anleitung erfahren Sie, wie Sie für einen vorhandenen Kubernetes-Cluster mithilfe der Azure CLI oder von Azure PowerShell eine Verbindung mit Azure Arc herstellen.
Einen allgemeinen Überblick über das Herstellen einer Verbindung zwischen einem Cluster und Azure Arc finden Sie unter Übersicht über Kubernetes-Agents mit Azure Arc-Unterstützung. Informationen zum Ausprobieren von Aufgaben in einer Beispiel-/Übungsumgebung finden Sie unter Azure Arc-Schnellstart.
Voraussetzungen
Wichtig
Stellen Sie zusätzlich zu diesen Voraussetzungen sicher, dass alle Netzwerkanforderungen für Kubernetes mit Azure Arc-Unterstützung erfüllt werden.
Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
Grundkenntnisse im Umgang mit grundlegenden Kubernetes-Konzepten.
Eine Identität (Benutzer oder Dienstprinzipal), die verwendet werden kann, um sich bei der Azure CLI anzumelden und Ihren Cluster mit Azure Arc zu verbinden.
Die neueste Version der Azure CLI.
Die neueste Version der Azure CLI-Erweiterung connectedk8s, die durch Ausführen des folgenden Befehls installiert wird:
az extension add --name connectedk8s
Ein funktionierender Kubernetes-Cluster. Wenn Sie über keinen verfügen, haben Sie die folgenden drei Möglichkeiten, um einen Cluster zu erstellen:
Erstellen eines Kubernetes-Clusters mithilfe von Docker für Mac oder Windows
Selbst verwalteter Kubernetes-Cluster mithilfe der Cluster-API
Hinweis
Der Cluster muss mindestens einen Knoten des Betriebssystems und den Architekturtyp
linux/amd64
und/oderlinux/arm64
aufweisen. Weitere Informationen zu ARM64-Szenarien finden Sie unter Clusteranforderungen.
Mindestens 850 MB freier Speicherplatz für die Arc-Agents, die auf dem Cluster bereitgestellt werden, und eine Kapazität, die etwa 7 % einer einzelnen CPU verwendet.
Eine kubeconfig-Datei und ein Kontext, der auf Ihren Cluster verweist. Weitere Informationen finden Sie unter Konfigurieren des Zugriffs auf mehrere Cluster.
Registrieren von Anbietern für Kubernetes mit Azure Arc-Unterstützung
Geben Sie die folgenden Befehle ein:
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocation
Überwachen Sie den Registrierungsprozess. Die Registrierung kann bis zu 10 Minuten dauern.
az provider show -n Microsoft.Kubernetes -o table az provider show -n Microsoft.KubernetesConfiguration -o table az provider show -n Microsoft.ExtendedLocation -o table
Nach der Registrierung sollte der
RegistrationState
-Status für diese Namespaces inRegistered
geändert werden.
Erstellen einer Ressourcengruppe
Führen Sie den folgenden Befehl aus:
az group create --name AzureArcTest --location EastUS --output table
Ausgabe:
Location Name
---------- ------------
eastus AzureArcTest
Herstellen der Verbindung mit einem vorhandenen Kubernetes-Cluster
Führen Sie den folgenden Befehl aus, um die Verbindung mit Ihrem Cluster herzustellen. Dieser Befehl stellt die Azure Arc-Agents im Cluster bereit und installiert Helm V3.6.3 im Ordner .azure
des Bereitstellungscomputers. Diese Helm 3-Installation wird nur für Azure Arc verwendet und entfernt oder ändert keine zuvor installierten Versionen von Helm auf dem Computer.
In diesem Beispiel lautet der Name des Clusters AzureArcTest1.
az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest
Ausgabe:
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"
}
Tipp
Mit dem obigen Befehl ohne den Parameter für den Standort (location) wird die Kubernetes-Ressource mit Azure Arc-Unterstützung am selben Standort wie die Ressourcengruppe erstellt. Wenn Sie die Kubernetes-Ressource mit Azure Arc-Unterstützung an einem anderen Standort erstellen möchten, geben Sie bei Ausführung des Befehls az connectedk8s connect
entweder --location <region>
oder -l <region>
an.
Wichtig
Wenn die Bereitstellung aufgrund einer Zeitüberschreitung fehlschlägt, finden Sie weitere Informationen zum Beheben dieses Problems in unserem Leitfaden zur Problembehandlung.
Herstellen einer Verbindung mit einem ausgehenden Proxyserver
Befindet sich Ihr Cluster hinter einem ausgehenden Proxyserver, müssen Anforderungen über diesen weitergeleitet werden.
Legen Sie auf dem Bereitstellungscomputer die für die Azure CLI erforderlichen Umgebungsvariablen fest, um den ausgehenden Proxyserver zu verwenden:
export HTTP_PROXY=<proxy-server-ip-address>:<port> export HTTPS_PROXY=<proxy-server-ip-address>:<port> export NO_PROXY=<cluster-apiserver-ip-address>:<port>
Führen Sie auf dem Kubernetes-Cluster den Befehl „connect“ aus, und geben Sie dabei die Parameter
proxy-https
undproxy-http
an. Wenn Ihr Proxyserver sowohl mit HTTP als auch mit HTTPS eingerichtet ist, müssen Sie--proxy-http
für den HTTP-Proxy und--proxy-https
für den HTTPS-Proxy verwenden. Wenn Ihr Proxyserver nur HTTP verwendet, können Sie diesen Wert für beide Parameter verwenden.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>
Hinweis
- Einige Netzwerkanforderungen, z. B. diejenigen, die die Kommunikation zwischen Diensten im Cluster betreffen, müssen von dem Datenverkehr getrennt werden, der für die ausgehende Kommunikation über den Proxyserver weitergeleitet wird. Der
--proxy-skip-range
-Parameter kann verwendet werden, um den CIDR-Bereich und die Endpunkte durch Kommas getrennt anzugeben, sodass die Kommunikation zwischen den Agents und diesen Endpunkten nicht über den ausgehenden Proxy erfolgt. Mindestens der CIDR-Bereich der Dienste im Cluster sollte als Wert für diesen Parameter angegeben werden. Angenommen,kubectl get svc -A
gibt eine Liste von Diensten zurück, wobei alle Dienste ClusterIP-Werte im Bereich10.0.0.0/16
aufweisen. Der Wert, der dann für--proxy-skip-range
angegeben werden soll, ist10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc
. --proxy-http
,--proxy-https
und--proxy-skip-range
werden für die meisten ausgehenden Proxyumgebungen erwartet.--proxy-cert
ist nur erforderlich, wenn Sie vertrauenswürdige Zertifikate, die vom Proxy erwartet werden, in den vertrauenswürdigen Zertifikatspeicher der Agent-Pods einfügen müssen.- Der Proxy für ausgehenden Datenverkehr muss so konfiguriert werden, dass WebSocket-Verbindungen zulässig sind.
Für ausgehende Proxyserver, wenn Sie nur ein vertrauenswürdiges Zertifikat bereitstellen, können Sie az connectedk8s connect
nur mit dem angegebenen --proxy-cert
Parameter ausführen.
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>
Wenn mehrere vertrauenswürdige Zertifikate vorhanden sind, muss die Zertifikatkette (Leaf-Zertifikat, Zwischenzertifikat, Stammzertifikat) in einer einzigen Datei kombiniert werden, die --proxy-cert
im Parameter übergeben wird.
Hinweis
--custom-ca-cert
ist ein Alias für--proxy-cert
. Beide Parameter können austauschbar verwendet werden. Wenn beide Parameter im selben Befehl übergeben werden, wird der zuletzt übergebene Parameter angewendet.
Überprüfen der Clusterverbindung
Führen Sie den folgenden Befehl aus:
az connectedk8s list --resource-group AzureArcTest --output table
Ausgabe:
Name Location ResourceGroup
------------- ---------- ---------------
AzureArcTest1 eastus AzureArcTest
Hilfe zur Problembehandlung bei Verbindungsproblemen finden Sie unter Diagnose von Verbindungsproblemen für Azure Arc-fähige Kubernetes-Cluster.
Hinweis
Nach dem Onboarding des Clusters dauert es bis zu zehn Minuten, bis Clustermetadaten (z. B. Clusterversion und Anzahl von Knoten) auf der Übersichtsseite der Azure Arc-fähigen Kubernetes-Ressource im Azure-Portal angezeigt werden.
Anzeigen von Azure Arc-Agents für Kubernetes
Azure Arc-fähiges Kubernetes stellt verschiedene Agents im Namespace azure-arc
bereit.
Zeigen Sie diese Bereitstellungen und Pods wie folgt an:
kubectl get deployments,pods -n azure-arc
Vergewissern Sie sich, dass alle Pods den Zustand
Running
aufweisen.Ausgabe:
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
Weitere Informationen zu diesen Agents finden Sie unter Übersicht über Kubernetes-Agents mit Azure Arc-Unterstützung.
Bereinigen von Ressourcen
Sie können die Azure Arc-fähige Kubernetes-Ressource, alle zugeordneten Konfigurationsressourcen und alle Agents, die auf dem Cluster ausgeführt werden, mithilfe des folgenden Befehls löschen:
az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest
Wenn der Löschvorgang fehlschlägt, verwenden Sie den folgenden Befehl, um das Löschen zu erzwingen (fügen Sie -y
hinzu, wenn Sie die Bestätigungsaufforderung umgehen möchten):
az connectedk8s delete -n AzureArcTest1 -g AzureArcTest --force
Dieser Befehl kann auch verwendet werden, wenn Probleme beim Erstellen einer neuen Clusterbereitstellung auftreten (aufgrund zuvor erstellter Ressourcen, die nicht vollständig entfernt wurden).
Hinweis
Wenn Sie die Kubernetes-Ressource mit Azure Arc-Unterstützung über das Azure-Portal löschen, werden alle zugehörigen Konfigurationsressourcen entfernt, jedoch keine Agents, die auf dem Cluster ausgeführt werden. Aus diesem Grund wird empfohlen, die Azure Arc-fähige Kubernetes-Ressource mithilfe von az connectedk8s delete
zu löschen, anstatt die Ressource im Azure-Portal zu löschen.
Nächste Schritte
- Erfahren Sie, wie SieKonfigurationen mithilfe von GitOps mit Flux v2 bereitstellen.
- Problembehandlung bei allgemeinen Problemen mit Azure Arc-fähigem Kubernetes.
- Erleben Sie automatisierte Azure Arc-fähige Kubernetes-Szenarien mit dem Azure Arc-Schnellstart.
- Helfen Sie, Ihren Cluster zu schützen, indem Sie den Anweisungen im Sicherheitsbuch für Azure Arc-fähige Kubernetes folgen.