Condividi tramite


Gestione comunicazioni del servizio Azure Kubernetes

Il Gestore delle Comunicazioni di Azure Kubernetes Service (AKS) semplifica le notifiche per tutte le attività di manutenzione dell'AKS utilizzando le notifiche delle risorse di Azure e i framework di Azure Resource Graph. Questo strumento consente di monitorare attentamente gli aggiornamenti perché fornisce avvisi tempestivi sui trigger e sui risultati degli eventi. Se la manutenzione ha esito negativo, informa l'utente con i motivi dell'errore, riducendo i problemi operativi correlati all'osservabilità e ai follow-up. È possibile configurare le notifiche per tutti i tipi di aggiornamento automatico che utilizzano finestre di manutenzione seguendo questa procedura.

Prerequisiti

Annotazioni

Dopo la configurazione di Communication Manager, invia avvisi di anticipo una settimana prima dell'inizio della manutenzione e un giorno prima dell'avvio della manutenzione. Invia inoltre avvisi tempestivi durante l'operazione di manutenzione.

Configurare Gestore delle Comunicazioni

  1. Passare alla risorsa, selezionare Monitoraggio, selezionare Avvisi e quindi regole di avviso.

  2. Nella scheda Condizione , per Nome segnale, selezionare Ricerca log personalizzata.

    Screenshot che mostra la ricerca log personalizzata nel riquadro delle regole di avviso.

  3. Nella casella Cerca query incollare una delle query personalizzate seguenti e quindi selezionare il pulsante Rivedi e crea .

    La query seguente riguarda le notifiche di aggiornamento automatico del cluster:

     arg("").containerserviceeventresources
        | where type == "microsoft.containerservice/managedclusters/scheduledevents"
        | where id contains "/subscriptions/subid/resourcegroups/rgname/providers/Microsoft.ContainerService/managedClusters/clustername"
        | where properties has "eventStatus"
        | extend status = substring(properties, indexof(properties, "eventStatus") + strlen("eventStatus") + 3, 50)
        | extend status = substring(status, 0, indexof(status, ",") - 1)
        | where status != ""
        | where properties has "eventDetails"
        | extend upgradeType = case(
                                   properties has "K8sVersionUpgrade",
                                   "K8sVersionUpgrade",
                                   properties has "NodeOSUpgrade",
                                   "NodeOSUpgrade",
                                   status == "Completed" or status == "Failed",
                                   case(
            properties has '"type":1',
            "K8sVersionUpgrade",
            properties has '"type":2',
            "NodeOSUpgrade",
            ""
        ),
                                   ""
                               )
        | where properties has "lastUpdateTime"
        | extend eventTime = substring(properties, indexof(properties, "lastUpdateTime") + strlen("lastUpdateTime") + 3, 50)
        | extend eventTime = substring(eventTime, 0, indexof(eventTime, ",") - 1)
        | extend eventTime = todatetime(tostring(eventTime))
        | where eventTime >= ago(2h)
        | where upgradeType == "K8sVersionUpgrade"
        | project
            eventTime,
            upgradeType,
            status,
            properties
        | order by eventTime asc
    

    La query seguente riguarda le notifiche di aggiornamento automatico del sistema operativo node:

     arg("").containerserviceeventresources
        | where type == "microsoft.containerservice/managedclusters/scheduledevents"
        | where id contains "/subscriptions/subid/resourcegroups/rgname/providers/Microsoft.ContainerService/managedClusters/clustername"
        | where properties has "eventStatus"
        | extend status = substring(properties, indexof(properties, "eventStatus") + strlen("eventStatus") + 3, 50)
        | extend status = substring(status, 0, indexof(status, ",") - 1)
        | where status != ""
        | where properties has "eventDetails"
        | extend upgradeType = case(
                                   properties has "K8sVersionUpgrade",
                                   "K8sVersionUpgrade",
                                   properties has "NodeOSUpgrade",
                                   "NodeOSUpgrade",
                                   status == "Completed" or status == "Failed",
                                   case(
            properties has '"type":1',
            "K8sVersionUpgrade",
            properties has '"type":2',
            "NodeOSUpgrade",
            ""
        ),
                                   ""
                               )
        | where properties has "lastUpdateTime"
        | extend eventTime = substring(properties, indexof(properties, "lastUpdateTime") + strlen("lastUpdateTime") + 3, 50)
        | extend eventTime = substring(eventTime, 0, indexof(eventTime, ",") - 1)
        | extend eventTime = todatetime(tostring(eventTime))
        | where eventTime >= ago(2h)
        | where upgradeType == "K8sVersionUpgrade"
        | project
            eventTime,
            upgradeType,
            status,
            properties
        | order by eventTime asc
    
  4. L'intervallo deve essere di 30 minuti e la soglia deve essere 1.

  5. Assicurarsi che esista un gruppo di azioni con l'indirizzo di posta elettronica corretto, in modo da poter ricevere le notifiche.

  6. Assicurarsi di assegnare il ruolo Lettura al gruppo di risorse e alla sottoscrizione per l'identità gestita della regola di avviso di ricerca nei log.

  7. Passare alla regola di avviso: Impostazioni>Identità>Identità gestita assegnata da sistema>Assegnazioni dei ruoli Azure>Aggiungi assegnazione ruolo.

  8. Selezionare il ruolo Lettore e assegnarlo al gruppo di risorse. Ripeti l'operazione Aggiungi assegnazione di ruolo per la sottoscrizione.

Verifica

Per aggiornare il cluster, attendere l'avvio del programma di aggiornamento automatico. Verificare quindi di ricevere tempestivamente avvisi sul messaggio di posta elettronica configurato per ricevere notifiche.

Controllare il database di Azure Resource Graph per il record di notifica pianificato. Ogni notifica di evento pianificata deve essere elencata come un record nella containerserviceeventresources tabella.

Screenshot che mostra come cercare Azure Resource Graph.