Installare l'estensione Griglia di eventi nel cluster Kubernetes abilitato per Azure Arc

Questo articolo illustra la procedura per installare Griglia di eventi in un cluster Kubernetes abilitato per Azure Arc.

Per brevità, questo articolo si riferisce a "Griglia di eventi nell'estensione Kubernetes" come "Griglia di eventi in Kubernetes" o semplicemente "Griglia di eventi".

Importante

Griglia di eventi in Kubernetes con Azure Arc è attualmente disponibile in anteprima pubblica. Questa versione di anteprima viene messa a disposizione senza contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.

Distribuzioni di Kubernetes supportate

Di seguito sono riportate le distribuzioni Kubernetes supportate in cui è possibile distribuire ed eseguire Griglia di eventi.

  1. Distribuzioni Kubernetes supportate per il servizio Azure Kubernetes.
  2. RedHat OpenShift Container Platform.

Estensione Griglia di eventi

L'operazione che installa un'istanza del servizio Griglia di eventi in un cluster Kubernetes è la creazione di un'estensione del cluster Azure Arc, che distribuisce sia un broker di Griglia di eventi che un operatore griglia di eventi. Per altre informazioni sulla funzione del broker e dell'operatore, vedere Griglia di eventi nei componenti Kubernetes. La funzionalità dell'estensione del cluster Azure Arc fornisce la gestione del ciclo di vita usando le operazioni del piano di controllo di Azure Resource Manager (ARM) in Griglia di eventi distribuito nei cluster Kubernetes abilitati per Azure Arc.

Nota

La versione di anteprima del servizio supporta solo una singola istanza dell'estensione Griglia di eventi in un cluster Kubernetes perché l'estensione Griglia di eventi è attualmente definita come estensione con ambito cluster. Non è ancora disponibile alcun supporto per le distribuzioni con ambito spazio dei nomi per Griglia di eventi che consenta la distribuzione di più istanze in un cluster. Per altre informazioni, vedere Ambito dell'estensione.

Prerequisiti

Prima di procedere con l'installazione di Griglia di eventi, assicurarsi che siano soddisfatti i prerequisiti seguenti.

  1. Un cluster in esecuzione in una delle distribuzioni Kubernetes supportate.
  2. Una sottoscrizione di Azure.
  3. Certificati PKI da usare per stabilire una connessione HTTPS con il broker di Griglia di eventi.
  4. Connettere il cluster ad Azure Arc.

Ottenere assistenza

Se si verifica un problema, vedere la sezione Risoluzione dei problemi per informazioni sulle condizioni comuni. Se si verificano ancora problemi, creare una richiesta di supporto di Azure.

Requisiti del certificato PKI

Il broker di Griglia di eventi (server) serve due tipi di client. L'autenticazione server viene eseguita usando i certificati. L'autenticazione client viene eseguita usando certificati o chiavi di firma di accesso condiviso in base al tipo di client.

  • Gli operatori di Griglia di eventi che effettuano richieste del piano di controllo al broker di Griglia di eventi vengono autenticati usando i certificati.
  • Gli editori di Griglia di eventi che pubblicano eventi in un argomento di Griglia di eventi vengono autenticati con le chiavi di firma di accesso condiviso dell'argomento.

Per stabilire una comunicazione HTTPS sicura con il broker di Griglia di eventi e l'operatore Griglia di eventi, vengono usati i certificati PKI durante l'installazione dell'estensione griglia di eventi. Ecco i requisiti generali per questi certificati PKI:

  1. I certificati e le chiavi devono essere certificati X.509 e con codifica PEM.

  2. Per configurare il certificato broker di Griglia di eventi (server) durante l'installazione, è necessario specificare:

    1. Un certificato della CA
    2. Un certificato pubblico
    3. Una chiave privata
  3. Per configurare il certificato dell'operatore Griglia di eventi (client), è necessario specificare:

    1. Un certificato della CA
    2. Un certificato pubblico
    3. Una chiave privata

    I client di pubblicazione possono usare il certificato CA del gestore di Griglia di eventi per convalidare il server durante la pubblicazione di eventi in un argomento.

    Importante

    Anche se un dominio associato al client potrebbe avere più di un certificato pubblico emesso da autorità di certificazione diverse, Griglia di eventi in Kubernetes consente solo il caricamento di un singolo certificato della CA per i client durante l'installazione di Griglia di eventi. Di conseguenza, i certificati per l'operatore Griglia di eventi devono essere rilasciati (firmati) dalla stessa CA affinché la convalida della catena di certificati abbia esito positivo e venga stabilita correttamente una sessione TLS.

  4. Quando si configurano i nomi couni (CN) per i certificati server e client, assicurarsi che siano diversi da quello fornito per il certificato dell'autorità di certificazione.

    Importante

    Per le fasi iniziali del modello di verifica, i certificati autofirmati possono essere un'opzione, ma in generale i certificati PKI appropriati firmati da un'autorità di certificazione (CA) devono essere acquistati e usati.

Eseguire l'installazione usando il portale di Azure

  1. Nel portale di Azure cercare Azure Arc (campo in cima)

  2. Selezionare Cluster Kubernetes nel menu a sinistra nella sezione Infrastruttura

  3. Nell'elenco dei cluster individuare quello in cui si vuole installare Griglia di eventi e selezionarlo. Viene visualizzata la pagina Panoramica per il cluster.

    Selezionare il cluster Kubernetes

  4. Selezionare Estensioni nel gruppo Impostazioni nel menu a sinistra.

  5. Seleziona + Aggiungi. Viene visualizzata una pagina che mostra le estensioni Kubernetes di Azure Arc disponibili.

    Estensioni del cluster - Pulsante Aggiungi

  6. Nella pagina Nuova risorsa selezionare Griglia di eventi in Estensione Kubernetes.

    Selezionare Griglia di eventi nell'estensione Kubernetes

  7. Nella pagina Estensione Griglia di eventi in Kubernetes selezionare Crea.

    Selezionare Crea estensione Kubernetes

  8. Nella scheda Informazioni di base della pagina Installa Griglia di eventi seguire questa procedura.

    1. La sezione Dettagli progetto mostra i valori di sottoscrizione e gruppo di risorse di sola lettura perché le estensioni di Azure Arc vengono distribuite nella stessa sottoscrizione di Azure e nello stesso gruppo di risorse del cluster connesso in cui sono installate.

    2. Specificare un nome nel campo Nome dell'estensione Griglia di eventi. Questo nome deve essere univoco tra le altre estensioni di Azure Arc distribuite nello stesso cluster connesso di Azure Arc.

    3. Per Spazio dei nomi del rilascio, è possibile specificare il nome di uno spazio dei nomi Kubernetes in cui verranno distribuiti i componenti di Griglia di eventi. Ad esempio, potrebbe essere necessario avere un singolo spazio dei nomi per tutti i servizi abilitati per Azure Arc distribuiti nel cluster. Il valore predefinito è eventgrid-system. Se lo spazio dei nomi specificato non esiste, viene creato automaticamente.

    4. Nella sezione dettagli del Broker di Griglia di eventi viene visualizzato il tipo di servizio. Il broker di Griglia di eventi, ovvero il componente che espone gli endpoint dell'argomento a cui vengono inviati gli eventi, viene esposto come tipo di servizio Kubernetes ClusterIP. Di conseguenza, gli indirizzi IP assegnati a tutti gli argomenti usano lo spazio IP privato configurato per il cluster.

    5. Specificare il nome della classe di archiviazione che si vuole usare per il broker e supportata dalla distribuzione Kubernetes. Ad esempio, se si usa il servizio Azure Kubernetes, è possibile usare azurefile, che sfrutta l'archiviazione Standard di Azure. Per altre informazioni sulle classi di archiviazione predefinite supportate dal servizio Azure Kubernetes, vedere Classi di archiviazione nel servizio Azure Kubernetes. Se si usano altre distribuzioni Kubernetes, vedere la documentazione sulla distribuzione di Kubernetes per le classi di archiviazione predefinite supportate o il modo in cui è possibile fornire le proprie.

    6. Dimensioni di archiviazione. Il valore predefinito è 1 GiB. Prendere in considerazione la frequenza di inserimento quando si determinano le dimensioni dell'archiviazione. La frequenza di inserimento in MiB/secondo misurata come le dimensioni degli eventi in base alla frequenza di pubblicazione (eventi al secondo) in tutti gli argomenti del broker di Griglia di eventi è un fattore chiave durante l'allocazione dell'archiviazione. Gli eventi sono temporanei e, una volta recapitati, non esiste alcun consumo di archiviazione correlato. Anche se la frequenza di inserimento è un fattore principale per l'uso dell'archiviazione, non è l'unica. Anche i metadati che contengono la configurazione dell'argomento e della sottoscrizione di eventi utilizzano lo spazio di archiviazione, ma in genere ciò richiede una quantità inferiore di spazio di archiviazione rispetto agli eventi inseriti e recapitati da Griglia di eventi.

    7. Limite di memoria. Il valore predefinito è 1 GiB.

    8. Richiesta memoria. Il valore predefinito è 200 MiB. Questo campo non è modificabile.

      Installare l'estensione Griglia di eventi - Pagina Informazioni di base

    9. Selezionare Avanti: Configurazione nella parte inferiore della pagina.

  9. Nella scheda Configurazione della pagina Installa Griglia di eventi seguire questa procedura:

    1. Abilitare la comunicazione HTTP (non sicura). Selezionare questa casella se si vuole usare un canale non protetto quando i client comunicano con il broker di Griglia di eventi.

      Importante

      L'abilitazione di questa opzione fa sì che la comunicazione con il broker di Griglia di eventi usi HTTP come trasporto. Di conseguenza, qualsiasi client di pubblicazione e l'operatore Griglia di eventi non comunicheranno in modo sicuro con il broker di Griglia di eventi. È consigliabile usare questa opzione solo durante le fasi iniziali dello sviluppo.

    2. Se non è stata abilitata la comunicazione HTTP, selezionare ognuno dei file di certificato PKI acquistati e soddisfare i requisiti del certificato PKI.

      Installare l'estensione Griglia di eventi - Pagina di configurazione

    3. Selezionare Avanti: Monitoraggio nella parte inferiore della pagina.

  10. Nella scheda Monitoraggio della pagina Installa Griglia di eventi seguire questa procedura:

    1. Selezionare Abilita metriche (facoltativo). Se si seleziona questa opzione, Griglia di eventi in Kubernetes espone le metriche per gli argomenti e le sottoscrizioni di eventi usando il formato di esposizione Prometheus.

      Installare l'estensione Griglia di eventi - Pagina Monitoraggio

    2. Selezionare Avanti: Tag per passare alla pagina Tag.

  11. Nella pagina Tag seguire questa procedura:

    1. Definire i tag, se necessario.

      Installare l'estensione Griglia di eventi - Pagina Tag

    2. Selezionare Rivedi e crea nella parte inferiore della pagina.

  12. Nella scheda Rivedi e crea selezionare Crea.

    Installare l'estensione Griglia di eventi - Pagina Rivedi e crea

    Importante

    L'installazione di Griglia di eventi è un'operazione asincrona che potrebbe richiedere più tempo nel cluster Kubernetes rispetto all'ora in cui nel portale di Azure viene visualizzata una notifica per informare che la distribuzione è stata completata. Attendere almeno 5 minuti dopo aver visualizzato una notifica che indica che la distribuzione è stata completata prima di tentare di creare un percorso personalizzato (passaggio successivo). Se si ha accesso al cluster Kubernetes, in una sessione bash è possibile eseguire il comando seguente per verificare se i pod dell'operatore di Griglia di eventi e del gestore Griglia di eventi sono in stato In esecuzione, il che indicherà che l'installazione è stata completata:

    kubectl get pods -n \<release-namespace-name\>
    

    Di seguito è riportato l'output di esempio:

    NAME                                  READY   STATUS    RESTARTS   AGE
    eventgrid-broker-568f75976-wxkd2      1/1     Running   0          2m28s
    eventgrid-operator-6c4c6c675d-ttjv5   1/1     Running   0          2m28s    
    

    Importante

    È necessario creare un percorso personalizzato prima di tentare di distribuire gli argomenti di Griglia di eventi. Per creare un percorso personalizzato, è possibile selezionare la pagina Contesto nella parte inferiore 5 minuti dopo che viene visualizzata la notifica "La distribuzione è stata completata". In alternativa è possibile creare un percorso personalizzato usando il portale di Azure. Per altre informazioni, vedere la documentazione del percorso personalizzato.

  13. Al termine della distribuzione, sarà possibile visualizzare una voce nella pagina Estensioni con il nome specificato all'estensione Griglia di eventi. Se viene visualizzato In sospeso per Stato installazione, attendere alcuni minuti e quindi selezionare Aggiorna nella barra degli strumenti.

    Estensione Griglia di eventi - installata

Eseguire l'installazione con l'interfaccia della riga di comando di Azure

  1. Avviare una sessione shell. È possibile avviare una sessione nel computer oppure aprire un browser per https://shell.azure.com.

  2. Creare il file di configurazione protected-settings-extension.json. Questo file viene passato come parametro durante la creazione dell'estensione Griglia di eventi.

    Nel comando seguente e in ognuna delle righe di configurazione sostituire filename con il nome che contiene il certificato pubblico, il certificato della CA o la chiave per l'operatore (client) o broker (server), a seconda dei casi. Tutti i certificati forniti devono essere codificati in base64 senza ritorno a capo automatico. Da qui abbiamo l'uso del comando base64 --wrap=0.

    echo "{ 
        \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 <filename> --wrap=0)\",
        \"eventgridoperator.identityCert.base64EncodedIdentityKey\":\"$(base64 <filename> --wrap=0)\",
        \"eventgridoperator.identityCert.base64EncodedIdentityCaCert\":\"$(base64 <filename> --wrap=0)\",
        \"eventgridbroker.service.tls.base64EncodedServerCert\":  \"$(base64 <filename> --wrap=0)\" ,
        \"eventgridbroker.service.tls.base64EncodedServerKey\":  \"$(base64 <filename> --wrap=0)\" ,
        \"eventgridbroker.service.tls.base64EncodedServerCaCert\":  \"$(base64 <filename> --wrap=0)\" 
    }" > protected-settings-extension.json 
    

    Ad esempio, se il certificato pubblico per il broker (primo elemento di configurazione precedente) viene chiamato client.cer, la prima riga di configurazione dovrebbe essere simile alla seguente:

    \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 client.cer --wrap=0)\",    
    
  3. Creare il file di configurazione settings-extension.json. Questo file viene passato come parametro durante la creazione dell'estensione Griglia di eventi.

    Importante

    Non è possibile modificare i valori per ServiceAccount e serviceType. Durante la versione di anteprima, l'unico tipo di servizio Kubernetes supportato è ClusterIP.

    Per storageClassName fornire la classe di archiviazione che si vuole usare per il broker e supportata dalla distribuzione Kubernetes. Ad esempio, se si usa il servizio Azure Kubernetes, è possibile usare azurefile , che sfrutta l'archiviazione Standard di Azure. Per altre informazioni sulle classi di archiviazione predefinite supportate dal servizio Azure Kubernetes, vedere Classi di archiviazione nel servizio Azure Kubernetes. Se si usano altre distribuzioni Kubernetes, vedere la documentazione sulla distribuzione di Kubernetes per le classi di archiviazione predefinite supportate o il modo in cui è possibile fornire le proprie.

    Impostare reporterType su prometheus per abilitare le metriche per gli argomenti e le sottoscrizioni di eventi usando il formato di esposizione Prometheus.

    Importante

    Nella versione di anteprima, l'uso di un client Prometheus è l'unico meccanismo supportato per ottenere le metriche.

    echo "{
        \"Microsoft.CustomLocation.ServiceAccount\":\"eventgrid-operator\",
        \"eventgridbroker.service.serviceType\": \"ClusterIP\",
        \"eventgridbroker.dataStorage.storageClassName\": \"<storage_class_name>\",
        \"eventgridbroker.diagnostics.metrics.reporterType\":\"prometheus\"
    }" > settings-extension.json
    
  4. Creare un'estensione Kubernetes che installa i componenti di Griglia di eventi nel cluster.

    Per i parametri cluster-name e resource-group, è necessario usare gli stessi nomi specificati quando si è connesso il cluster ad Azure Arc.

    release-namespace è lo spazio dei nomi in cui verranno distribuiti i componenti di Griglia di eventi. Il valore predefinito è eventgrid-system. Specificare un valore per eseguire l'override dei valori predefiniti. Ad esempio, potrebbe essere necessario avere un singolo spazio dei nomi per tutti i servizi abilitati per Azure Arc distribuiti nel cluster. Se lo spazio dei nomi specificato non esiste, viene creato automaticamente.

    Importante

    Durante la versione di anteprima, cluster è l'unico ambito supportato durante la creazione o l'aggiornamento di un'estensione di Griglia di eventi. Ciò significa che il servizio supporta solo una singola istanza dell'estensione Griglia di eventi in un cluster Kubernetes. Non è ancora disponibile alcun supporto per le distribuzioni con ambito spazio dei nomi. Per altre informazioni, vedere Ambito dell'estensione.

    az k8s-extension create \
        --cluster-type connectedClusters \
        --cluster-name <connected_cluster_name> \
        --resource-group <resource_group_of_connected_cluster> \
        --name <event_grid_extension_name> \
        --extension-type Microsoft.EventGrid \
        --scope cluster \
        --auto-upgrade-minor-version true \
        --release-train Stable \
        --release-namespace <namespace_name> \
        --configuration-protected-settings-file protected-settings-extension.json \
        --configuration-settings-file settings-extension.json    
    

    Per altre informazioni sul comando dell'interfaccia della riga di comando, vedere az k8s-extension create. Si noti che è possibile usare il parametro --config-file per passare il nome di un file json contenente le informazioni di configurazione correlate a Griglia di eventi. Per supportare HTTP, includere l'impostazione seguente.

    "eventgridbroker.service.supportedProtocols[0]": "http" 
    

    Ecco un esempio settings-extension.json con l'impostazione precedente.

    {
        "Microsoft.CustomLocation.ServiceAccount": "eventgrid-operator",
        "eventgridbroker.service.serviceType": "ClusterIP",
        "eventgridbroker.service.supportedProtocols[0]": "http",
        "eventgridbroker.dataStorage.storageClassName": "default",
        "eventgridbroker.diagnostics.metrics.reporterType": "prometheus"
    }    
    
  5. Verificare che l'estensione Griglia di eventi sia stata installata correttamente.

    az k8s-extension show  --cluster-type connectedClusters --cluster-name <connected_cluster_name> --resource-group <resource_group_of_connected_cluster> --name <event_grid_extension_name>
    

    La proprietà installedState deve essere Installed se i componenti dell'estensione Griglia di eventi vengono distribuiti correttamente.

Posizione personalizzata

Importante

È necessario creare un percorso personalizzato prima di tentare di distribuire gli argomenti di Griglia di eventi. È possibile creare un percorso personalizzato usando il portale di Azure.

Risoluzione dei problemi

Problemi del cluster di connessione ad Azure Arc

Problema: quando si passa ad Azure Arc e si seleziona Cluster Kubernetes nel menu a sinistra, la pagina visualizzata non mostra il cluster Kubernetes in cui si intende installare Griglia di eventi.

Risoluzione: il cluster Kubernetes non è registrato in Azure. Seguire i passaggi nell'articolo Connettere un cluster Kubernetes esistente ad Azure Arc. In caso di problemi durante questo passaggio, inviare una richiesta di supporto al team di Kubernetes abilitato per Azure Arc.

Problemi dell'estensione Griglia di eventi

Problema: quando si tenta di installare un'estensione di Griglia di eventi, viene visualizzato il messaggio seguente: "operazione non valida - Un'istanza di Griglia di eventi è già stata installata in questo cluster Kubernetes connesso. L'estensione Griglia di eventi ha come ambito il livello di cluster, il che significa che è possibile installare una sola istanza in un cluster".

Spiegazione: la Griglia di eventi è già installata. La versione di anteprima di Griglia di eventi supporta solo un'istanza dell'estensione Griglia di eventi distribuita in un cluster.

Passaggi successivi

Creare un percorso personalizzato e quindi seguire le istruzioni nella guida introduttiva Indirizzare gli eventi cloud ai webhook con Griglia di eventi di Azure in Kubernetes.