Erstellen und Verwalten benutzerdefinierter Speicherorte in Azure Arc-fähigen Kubernetes-Clustern

Die Funktion für benutzerdefinierte Standorte bietet eine Möglichkeit, Kubernetes-Cluster mit Azure Arc-Unterstützung als Zielstandorte für die Bereitstellung von Instanzen von Azure-Angeboten zu konfigurieren. Beispiele für Azure-Angebote, die auf benutzerdefinierten Standorten bereitgestellt werden können, sind Datenbanken wie Azure Arc-aktivierte SQL Managed Instance und PostgreSQL-Server oder Anwendungsinstanzen wie App Services, Functions, Event Grid, Logic Apps und API Management.

Ein benutzerdefinierter Speicherort verfügt über eine 1:1-Zuordnung zu einem Namespace im Kubernetes-Cluster mit Azure Arc-Unterstützung. Die Azure-Ressource für den benutzerdefinierten Speicherort kann in Kombination mit der rollenbasierten Azure-Zugriffssteuerung (Azure RBAC) verwendet werden, um Anwendungsentwicklern oder Datenbankadministratoren präzise Berechtigungen zu gewähren, damit diese Ressourcen wie Datenbanken oder Anwendungsinstanzen zusätzlich zum Kubernetes-Cluster mit Azure Arc-Umgebung für mehrere Mandanten bereitstellen können.

In diesem Artikel erfahren Sie, wie Sie benutzerdefinierte Speicherorte in einem Arc-fähigen Kubernetes-Cluster aktivieren und wie Sie einen benutzerdefinierten Speicherort erstellen.

Voraussetzungen

  • Installieren Sie die Azure-Befehlszeilenschnittstelle, oder upgraden Sie sie auf die neueste Version.

  • Installieren Sie die neuesten Versionen der folgenden Azure CLI-Erweiterungen:

    • connectedk8s

    • k8s-extension

    • customlocation

      az extension add --name connectedk8s
      az extension add --name k8s-extension
      az extension add --name customlocation
      

      Wenn Sie zuvor die Erweiterungen connectedk8s, k8s-extension und customlocation installiert haben, aktualisieren Sie auf die neueste Version, indem Sie den folgenden Befehl verwenden:

      az extension update --name connectedk8s
      az extension update --name k8s-extension
      az extension update --name customlocation
      
  • Überprüfen Sie die abgeschlossene Anbieterregistrierung für Microsoft.ExtendedLocation.

    1. Geben Sie die folgenden Befehle ein:

      az provider register --namespace Microsoft.ExtendedLocation
      
    2. Überwachen Sie den Registrierungsprozess. Die Registrierung kann bis zu 10 Minuten dauern.

      az provider show -n Microsoft.ExtendedLocation -o table
      

      Nach der Registrierung weist der Status RegistrationState den Wert Registered auf.

  • Stellen Sie sicher, dass Sie über einen mit Azure Arc aktivierten Kubernetes verbundenes Cluster verfügen und aktualisieren Sie Ihre Agents auf die neueste Version. Vergewissern Sie sich, dass der Computer, auf dem Sie die in diesem Artikel beschriebenen Befehle ausführen, über eine kubeconfig-Datei verfügt, die auf dieses Cluster verweist.

Aktivieren benutzerdefinierter Speicherorte im Cluster

Tipp

Das Feature „Benutzerdefinierte Speicherorte“ ist vom Cluster Connect-Feature abhängig. Beide Features müssen im Cluster aktiviert sein, damit benutzerdefinierte Speicherorte funktionieren.

Wenn Sie bei Azure CLI als Microsoft Entra-Benutzer angemeldet sind, verwenden Sie den folgenden Befehl:

az connectedk8s enable-features -n <clusterName> -g <resourceGroupName> --features cluster-connect custom-locations

Wenn Sie den Befehl oben ausführen, während Sie mit einem Dienstprinzipal bei Azure CLI registriert sind, fällt Ihnen möglicherweise die folgende Warnung auf:

Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.

Das liegt daran, dass ein Dienstprinzipal keine Berechtigungen zum Abrufen der Informationen der Anwendung hat, die vom Azure Arc-Dienst verwendet wird. Führen Sie zum Vermeiden dieses Fehlers die folgenden Schritte aus:

  1. Melden Sie sich mit Ihrem Benutzerkonto bei Azure CLI an. Rufen Sie die objectId oder id der Microsoft Entra-Anwendung ab, die vom Azure Arc-Dienst verwendet wird, indem Sie den folgenden Befehl verwenden:

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  2. Melden Sie sich mit dem Dienstprinzipal bei Azure CLI an. Verwenden Sie den <objectId>- oder den id-Wert aus dem vorherigen Schritt, um benutzerdefinierte Speicherorte im Cluster zu aktivieren:

    az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId/id> --features cluster-connect custom-locations
    

Erstellen eines benutzerdefinierten Speicherorts

  1. Stellen Sie die Azure-Dienstclustererweiterung der Azure-Dienstinstanz, die Sie in Ihrem Cluster installieren möchten, zur Verfügung:

  2. Rufen Sie den Azure Resource Manager-Bezeichner des Azure Arc-fähigen Kubernetes-Clusters ab, auf den in späteren Schritten mit connectedClusterId verwiesen wird:

    az connectedk8s show -n <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  3. Rufen Sie den Azure Resource Manager-Bezeichner der auf dem Kubernetes-Clusters mit Azure Arc-Unterstützung bereitgestellten Clustererweiterung ab, auf den in späteren Schritten als extensionId verwiesen wird:

    az k8s-extension show --name <extensionInstanceName> --cluster-type connectedClusters -c <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  4. Erstellen Sie den benutzerdefinierten Speicherort, indem Sie auf den Azure Arc-fähigen Kubernetes-Cluster und die Erweiterung verweisen:

    az customlocation create -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionId> 
    
    • Erforderliche Parameter:

      Parametername Beschreibung
      --name, --n Namen des benutzerdefinierten Standorts.
      --resource-group, --g Dies ist die Ressourcengruppe des benutzerdefinierten Speicherorts.
      --namespace Namespace im Cluster, der an den benutzerdefinierten Speicherort gebunden ist, der erstellt wird.
      --host-resource-id Dies ist der Azure Resource Manager-Bezeichner des Azure Arc-fähigen Kubernetes-Clusters (verbundener Cluster).
      --cluster-extension-ids Dies sind die Azure Resource Manager-Bezeichner der Clustererweiterungsinstanz, die in dem verbundenen Cluster installiert sind. Stellen Sie für mehrere Erweiterungen eine durch Leerzeichen getrennte Liste von Clustererweiterungs-IDs bereit
    • Optionale Parameter:

      Parametername Beschreibung
      --location, --l Dies ist der benutzerdefinierte Speicherort für die Azure Resource Manager-Ressource in Azure. Wenn nicht angegeben, wird der Speicherort des verbundenen Clusters verwendet.
      --tags Durch Leerzeichen getrennte Liste von Tags im Format key[=value]. Verwenden Sie ", um vorhandene Tags zu löschen.
      --kubeconfig Administrator*in kubeconfig des Clusters.

So zeigen Sie Details für einen benutzerdefinierten Speicherort an:

Verwenden Sie den folgenden Befehl, um die Details eines benutzerdefinierten Speicherorts anzuzeigen:

az customlocation show -n <customLocationName> -g <resourceGroupName> 

Auflisten benutzerdefinierter Speicherorte

Verwenden Sie den folgenden Befehl, um alle benutzerdefinierten Speicherorte in einer Ressourcengruppe aufzulisten:

az customlocation list -g <resourceGroupName> 

Aktualisieren eines benutzerdefinierten Speicherorts

Verwenden Sie den Befehl update, um neue Werte für --tags hinzuzufügen oder dem benutzerdefinierten Speicherort neue --cluster-extension-ids zuzuordnen, während vorhandene Werte für Tags und zugeordnete Clustererweiterungen beibehalten werden.

az customlocation update -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds> 

Patchen eines benutzerdefinierten Speicherorts

Verwenden Sie den patch-Befehl, um vorhandene Werte für --cluster-extension-ids oder --tags zu ersetzen. Vorherige Werte werden nicht beibehalten.

az customlocation patch -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds> 

Löschen eines benutzerdefinierten Speicherorts

Um einen benutzerdefinierten Speicherort zu löschen, verwenden Sie den folgenden Befehl:

az customlocation delete -n <customLocationName> -g <resourceGroupName> 

Problembehandlung

Wenn die Erstellung von benutzerdefinierten Speicherorten mit dem Fehler Unknown proxy error occurred fehlschlägt, ändern Sie Ihre Netzwerkrichtlinie so, dass die interne Kommunikation zwischen pod-zu-pod innerhalb des azure-arc-Namespace zulässig ist. Stellen Sie sicher, dass Sie den Namespace azure-arc auch der Ausschlussliste „no-proxy“ für Ihre konfigurierte Richtlinie hinzufügen.

Nächste Schritte