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 fa riferimento 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 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 Condizioni supplementari per l'utilizzo 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 dal 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 di Griglia di eventi. Per altre informazioni sulla funzione del broker e dell'operatore, vedere Griglia di eventi nei componenti di Kubernetes. La funzionalità di estensione del cluster Di Azure Arc offre la gestione del ciclo di vita usando le operazioni del piano di controllo di Azure Resource Manager (ARM) in Griglia di eventi distribuite 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 il supporto per le distribuzioni con ambito spazio dei nomi per Griglia di eventi che consente 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 tecnico di Azure.

Requisiti del certificato PKI

Il broker 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 tramite certificati.
  • Gli editori di Griglia di eventi che eseguono l'pubblicazione di 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, si usano 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 per la posta elettronica avanzata per la privacy.

  2. Per configurare il certificato broker (server) di Griglia di eventi 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 di 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 broker 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 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 configura il nome comune (CN) per i certificati server e client, assicurarsi che siano diversi dal nome comune 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 con portale di Azure

  1. Nella portale di Azure cercare Azure Arc (campo in alto)

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

  3. Nell'elenco dei cluster individuare quello a 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. Selezionare + Aggiungi. Viene visualizzata una pagina che mostra le estensioni Di Azure Arc Kubernetes disponibili.

    Estensioni del cluster - Pulsante Aggiungi

  6. Nella pagina Nuova risorsa selezionare Griglia di eventi nell'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. La 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 ad Azure Arc.

    3. Per lo spazio dei nomi Release, è 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 broker 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 supportato dalla distribuzione kubernetes. Ad esempio, se si usa il servizio Azure Kubernetes, è possibile usare azurefile, che usa 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 dello spazio di archiviazione. La frequenza di inserimento in MiB al secondo misurata come dimensione degli eventi raggiunge la 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 per tali eventi. Anche se la frequenza di inserimento è un driver principale per l'uso dell'archiviazione, non è l'unica. I metadati che contengono la configurazione dell'argomento e della sottoscrizione di eventi usano anche lo spazio di archiviazione, ma che in genere 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 di 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 griglia di eventi.

      Importante

      L'abilitazione di questa opzione rende la comunicazione con il broker griglia di eventi per l'uso di HTTP come trasporto. Pertanto, qualsiasi client di pubblicazione e l'operatore Griglia di eventi non comunicano in modo sicuro con il broker griglia di eventi. È consigliabile usare questa opzione solo durante le prime fasi 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 argomenti e sottoscrizioni di eventi usando il formato di esposizione Prometheus.

      Installare l'estensione Griglia di eventi - Pagina di monitoraggio

    2. Selezionare Avanti: i 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 - Rivedere e creare una pagina

    Importante

    L'installazione di Griglia di eventi è un'operazione asincrona che può essere eseguita più a lungo nel cluster Kubernetes rispetto al momento in cui viene visualizzata una notifica nel portale di Azure che informa che la distribuzione è stata completata. Attendere almeno 5 minuti dopo aver visualizzato una notifica che "La distribuzione è stata completata" prima di tentare di creare una posizione personalizzata (passaggio successivo). Se si ha accesso al cluster Kubernetes, in una sessione bash è possibile eseguire il comando seguente per convalidare se i pod dell'operatore Griglia di eventi e Griglia di eventi sono in stato in esecuzione, che indicare che l'installazione è stata completata:

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

    Ecco 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 una posizione personalizzata prima di tentare di distribuire gli argomenti di Griglia di eventi. Per creare una posizione personalizzata, è possibile selezionare la pagina Contesto nella parte inferiore di 5 minuti dopo la visualizzazione della notifica "La distribuzione è completata". In alternativa, è possibile creare una posizione personalizzata usando il portale di Azure. Per altre informazioni, vedere la documentazione relativa alla posizione personalizzata.

  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 lo stato di installazione, attendere alcuni minuti e quindi selezionare Aggiorna sulla barra degli strumenti.

    Estensione griglia di eventi - installata

Installare con l'interfaccia della riga di comando di Azure

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

  2. Creare un file di protected-settings-extension.jsonconfigurazione . 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 CA o la chiave per l'operatore (client) o broker (server), di conseguenza. Tutti i certificati forniti devono essere codificati in base64 senza un wrapping della riga. Di conseguenza, l'uso base64 --wrap=0 del comando.

    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 a quella seguente:

    \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 client.cer --wrap=0)\",    
    
  3. Creare un file di settings-extension.jsonconfigurazione . 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 che è supportata dalla distribuzione kubernetes. Ad esempio, se si usa il servizio Azure Kubernetes, è possibile usare azurefile , che usa 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 di Kubernetes, vedere la documentazione relativa alla distribuzione di Kubernetes per le classi di archiviazione predefinite supportate o il modo in cui è possibile fornire i propri.

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

    Importante

    Durante la versione di anteprima, l'uso di un client Prometheus è l'unico meccanismo supportato per ottenere 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 cluster-name parametri e resource-group, è necessario usare gli stessi nomi specificati quando si è connessi il cluster ad Azure Arc.

    release-namespace è lo spazio dei nomi in cui verranno distribuiti i componenti griglia di eventi. Il valore predefinito è eventgrid-system. È possibile specificare un valore per eseguire l'override del valore predefinito. Ad esempio, potrebbe essere necessario disporre di 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 per l'utente.

    Importante

    Durante la versione cluster di anteprima è l'unico ambito supportato durante la creazione o l'aggiornamento di un'estensione 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 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 --config-file parametro per passare il nome di un file json che contiene 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 installedState proprietà deve essere Installed se i componenti dell'estensione griglia di eventi sono stati distribuiti correttamente.

Posizione personalizzata

Importante

È necessario creare una posizione personalizzata prima di tentare di distribuire gli argomenti di Griglia di eventi. È possibile creare una posizione personalizzata usando il portale di Azure.

Risoluzione dei problemi

Problemi del cluster di Azure Arc connect

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 con Azure. Seguire la procedura descritta nell'articolo Connettere un cluster Kubernetes esistente ad Azure Arc. Se si verifica un problema durante questo passaggio, inviare una richiesta di supporto con il team Kubernetes abilitato per Azure Arc.

Problemi di estensione griglia di eventi

Problema: quando si tenta di installare un'estensione 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 è con ambito a livello di cluster, il che significa che è possibile installare un'unica istanza in un cluster.

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

Passaggi successivi

Creare una posizione personalizzata e quindi seguire le istruzioni riportate negli eventi cloud di avvio rapido in Webhook con Griglia di eventi di Azure in Kubernetes.