Distribuire e gestire le estensioni del cluster usando l'interfaccia della riga di comando di Azure

È possibile creare istanze di estensione in un cluster del servizio Azure Kubernetes, impostando parametri obbligatori e facoltativi, incluse le opzioni correlate ad aggiornamenti e configurazioni. Inoltre è possibile visualizzare, elencare, aggiornare ed eliminare istanze di estensione.

Prima di iniziare, leggere le informazioni sulle estensioni del cluster.

Nota

Gli esempi indicati in questo articolo non sono completi e hanno unicamente lo scopo di presentare le funzionalità. Per un elenco completo dei comandi e dei relativi parametri, vedere il riferimento sull'interfaccia della riga di comando az k8s-extension.

Prerequisiti

  • Una sottoscrizione di Azure. Se non hai una sottoscrizione Azure, crea un account gratuito.

  • I provider di risorse Microsoft.ContainerService e Microsoft.KubernetesConfiguration devono essere registrati nella sottoscrizione. Per registrare questi provider, eseguire il comando seguente:

    az provider register --namespace Microsoft.ContainerService --wait 
    az provider register --namespace Microsoft.KubernetesConfiguration --wait 
    
  • Un cluster servizio Azure Kubernetes. Questo cluster deve essere stato creato con un'identità gestita: le estensioni del cluster non funzioneranno con cluster basati su entità servizio. Per i nuovi cluster creati con az aks create, l'identità gestita è configurata per impostazione predefinita. Per i cluster esistenti basati su entità servizio, passare alla gestione dell'identità eseguendo az aks update con il flag --enable-managed-identity. Per altre informazioni, vedere Usare l’identità gestita.

  • Versione dell'interfaccia della riga di comando di Azure>= 2.16.0 installata. È consigliabile usare la versione più recente.

  • La versione più recente delle estensioni dell'interfaccia della riga di comando di Azure k8s-extension. Installare l'estensione eseguendo il comando seguente:

    az extension add --name k8s-extension
    

    Se l'estensione è già installata, assicurarsi di eseguire la versione più recente. A tal fine usare il comando seguente:

    az extension update --name k8s-extension
    

Creare un'istanza dell'estensione

Creare una nuova istanza di estensione con k8s-extension create, passando i valori per i parametri obbligatori. Questo comando di esempio crea un'istanza dell'estensione di Azure Machine Learning nel cluster del servizio Azure Kubernetes:

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

Questo comando di esempio crea un'applicazione Kubernetes campione (pubblicata in Marketplace) nel cluster del servizio Azure Kubernetes:

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

Nota

Il servizio Estensioni del cluster non è in grado di conservare le informazioni sensibili per più di 48 ore. Se gli agenti di estensione del cluster non hanno connettività di rete per più di 48 ore e non possono determinare se creare un'estensione nel cluster, l'estensione passa allo stato Failed. Una volta in stato Failed, sarà necessario eseguire di nuovo k8s-extension create per creare un'istanza di estensione aggiornata.

Parametri obbligatori

Nome parametro Descrizione
--name Nome dell'istanza dell'estensione
--extension-type Tipo di estensione da installare nel cluster. Ad esempio: Microsoft.AzureML.Kubernetes
--cluster-name Nome del cluster del servizio Azure Kubernetes in cui deve essere creata l'istanza dell'estensione
--resource-group Il gruppo di risorse contenente il cluster del servizio Azure Kubernetes.
--cluster-type Tipo di cluster in cui deve essere creata l'istanza dell'estensione. Specificare managedClusters come esegue il mapping ai cluster del servizio Azure Kubernetes

Parametri facoltativi

Nome parametro Descrizione
--auto-upgrade-minor-version Proprietà booleana che specifica se la versione secondaria dell'estensione verrà aggiornata automaticamente o meno. Impostazione predefinita: true. Se questo parametro è impostato su true, non è possibile impostare il parametro version, perché la versione verrà aggiornata in modo dinamico. Se impostato su false, l'estensione non verrà aggiornata automaticamente anche per le versioni della patch.
--version Versione dell'estensione da installare (versione specifica a cui aggiungere l'istanza dell'estensione). Non deve essere fornito se l'aggiornamento automatico-versione secondaria è impostato su true.
--configuration-settings Impostazioni che possono essere passate all'estensione per controllarne le funzionalità. Passare i valori come coppie key=value separate da spazi dopo il nome del parametro. Se questo parametro viene usato nel comando, --configuration-settings-file non può essere usato nello stesso comando.
--configuration-settings-file Percorso al file JSON con coppie chiave-valore da usare per passare le impostazioni di configurazione all'estensione. Se questo parametro viene usato nel comando, --configuration-settings non può essere usato nello stesso comando.
--configuration-protected-settings Queste impostazioni non sono recuperabili tramite chiamate API GET o i comandi az k8s-extension show e vengono quindi usate per passare impostazioni sensibili. Passare i valori come coppie key=value separate da spazi dopo il nome del parametro. Se questo parametro viene usato nel comando, --configuration-protected-settings-file non può essere usato nello stesso comando.
--configuration-protected-settings-file Percorso al file JSON con coppie chiave-valore da usare per passare le impostazioni sensibili all'estensione. Se questo parametro viene usato nel comando, --configuration-protected-settings non può essere usato nello stesso comando.
--scope Ambito dell'installazione per l'estensione - cluster o namespace
--release-namespace Questo parametro indica lo spazio dei nomi in cui deve essere creata la versione. Questo parametro è rilevante solo se il parametro scope è impostato su cluster.
--release-train Gli autori delle estensioni possono pubblicare versioni in diversi training di rilascio, quali Stable, Preview e così via. Se questo parametro non è impostato in modo esplicito, Stable viene usato come predefinito. Questo parametro non può essere usato quando il parametro --auto-upgrade-minor-version è impostato su false.
--target-namespace Questo parametro indica lo spazio dei nomi in cui verrà creata la versione. L'autorizzazione dell'account di sistema creato per questa istanza di estensione sarà limitata a questo spazio dei nomi. Questo parametro è rilevante solo se il scope parametro è impostato su namespace.
--plan-name ID piano dell'estensione, disponibile nella pagina Marketplace nel portale di Azure in Informazioni sull'utilizzo e supporto.
--plan-product ID prodotto dell'estensione, disponibile nella pagina Marketplace nel portale di Azure in Informazioni sull'utilizzo e supporto. Un esempio è il nome dell'offerta ISV usata.
--plan-publisher ID editore dell'estensione, disponibile nella pagina Marketplace nel portale di Azure in Informazioni sull'utilizzo e supporto.

Visualizzare i dettagli di un'istanza di estensione

Per visualizzare i dettagli di un'istanza di estensione attualmente installata, usare k8s-extension show, inserendo i valori per i parametri obbligatori.

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

Elencare tutte le estensioni installate nel cluster

Per elencare tutte le estensioni installate in un cluster, usare k8s-extension list, inserendo i valori per i parametri obbligatori.

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

Aggiornare l'istanza di estensione

Nota

Vedere la documentazione relativa al tipo di estensione specifico per comprendere le impostazioni appropriate in --configuration-settings e --configuration-protected-settings che possono essere aggiornate. Per --configuration-protected-settings, è previsto che vengano specificate tutte le impostazioni, anche se viene aggiornata una sola impostazione. Se una di queste impostazioni viene omessa, tali impostazioni verranno considerate obsolete ed eliminate.

Per aggiornare un'istanza di estensione esistente, usare k8s-extension update, inserendo i valori per i parametri obbligatori. Il comando seguente aggiorna l'impostazione di aggiornamento automatico per un'istanza di estensione di Azure Machine Learning:

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

Parametri obbligatori per l'aggiornamento

Nome parametro Descrizione
--name Nome dell'istanza dell'estensione
--extension-type Tipo di estensione da installare nel cluster. Ad esempio: Microsoft.AzureML.Kubernetes
--cluster-name Nome del cluster del servizio Azure Kubernetes in cui deve essere creata l'istanza dell'estensione
--resource-group Il gruppo di risorse contenente il cluster del servizio Azure Kubernetes.
--cluster-type Tipo di cluster in cui deve essere creata l'istanza dell'estensione. Specificare managedClusters come esegue il mapping ai cluster del servizio Azure Kubernetes

Se si aggiorna un'applicazione Kubernetes ottenuta tramite Marketplace, sono necessari anche i parametri seguenti:

Nome parametro Descrizione
--plan-name ID piano dell'estensione, disponibile nella pagina Marketplace nel portale di Azure in Informazioni sull'utilizzo e supporto.
--plan-product ID prodotto dell'estensione, disponibile nella pagina Marketplace nel portale di Azure in Informazioni sull'utilizzo e supporto. Un esempio è il nome dell'offerta ISV usata.
--plan-publisher ID editore dell'estensione, disponibile nella pagina Marketplace nel portale di Azure in Informazioni sull'utilizzo e supporto.

Parametri facoltativi per l'aggiornamento

Nome parametro Descrizione
--auto-upgrade-minor-version Proprietà booleana che specifica se la versione secondaria dell'estensione verrà aggiornata automaticamente o meno. Impostazione predefinita: true. Se questo parametro è impostato su true, non è possibile impostare il parametro version perché la versione verrà aggiornata in modo dinamico. Se impostato su false, l'estensione non verrà aggiornata automaticamente anche per le versioni della patch.
--version Versione dell'estensione da installare (versione specifica a cui aggiungere l'istanza dell'estensione). Non deve essere fornito se l'aggiornamento automatico-versione secondaria è impostato su true.
--configuration-settings Impostazioni che possono essere passate all'estensione per controllarne le funzionalità. È necessario specificare solo le impostazioni che richiedono un aggiornamento. Le impostazioni specificate verranno sostituite con i valori indicati. Passare i valori come coppie key=value separate da spazi dopo il nome del parametro. Se questo parametro viene usato nel comando, --configuration-settings-file non può essere usato nello stesso comando.
--configuration-settings-file Percorso al file JSON con coppie chiave-valore da usare per passare le impostazioni di configurazione all'estensione. Se questo parametro viene usato nel comando, --configuration-settings non può essere usato nello stesso comando.
--configuration-protected-settings Queste impostazioni non sono recuperabili tramite chiamate API GET o i comandi az k8s-extension show e vengono quindi usate per passare impostazioni sensibili. Quando si aggiorna un'impostazione, è previsto che siano specificate tutte le impostazioni. Se alcune impostazioni vengono omesse, tali impostazioni verranno considerate obsolete ed eliminate. Passare i valori come coppie key=value separate da spazi dopo il nome del parametro. Se questo parametro viene usato nel comando, --configuration-protected-settings-file non può essere usato nello stesso comando.
--configuration-protected-settings-file Percorso al file JSON con coppie chiave-valore da usare per passare le impostazioni sensibili all'estensione. Se questo parametro viene usato nel comando, --configuration-protected-settings non può essere usato nello stesso comando.
--scope Ambito dell'installazione per l'estensione - cluster o namespace
--release-train Gli autori delle estensioni possono pubblicare versioni in diversi training di rilascio, quali Stable, Preview e così via. Se questo parametro non è impostato in modo esplicito, Stable viene usato come predefinito. Questo parametro non può essere usato quando il parametro autoUpgradeMinorVersion è impostato su false.

Eliminare l'istanza dell'estensione

Per eliminare un'istanza di estensione in un cluster, usare k8s-extension-delete, inserendo i valori per i parametri obbligatori.

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

Nota

La risorsa di Azure che rappresenta questa estensione viene eliminata immediatamente. La versione Helm nel cluster associato a questa estensione viene eliminata solo quando gli agenti in esecuzione nel cluster Kubernetes hanno connettività di rete e possono contattare nuovamente i servizi di Azure per recuperare lo stato desiderato.

Passaggi successivi