Verbinden eines Azure Kubernetes Service Clusters mit Azure Arc

Gilt für: AKS in Azure Stack HCI 22H2, AKS unter Windows Server

Wenn ein Azure Kubernetes Service-Cluster (AKS) an Azure Arc angefügt ist, erhält er eine Azure Resource Manager-Darstellung. Cluster sind an Azure-Standardabonnements angefügt, befinden sich in einer Ressourcengruppe und können wie jede andere Azure-Ressource Tags erhalten. Außerdem können Sie mit der Kubernetes-Darstellung die folgenden Funktionen auf Ihren Kubernetes-Cluster erweitern:

  • Verwaltungsdienste: Konfigurationen (GitOps), Azure Monitor für Container, Azure Policy (Gatekeeper).
  • Datendienste: SQL Managed Instance, PostgreSQL Hyperscale.
  • Anwendungsdienste: App Service, Functions, Event Grid, Logic Apps, API Management.

Um einen Kubernetes-Cluster mit Azure zu verbinden, muss der Clusteradministrator Agents bereitstellen. Diese Agents werden in einem Kubernetes-Namespace namens azure-arc ausgeführt und sind Kubernetes-Standardbereitstellungen. Die Agents sind für die Konnektivität mit Azure verantwortlich, sammeln Azure Arc-Protokolle und -Metriken und aktivieren die zuvor genannten Szenarien im Cluster.

AKS unterstützt BRANCHENSTANDARD SSL, um Daten während der Übertragung zu schützen. Die Daten werden außerdem im Ruhezustand verschlüsselt in einer Azure Cosmos DB-Datenbank gespeichert, um ihre Vertraulichkeit zu gewährleisten.

In den folgenden Schritten wird beschrieben, wie AKS-Cluster mit Azure Arc in AKS verbunden werden, die von Arc aktiviert werden. Sie können diese Schritte überspringen, wenn Sie Ihren Kubernetes-Cluster bereits über Windows Admin Center mit Azure Arc verbunden haben.

Voraussetzungen

Vergewissern Sie sich, dass Sie die folgenden Anforderungen erfüllen:

  • Ein AKS-Cluster mit mindestens einem Linux-Workerknoten, der ausgeführt wird.
  • Installieren Sie das PowerShell-Modul AksHci.
  • Die folgende Zugriffsebene für Ihr Azure-Abonnement:
    • Ein Benutzerkonto mit der integrierten Rolle Besitzer. Sie können Ihre Zugriffsebene überprüfen, indem Sie zu Ihrem Abonnement navigieren, auf der linken Seite des Azure-Portal "Zugriffssteuerung (IAM)" auswählen und dann auf Meinen Zugriff anzeigen klicken.
    • Ein Dienstprinzipal mit der integrierten Rolle Besitzer.
  • Führen Sie die Befehle in diesem Artikel in einem PowerShell-Verwaltungsfenster aus.
  • Stellen Sie sicher, dass Sie die Netzwerkanforderungen von AKS erfüllt haben.

Schritt 1: Anmelden bei Azure

Führen Sie zum Anmelden bei Azure den PowerShell-Befehl Connect-AzAccount aus:

Connect-AzAccount $tenantId

Wenn Sie zu einem anderen Abonnement wechseln möchten, führen Sie den PowerShell-Befehl Set-AzContext aus:

Set-AzContext -Subscription $subscriptionId

Schritt 2: Registrieren der beiden Anbieter für AKS

Sie können diesen Schritt überspringen, wenn Sie die beiden Anbieter bereits für AKS in Ihrem Abonnement registriert haben. Die Registrierung ist ein asynchroner Prozess und muss einmal pro Abonnement erfolgen. Die Registrierung kann ungefähr 10 Minuten dauern:

Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

Mit den folgenden Befehlen können Sie überprüfen, ob Sie registriert sind:

Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Get-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

Schritt 3: Herstellen einer Verbindung mit Azure Arc mithilfe des AKS-HCI-PowerShell-Moduls

Verbinden Sie Ihren AKS-Cluster mit Kubernetes mithilfe des PowerShell-Befehls Enable-AksHciArcConnection . In diesem Schritt werden Azure Arc-Agents für Kubernetes im azure-arc Namespace bereitgestellt:

Enable-AksHciArcConnection -name $clusterName 

Verbinden Sie Ihren AKS-Cluster mit Azure Arc über einen Service Principal

Wenn Sie keinen Zugriff auf ein Abonnement haben, für das Sie "Besitzer" sind, können Sie Ihren AKS-Cluster mithilfe eines Dienstprinzipals mit Azure Arc verbinden.

Der erste Befehl fordert zur Eingabe von Dienstprinzipal-Anmeldeinformationen auf und speichert sie in der credential Variable. Tragen Sie Ihre Anwendungs-ID als Benutzernamen und verwenden Sie dann das Dienstprinzipalgeheimnis als Passwort, wenn Sie dazu aufgefordert werden. Stellen Sie sicher, dass Sie diese Werte von Ihrem Abonnementadministrator erhalten. Der zweite Befehl verbindet Ihren Cluster mithilfe der in der credential Variablen gespeicherten Anmeldeinformationen des Dienstprinzipals mit Azure Arc:

$Credential = Get-Credential
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location $location

Stellen Sie sicher, dass dem im obigen Befehl verwendeten Dienstprinzipal die Rolle "Besitzer" zugewiesen ist und dass er über einen Bereich für die im Befehl verwendete Abonnement-ID verfügt. Weitere Informationen zu Dienstprinzipalen finden Sie unter Erstellen eines Dienstprinzipals mit Azure PowerShell.

Verbinden Ihres AKS-Clusters mit Azure Arc und Aktivieren benutzerdefinierter Standorte

Wenn Sie benutzerdefinierte Speicherorte in Ihrem Cluster zusammen mit Azure Arc aktivieren möchten, führen Sie den folgenden Befehl aus, um die Objekt-ID der benutzerdefinierten Standortanwendung abzurufen, und stellen Sie dann mithilfe eines Dienstprinzipals eine Verbindung mit Azure Arc her:

$objectID = (Get-AzADServicePrincipal -ApplicationId "bc313c14-388c-4e7d-a58e-70017303ee3b").Id
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location -customLocationsOid $objectID

Überprüfen des verbundenen Clusters

Sie können Ihre Kubernetes-Clusterressource im Azure-Portal anzeigen. Nachdem Sie das Portal in Ihrem Browser geöffnet haben, navigieren Sie zu der Ressourcengruppe und der AKS-Ressource, die auf den Ressourcennamen- und Ressourcengruppennameneingaben basiert, die im PowerShell-Befehl enable-akshciarcconnection verwendet werden.

Hinweis

Nachdem Sie den Cluster verbunden haben, kann es maximal etwa fünf bis zehn Minuten dauern, bis die Clustermetadaten (Clusterversion, Agentversion, Anzahl der Knoten) auf der Übersichtsseite der AKS-Ressource in Azure-Portal angezeigt werden.

Azure Arc-Agents für Kubernetes

AKS stellt einige Operatoren im azure-arc Namespace bereit. Sie können diese Bereitstellungen und Pods mit kubectlanzeigen, wie im folgenden Beispiel gezeigt:

kubectl -n azure-arc get deployments,pods

AKS besteht aus wenigen Agents (Operatoren), die in Ihrem Cluster ausgeführt werden, der im azure-arc Namespace bereitgestellt wird. Weitere Informationen zu diesen Agents finden Sie in dieser Übersicht.

Trennen Des AKS-Clusters von Azure Arc

Wenn Sie den Cluster von AKS trennen möchten, führen Sie den PowerShell-Befehl Disable-AksHciArcConnection aus. Stellen Sie sicher, dass Sie sich bei Azure anmelden, bevor Sie den Befehl ausführen:

Disable-AksHciArcConnection -Name $clusterName

Nächste Schritte