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
undcustomlocation
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
.Geben Sie die folgenden Befehle ein:
az provider register --namespace Microsoft.ExtendedLocation
Ü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 WertRegistered
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. Führen Sie die folgenden Schritte aus, um das Feature für benutzerdefinierte Speicherorte zu aktivieren:
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.
Diese Warnung tritt auf, da der Dienstprinzipal nicht über die erforderlichen Berechtigungen zum Abrufen der oid
(Objekt-ID) des vom Azure Arc-Dienst verwendeten benutzerdefinierten Speicherorts verfügt. Führen Sie die folgenden Schritte aus, um diesen Fehler zu vermeiden:
Melden Sie sich mit Ihrem Geschäftskonto bei der Azure-Befehlszeilenschnittstelle an.
Führen Sie den folgenden Befehl aus, um die
oid
(Objekt-ID) des benutzerdefinierten Speicherorts abzurufen, in dem--id
vordefiniert und aufbc313c14-388c-4e7d-a58e-70017303ee3b
festgelegt ist:Wichtig: Kopieren Sie den Befehl, und führen Sie ihn genau wie unten dargestellt aus. Ersetzen Sie den an den
--id
-Parameter übergebenen Wert nicht durch einen anderen Wert.az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
Melden Sie sich mit dem Dienstprinzipal bei Azure CLI an. Führen Sie den folgenden Befehl aus, um das Feature für benutzerdefinierte Speicherorte im Cluster mithilfe des
oid
-Werts (Objekt-ID) aus dem vorherigen Schritt für den--custom-locations-oid
-Parameter zu aktivieren:az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <cl-oid> --features cluster-connect custom-locations
Erstellen eines benutzerdefinierten Speicherorts
Stellen Sie die Azure-Dienstclustererweiterung der Azure-Dienstinstanz, die Sie in Ihrem Cluster installieren möchten, zur Verfügung:
Datendienste mit Azure Arc-Unterstützung
Hinweis
Der Proxy für ausgehenden Datenverkehr ohne Authentifizierung und der Proxy für ausgehenden Datenverkehr mit Standardauthentifizierung werden von der Clustererweiterung „Azure Arc-fähige Datendienste“ unterstützt. Proxys für ausgehenden Datenverkehr, von denen Zertifikate erwartet werden, werden aktuell nicht unterstützt.
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
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
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
- Stellen Sie eine sichere Verbindung mit dem Cluster über Cluster Connect her.
- Fahren Sie mit Azure App Service auf Azure Arc fort, um umfassende Anweisungen zum Installieren von Erweiterungen, Erstellen benutzerdefinierter Standorte und Erstellen der App Service-Kubernetes-Umgebung abzurufen.
- Erstellen Sie ein Event Grid-Thema und ein Ereignisabonnement für Event Grid in Kubernetes.
- Informieren Sie sich genauer über derzeit verfügbare Erweiterungen für Azure Arc-fähige Kubernetes-Cluster.