Creare e gestire percorsi personalizzati in Kubernetes abilitato per Azure Arc

La funzionalità percorsi personalizzati consente agli amministratori di tenant o cluster di configurare i cluster Kubernetes abilitati per Azure Arc come percorsi di destinazione per la distribuzione di istanze di offerte di Azure. Esempi di offerte di Azure che possono essere distribuite in posizioni personalizzate includono database, ad esempio Istanza gestita di SQL abilitati da Azure Arc e dal server PostgreSQL abilitato per Azure Arc o istanze di applicazioni, ad esempio servizio app, Funzioni, Griglia di eventi, App per la logica e Gestione API.

Una posizione personalizzata ha un mapping uno-a-uno a uno di uno spazio dei nomi all'interno del cluster Kubernetes abilitato per Azure Arc. La risorsa di Azure per la posizione personalizzata combinata con il controllo degli accessi in base al ruolo di Azure può essere usata per concedere autorizzazioni granulari agli sviluppatori di applicazioni o agli amministratori di database, consentendo loro di distribuire risorse come database o istanze dell'applicazione nei cluster Kubernetes abilitati per Arc in modo multi-tenant.

Una panoramica concettuale di questa funzionalità è disponibile in Percorsi personalizzati - Kubernetes abilitato per Azure Arc.

In questo articolo vengono illustrate le operazioni seguenti:

  • Abilitare percorsi personalizzati nel cluster Kubernetes abilitato per Azure Arc.
  • Creare una posizione personalizzata.

Prerequisiti

  • Installare o aggiornare l'interfaccia della riga di comando di Azure alla versione più recente.

  • Installare le versioni più recenti delle estensioni dell'interfaccia della riga di comando di Azure seguenti:

    • connectedk8s

    • k8s-extension

    • customlocation

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

      Se sono già state installate le connectedk8sestensioni , k8s-extensione customlocation , eseguire l'aggiornamento alla versione più recente usando il comando seguente:

      az extension update --name connectedk8s
      az extension update --name k8s-extension
      az extension update --name customlocation
      
  • Verificare la registrazione del provider completata per Microsoft.ExtendedLocation.

    1. Immettere i comandi seguenti:

      az provider register --namespace Microsoft.ExtendedLocation
      
    2. Monitorare il processo di registrazione. La registrazione può richiedere fino a 10 minuti.

      az provider show -n Microsoft.ExtendedLocation -o table
      

      Dopo la registrazione, lo RegistrationState stato avrà il Registered valore .

  • Verificare che esista già un cluster connesso Kubernetes abilitato per Azure Arc.

Abilitare percorsi personalizzati nel cluster

Se si è connessi all'interfaccia della riga di comando di Azure come utente di Microsoft Entra, per abilitare questa funzionalità nel cluster, eseguire il comando seguente:

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

Se si esegue il comando precedente durante l'accesso all'interfaccia della riga di comando di Azure usando un'entità servizio, è possibile osservare l'avviso seguente:

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

Ciò è dovuto al fatto che un'entità servizio non dispone delle autorizzazioni necessarie per ottenere informazioni sull'applicazione usata dal servizio Azure Arc. Per evitare questo errore, completare la procedura seguente:

  1. Accedere all'interfaccia della riga di comando di Azure usando l'account utente. Recuperare l'oggetto objectId o id dell'applicazione Microsoft Entra usata dal servizio Azure Arc. Il comando usato dipende dalla versione dell'interfaccia della riga di comando di Azure.

    Se si usa una versione dell'interfaccia della riga di comando di Azure precedente alla 2.37.0, usare il comando seguente:

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query objectId -o tsv
    

    Se si usa l'interfaccia della riga di comando di Azure versione 2.37.0 o successiva, usare invece il comando seguente:

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  2. Accedere all'interfaccia della riga di comando di Azure con l'entità servizio. Usare il <objectId> valore o id del passaggio precedente per abilitare percorsi personalizzati nel cluster:

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

Nota

La funzionalità percorsi personalizzati dipende dalla funzionalità Cluster Connessione. Entrambe le funzionalità devono essere abilitate per il funzionamento di posizioni personalizzate.

az connectedk8s enable-features deve essere eseguito in un computer in cui il kubeconfig file punta al cluster in cui devono essere abilitate le funzionalità.

Creare un percorso personalizzato

  1. Distribuire l'estensione per il cluster del servizio di Azure dell'istanza del servizio di Azure che si vuole installare nel cluster:

  2. Ottenere l'identificatore di Azure Resource Manager del cluster Kubernetes abilitato per Azure Arc, a cui nei passaggi successivi si fa riferimento come connectedClusterId:

    az connectedk8s show -n <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  3. Ottenere l'identificatore di Azure Resource Manager dell'estensione cluster distribuita sopra il cluster Kubernetes abilitato per Azure Arc, a cui si fa riferimento nei passaggi successivi come extensionId:

    az k8s-extension show --name <extensionInstanceName> --cluster-type connectedClusters -c <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  4. Creare la posizione personalizzata facendo riferimento al cluster Kubernetes abilitato per Azure Arc e all'estensione :

    az customlocation create -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds> 
    
    • Parametri obbligatori:

      Nome parametro Descrizione
      --name, --n Nome della posizione personalizzata
      --resource-group, --g Gruppo di risorse della posizione personalizzata
      --namespace Spazio dei nomi nel cluster associato alla posizione personalizzata creata
      --host-resource-id Identificatore di Azure Resource Manager del cluster Kubernetes abilitato per Azure Arc (cluster connesso)
      --cluster-extension-ids Identificatori di Azure Resource Manager delle istanze dell'estensione del cluster installate nel cluster connesso. Specificare un elenco separato da spazi con gli ID dell'estensione del cluster
    • Parametri facoltativi:

      Nome parametro Descrizione
      --location, --l Posizione della risorsa di Azure Resource Manager della posizione personalizzata in Azure. Per impostazione predefinita, verrà impostato sul percorso del cluster connesso
      --tags Elenco delimitato da spazi dei tag: key[=value] [key[=value] ...]. Usare '' per cancellare i tag esistenti
      --kubeconfig kubeconfig Amministrazione del cluster

Mostra i dettagli di una posizione personalizzata

Per visualizzare i dettagli di una posizione personalizzata, usare il comando seguente:

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

Parametri obbligatori:

Nome parametro Descrizione
--name, --n Nome della posizione personalizzata
--resource-group, --g Gruppo di risorse della posizione personalizzata

Elencare i percorsi personalizzati

Per elencare tutte le posizioni personalizzate in un gruppo di risorse, usare il comando seguente:

az customlocation list -g <resourceGroupName> 

Parametri obbligatori:

Nome parametro Descrizione
--resource-group, --g Gruppo di risorse della posizione personalizzata

Aggiornare un percorso personalizzato

Usare il update comando per aggiungere nuovi tag o associare nuovi ID di estensione del cluster alla posizione personalizzata mantenendo i tag esistenti e le estensioni del cluster associate. --cluster-extension-ids, --tags, assign-identity può essere aggiornato.

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

Parametri obbligatori:

Nome parametro Descrizione
--name, --n Nome della posizione personalizzata
--resource-group, --g Gruppo di risorse della posizione personalizzata
--namespace Spazio dei nomi nel cluster associato alla posizione personalizzata creata
--host-resource-id Identificatore di Azure Resource Manager del cluster Kubernetes abilitato per Azure Arc (cluster connesso)

Parametri facoltativi:

Nome parametro Descrizione
--cluster-extension-ids Associare nuove estensioni del cluster a questa posizione personalizzata specificando gli identificatori di Azure Resource Manager delle istanze dell'estensione del cluster installate nel cluster connesso. Specificare un elenco separato da spazi con gli ID dell'estensione del cluster
--tags Aggiungere nuovi tag oltre ai tag esistenti. Elenco delimitato da spazi dei tag: key[=value] [key[=value] ...].

Applicare patch a una posizione personalizzata

Usare il patch comando per sostituire tag esistenti, ID estensione del cluster con nuovi tag e ID estensione del cluster. --cluster-extension-ids, assign-identity, --tags può essere patchato.

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

Parametri obbligatori:

Nome parametro Descrizione
--name, --n Nome della posizione personalizzata
--resource-group, --g Gruppo di risorse della posizione personalizzata

Parametri facoltativi:

Nome parametro Descrizione
--cluster-extension-ids Associare nuove estensioni del cluster a questa posizione personalizzata specificando gli identificatori di Azure Resource Manager delle istanze dell'estensione del cluster installate nel cluster connesso. Specificare un elenco separato da spazi con gli ID dell'estensione del cluster
--tags Aggiungere nuovi tag oltre ai tag esistenti. Elenco delimitato da spazi dei tag: key[=value] [key[=value] ...].

Eliminare una posizione personalizzata

Per eliminare un percorso personalizzato, usare il comando seguente:

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

Parametri obbligatori:

Nome parametro Descrizione
--name, --n Nome della posizione personalizzata
--resource-group, --g Gruppo di risorse della posizione personalizzata

Risoluzione dei problemi

Se la creazione del percorso personalizzato non riesce e viene visualizzato l'errore "Si è verificato un errore proxy sconosciuto", potrebbe essere dovuto a criteri di rete configurati per impedire la comunicazione interna da pod a pod.

Per risolvere questo problema, modificare i criteri di rete per consentire la comunicazione interna da pod a pod all'interno dello spazio dei azure-arc nomi. Assicurarsi di aggiungere anche lo azure-arc spazio dei nomi come parte dell'elenco di esclusione no-proxy per i criteri configurati.

Passaggi successivi