Share via


Bereitstellen und Verwalten von Clustererweiterungen mithilfe von Azure CLI

Sie können Erweiterungsinstanzen in einem AKS-Cluster erstellen und erforderliche und optionale Parameter festlegen, einschließlich Optionen für Updates und Konfigurationen. Sie können Erweiterungsinstanzen anzeigen, auflisten, aktualisieren und löschen.

Bevor Sie beginnen, lesen Sie mehr über Clustererweiterungen.

Hinweis

Die in diesem Artikel enthaltenen Beispiele sind nicht vollständig und dienen nur zur Veranschaulichung der Funktionalität. Eine umfassende Liste der Befehle und ihrer Parameter finden Sie in der az k8s-extension CLI-Referenz.

Voraussetzungen

  • Ein Azure-Abonnement. Falls Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.

  • Die Microsoft.ContainerService- und Microsoft.KubernetesConfiguration-Ressourcenanbieter müssen für Ihr Abonnement registriert sein. Führen Sie zum Registrieren dieser Anbieter den folgenden Befehl aus:

    az provider register --namespace Microsoft.ContainerService --wait 
    az provider register --namespace Microsoft.KubernetesConfiguration --wait 
    
  • Ein AKS-Cluster. Dieser Cluster muss mit einer verwalteten Identität erstellt worden sein, da Clustererweiterungen nicht mit dienstprinzipalbasierten Clustern funktionieren. Für neue Cluster, die mit az aks create erstellt werden, ist standardmäßig eine verwaltete Identität konfiguriert. Wechseln Sie bei vorhandenen dienstprinzipalbasierten Clustern zur Identitätsverwaltung, indem Sie az aks update mit dem Flag --enable-managed-identity ausführen. Weitere Informationen finden Sie unter Verwenden einer verwalteten Identität in Azure Kubernetes Service.

  • Azure-Befehlszeilenschnittstelle Version >= 2.16.0 installiert. Wir empfehlen die Verwendung der neuesten Version.

  • Die neueste Version der Azure CLI-Erweiterungen k8s-extension. Installieren Sie diese Erweiterung mit dem folgenden Befehl:

    az extension add --name k8s-extension
    

    Wenn die Erweiterung bereits installiert ist, stellen Sie mithilfe des folgenden Befehls sicher, dass Sie die neueste Version ausführen:

    az extension update --name k8s-extension
    

Erstellen einer Erweiterungsinstanz

Erstellen Sie eine neue Erweiterungsinstanz mit k8s-extension create, und übergeben Sie Werte für die obligatorischen Parameter. Dieser Beispielbefehl erstellt eine Azure Machine Learning-Erweiterungsinstanz auf Ihrem AKS-Cluster:

az k8s-extension create --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --configuration-settings enableInference=True allowInsecureConnections=True inferenceRouterServiceType=LoadBalancer

Mit diesem Beispielbefehl wird eine Kubernetes-Beispielanwendung (im Marketplace veröffentlicht) in Ihrem AKS-Cluster erstellt:

az k8s-extension create --name voteapp --extension-type Contoso.AzureVoteKubernetesAppTest --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --plan-name testPlanID --plan-product testOfferID --plan-publisher testPublisherID --configuration-settings title=VoteAnimal value1=Cats value2=Dogs

Hinweis

Der Dienst Cluster Extensions ist nicht in der Lage, sensible Informationen länger als 48 Stunden aufzubewahren. Wenn die Agents der Clustererweiterung länger als 48 Stunden keine Netzverbindung haben und nicht feststellen können, ob eine Erweiterung im Cluster erstellt werden soll, geht die Erweiterung in den Zustand Failed über. Sobald Sie sich im Zustand Failed befinden, müssen Sie k8s-extension create erneut ausführen, um eine neue Erweiterungsinstanz zu erstellen.

Erforderliche Parameter

Parametername BESCHREIBUNG
--name Name der Erweiterungsinstanz
--extension-type Der Typ der Erweiterung, die Sie auf dem Cluster installieren möchten. Beispiel: Microsoft.AzureML.Kubernetes
--cluster-name Name des AKS-Clusters, auf dem die Erweiterungsinstanz angelegt werden soll
--resource-group Die Ressourcengruppe, die den AKS-Cluster enthält
--cluster-type Der Clustertyp, auf dem die Erweiterungsinstanz erstellt werden soll. Geben Sie managedClusters an, da es auf AKS-Cluster abgebildet wird

Optionale Parameter

Parametername BESCHREIBUNG
--auto-upgrade-minor-version Boolesche Eigenschaft, die angibt, ob die Nebenversion der Erweiterung automatisch aktualisiert wird. Standardwert: true. Wenn dieser Parameter auf „true“ festgelegt ist, können Sie den version-Parameter nicht festlegen, da die Version dynamisch aktualisiert wird. Wenn der Wert false festgelegt ist, wird die Erweiterung auch für Patchversionen nicht automatisch aktualisiert.
--version Version der zu installierenden Erweiterung (bestimmte Version, an die die Erweiterungsinstanz angeheftet wird). Muss nicht angegeben werden, wenn „auto-upgrade-minor-version“ auf true festgelegt ist.
--configuration-settings Einstellungen, die an die Erweiterung übergeben werden können, um deren Funktionalität zu steuern. Übergeben Sie Werte als leerzeichengetrennte key=value-Paare nach dem Parameternamen. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-settings-file nicht im selben Befehl verwendet werden.
--configuration-settings-file Der Pfad zur JSON-Datei mit Schlüsselwertpaaren, die verwendet werden sollen, um Konfigurationseinstellungen an die Erweiterung zu übergeben. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-settings nicht im selben Befehl verwendet werden.
--configuration-protected-settings Diese Einstellungen können nicht mit GET-API-Aufrufen oder az k8s-extension show-Befehlen abgerufen werden, und werden daher verwendet, um sensible Einstellungen zu übergeben. Übergeben Sie Werte als leerzeichengetrennte key=value-Paare nach dem Parameternamen. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-protected-settings-file nicht im selben Befehl verwendet werden.
--configuration-protected-settings-file Der Pfad zur JSON-Datei mit Schlüsselwertpaaren, die verwendet werden sollen, um sensible Einstellungen an die Erweiterung zu übergeben. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-protected-settings nicht im selben Befehl verwendet werden.
--scope Umfang der Installation für die Erweiterung – cluster oder namespace
--release-namespace Dieser Parameter gibt den Namespace an, in dem die Freigabe erstellt werden soll. Dieser Parameter ist nur relevant, wenn der scope-Parameter auf cluster festgelegt ist.
--release-train Erweiterungsersteller können Versionen in unterschiedlichen Release Trains wie Stable, Preview usw. veröffentlichen. Wenn dieser Parameter nicht explizit festgelegt ist, wird Stable als Standard verwendet. Dieser Parameter kann nicht verwendet werden, wenn der --auto-upgrade-minor-version-Parameter auf false festgelegt ist.
--target-namespace Dieser Parameter gibt den Namespace an, in dem die Freigabe erstellt wird. Die Berechtigung des für diese Erweiterungsinstanz erstellten Systemkontos wird auf diesen Namespace beschränkt. Dieser Parameter ist nur relevant, wenn der scope-Parameter auf namespace festgelegt ist.
--plan-name Plan-ID der Erweiterung, zu finden auf der Marketplace-Seite im Azure-Portal unter Nutzungsinformationen + Support.
--plan-product Produkt-ID der Erweiterung, zu finden auf der Marketplace-Seite im Azure-Portal unter Nutzungsinformationen + Support. Ein Beispiel hierfür ist der Name des verwendeten ISV-Angebots.
--plan-publisher Herausgeber-ID der Erweiterung, zu finden auf der Marketplace-Seite im Azure-Portal unter Nutzungsinformationen + Support.

Anzeigen von Details einer Erweiterungsinstanz

Zeigen Sie Details einer aktuell installierten Erweiterungsinstanz mit k8s-extension show an, wobei Sie Werte für die obligatorischen Parameter übergeben.

az k8s-extension show --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Alle auf dem Cluster installierten Erweiterungen auflisten

Listen Sie alle auf dem Cluster installierten Erweiterungen mit k8s-extension list an, wobei Sie Werte für die obligatorischen Parameter übergeben.

az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Erweiterungsinstanz aktualisieren

Hinweis

Informationen zu den spezifischen Einstellungen in --configuration-settings und --configuration-protected-settings, die aktualisiert werden können, finden Sie in der Dokumentation für den spezifischen Erweiterungstyp. Bei --configuration-protected-settingswird erwartet, dass alle Einstellungen bereitgestellt werden, auch wenn nur eine Einstellung aktualisiert wird. Wenn einige Einstellungen weggelassen werden, werden diese Einstellungen als veraltet betrachtet und gelöscht.

Aktualisieren Sie eine vorhandene Erweiterungsinstanz mit k8s-extension update, indem Sie Werte für die obligatorischen Parameter übergeben. Der folgende Befehl aktualisiert die Auto-Upgrade-Einstellung für eine Azure Machine Learning-Erweiterungsinstanz:

az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Erforderliche Parameter für die Aktualisierung

Parametername BESCHREIBUNG
--name Name der Erweiterungsinstanz
--extension-type Der Typ der Erweiterung, die Sie auf dem Cluster installieren möchten. Beispiel: Microsoft.AzureML.Kubernetes
--cluster-name Name des AKS-Clusters, auf dem die Erweiterungsinstanz angelegt werden soll
--resource-group Die Ressourcengruppe, die den AKS-Cluster enthält
--cluster-type Der Clustertyp, auf dem die Erweiterungsinstanz erstellt werden soll. Geben Sie managedClusters an, da es auf AKS-Cluster abgebildet wird

Wenn Sie eine Kubernetes-Anwendung aktualisieren, die Sie über den Marketplace erworben haben, sind auch die folgenden Parameter erforderlich:

Parametername BESCHREIBUNG
--plan-name Plan-ID der Erweiterung, zu finden auf der Marketplace-Seite im Azure-Portal unter Nutzungsinformationen + Support.
--plan-product Produkt-ID der Erweiterung, zu finden auf der Marketplace-Seite im Azure-Portal unter Nutzungsinformationen + Support. Ein Beispiel hierfür ist der Name des verwendeten ISV-Angebots.
--plan-publisher Herausgeber-ID der Erweiterung, zu finden auf der Marketplace-Seite im Azure-Portal unter Nutzungsinformationen + Support.

Optionale Parameter für die Aktualisierung

Parametername BESCHREIBUNG
--auto-upgrade-minor-version Boolesche Eigenschaft, die angibt, ob die Nebenversion der Erweiterung automatisch aktualisiert wird. Standardwert: true. Wenn dieser Parameter auf „true“ festgelegt ist, können Sie den version-Parameter nicht festlegen, da die Version dynamisch aktualisiert wird. Wenn der Wert false festgelegt ist, wird die Erweiterung auch für Patchversionen nicht automatisch aktualisiert.
--version Version der zu installierenden Erweiterung (bestimmte Version, an die die Erweiterungsinstanz angeheftet wird). Muss nicht angegeben werden, wenn „auto-upgrade-minor-version“ auf true festgelegt ist.
--configuration-settings Einstellungen, die an die Erweiterung übergeben werden können, um deren Funktionalität zu steuern. Nur die Einstellungen, die eine Aktualisierung erfordern, müssen angegeben werden. Die angegebenen Einstellungen würden durch die angegebenen Werte ersetzt werden. Übergeben Sie Werte als leerzeichengetrennte key=value-Paare nach dem Parameternamen. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-settings-file nicht im selben Befehl verwendet werden.
--configuration-settings-file Der Pfad zur JSON-Datei mit Schlüsselwertpaaren, die verwendet werden sollen, um Konfigurationseinstellungen an die Erweiterung zu übergeben. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-settings nicht im selben Befehl verwendet werden.
--configuration-protected-settings Diese Einstellungen können nicht mit GET-API-Aufrufen oder az k8s-extension show-Befehlen abgerufen werden, und werden daher verwendet, um sensible Einstellungen zu übergeben. Wenn Sie eine Einstellung aktualisieren, wird erwartet, dass alle Einstellungen angegeben werden. Wenn einige Einstellungen weggelassen werden, werden diese Einstellungen als veraltet betrachtet und gelöscht. Übergeben Sie Werte als leerzeichengetrennte key=value-Paare nach dem Parameternamen. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-protected-settings-file nicht im selben Befehl verwendet werden.
--configuration-protected-settings-file Der Pfad zur JSON-Datei mit Schlüsselwertpaaren, die verwendet werden sollen, um sensible Einstellungen an die Erweiterung zu übergeben. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-protected-settings nicht im selben Befehl verwendet werden.
--scope Umfang der Installation für die Erweiterung – cluster oder namespace
--release-train Erweiterungsersteller können Versionen in unterschiedlichen Release Trains wie Stable, Preview usw. veröffentlichen. Wenn dieser Parameter nicht explizit festgelegt ist, wird Stable als Standard verwendet. Dieser Parameter kann nicht verwendet werden, wenn der autoUpgradeMinorVersion-Parameter auf false festgelegt ist.

Löschen der Erweiterungsinstanz

Löschen Sie eine Erweiterungsinstanz auf einem Cluster mit k8s-extension-delete, wobei Sie Werte für die obligatorischen Parameter übergeben.

az k8s-extension delete --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Hinweis

Die Azure-Ressource, die diese Erweiterung darstellt, wird sofort gelöscht. Die Helm-Freigabe auf dem Cluster, die dieser Erweiterung zugeordnet ist, wird nur gelöscht, wenn die auf dem Kubernetes-Cluster ausgeführten Agents über Netzwerkkonnektivität verfügen und wieder auf Azure-Dienste zugreifen können, um den gewünschten Status abzurufen.

Nächste Schritte