Condividi tramite


Creare e gestire percorsi personalizzati in Kubernetes abilitato per Azure Arc

La funzionalità posizioni personalizzate, offre un modo per configurare i cluster Kubernetes abilitati per Azure Arc come posizioni di destinazione per la distribuzione di istanze delle offerte di Azure. Esempi di offerte di Azure che possono essere distribuite in posizioni personalizzate includono database, ad esempio Istanza gestita di SQL abilitata da Azure Arc e dal server PostgreSQL abilitato per Azure Arc o istanze dell'applicazione, ad esempio Servizi app, Funzioni, Griglia di eventi, App per la logica e Gestione API.

Una posizione personalizzata ha un mapping uno-a-uno a 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 implementare risorse come database o istanze dell'applicazione nei cluster Kubernetes abilitati per Arc in un ambiente multi-tenant.

Questo articolo illustra come abilitare posizioni personalizzate in un cluster Kubernetes abilitato per Arc e come crearne una.

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 estensioni connectedk8s, k8s-extensione customlocation, eseguire l'aggiornamento all’ultima versione 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 stato RegistrationState avrà il valore Registered.

  • Verificare di disporre di un cluster connesso Kubernetes abilitato per Azure Arc e di aggiornare gli agenti all’ultima versione. Verificare che nel computer in cui verranno eseguiti i comandi descritti in questo articolo sia presente un file kubeconfig che punta a questo cluster.

Abilitare le posizioni personalizzate nel cluster

Suggerimento

La funzionalità Posizioni personalizzate dipende dalla funzionalità Connessione del cluster. Entrambe le funzionalità devono essere abilitate nel cluster per il funzionamento di posizioni personalizzate. Per abilitare la funzionalità delle posizioni personalizzate, seguire questa procedura:

Se si è connessi all'interfaccia della riga di comando di Azure come utente di Microsoft Entra, usare 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.

Questo avviso si verifica perché l'entità servizio non dispone delle autorizzazioni necessarie per recuperare oid (ID oggetto) della posizione personalizzata usata dal servizio Azure Arc. Per evitare questo errore, seguire questa procedura:

  1. Accedere all'interfaccia della riga di comando di Azure con l'account utente.

  2. Eseguire il comando seguente per recuperare oid (ID oggetto) della posizione personalizzata, dove --id è predefinito e impostato su bc313c14-388c-4e7d-a58e-70017303ee3b:

    Importante Copiare ed eseguire il comando esattamente come illustrato di seguito. Non sostituire il valore passato al parametro --id con un valore diverso.

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. Accedere all'interfaccia della riga di comando di Azure con l'entità servizio. Eseguire il comando seguente per abilitare la funzionalità delle posizioni personalizzate nel cluster, usando oid (ID oggetto) del passaggio precedente per il parametro --custom-locations-oid:

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

Crea una località personalizzata

  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 del cluster distribuita nel cluster Kubernetes abilitato per Azure Arc, a cui nei passaggi successivi si fa riferimento 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 <extensionId> 
    
    • 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. Per più estensioni, specificare un elenco separato da spazi di ID estensione del cluster
    • Parametri facoltativi:

      Nome parametro Descrizione
      --location, --l Posizione della risorsa di Azure Resource Manager della posizione personalizzata in Azure. Se non specificato, viene usata la posizione del cluster connesso.
      --tags Elenco di tag delimitato da spazi nel formato key[=value]. Usare '' per cancellare tag esistenti.
      --kubeconfig Amministratore kubeconfig 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> 

Elenco di posizioni personalizzate

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

az customlocation list -g <resourceGroupName> 

Aggiorna una posizione personalizzata

Usare il comando update per aggiungere nuovi valori per --tags o associare nuovi --cluster-extension-ids alla posizione personalizzata, mantenendo i valori esistenti per i tag e le estensioni del cluster associate.

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

Applicare patch a una posizione personalizzata

Usare il comando patch per sostituire i valori esistenti per --cluster-extension-ids o --tags. I valori precedenti non vengono mantenuti.

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

Elimina una posizione personalizzata

Per eliminare una posizione personalizzata, usare il comando seguente:

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

Risoluzione dei problemi

Se la creazione di posizioni personalizzate ha esito negativo con l'errore Unknown proxy error occurred, modificare i criteri di rete per consentire la comunicazione interna da pod a pod all'interno dello spazio dei nomi azure-arc. Assicurarsi di aggiungere anche lo spazio dei nomi azure-arc come parte dell'elenco di esclusione no-proxy per i criteri configurati.

Passaggi successivi