Compartir a través de


Configuración del administrador de comunicaciones de Azure Kubernetes Service

El administrador de comunicación de Azure Kubernetes Service (AKS) simplifica las notificaciones de todas las tareas de mantenimiento de AKS mediante notificaciones de recursos de Azure y marcos de Azure Resource Graph. El administrador de comunicaciones proporciona alertas oportunas sobre desencadenadores de eventos y resultados, de modo que pueda supervisar estrechamente las actualizaciones.

Si se produce un error en el mantenimiento, el administrador de comunicaciones le notifica los motivos del error. Esta información reduce las molestias operativas relacionadas con la observabilidad y los seguimientos.

Siguiendo los pasos de este artículo, puede configurar notificaciones para todos los tipos de actualizaciones automáticas que usan ventanas de mantenimiento.

Requisitos previos

Configuración del administrador de comunicaciones

  1. En Azure Portal, vaya al recurso.

  2. Seleccione Supervisión>Alertas>Reglas de alertas, y a continuación, seleccione Crear.

  3. En la pestaña Condición , en Nombre de señal, seleccione Búsqueda de registros personalizada.

    Captura de pantalla que muestra la selección de una búsqueda de registros personalizada en el panel para crear una regla de alertas.

  4. En el cuadro Buscar consulta , pegue una de las siguientes consultas personalizadas. Asegúrese de actualizar la ruta de acceso where id contains para hacer referencia a sus recursos para el id. de suscripción, el nombre del grupo de recursos y el nombre del clúster.

    La consulta siguiente es para notificaciones de actualizaciones automáticas para clústeres:

    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",
                               ""
                           )
    | extend details = parse_json(tostring(properties.eventDetails))
    | 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(30m) // Ensure this matches aggregation granularity & frequency
    | where upgradeType == "K8sVersionUpgrade"
    | project
        eventTime,
        upgradeType,
        status,
        properties,
        name,
        details
    | order by eventTime asc
    

    La consulta siguiente es para las notificaciones de actualizaciones automáticas para NodeOS:

    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",
                               ""
                           )
    | extend details = parse_json(tostring(properties.eventDetails))
    | 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(30m) // Ensure this matches aggregation granularity & frequency
    | where upgradeType == "NodeOSUpgrade"
    | project
        eventTime,
        upgradeType,
        status,
        properties,
        name,
        details
    | order by eventTime asc
    
  5. Vaya a la pestaña Condición . Configure las condiciones de alerta con los valores siguientes:

    • Medida: seleccione Filas de tabla.
    • Tipo de agregación: seleccione Recuento.
    • Granularidad de agregación: seleccione 30 minutos.
    • Valor de umbral: mantenga en 0.
    • Dividir por dimensiones: en Nombre de dimensión, seleccione estado. A continuación, active la casilla Incluir todos los valores futuros .

    Captura de pantalla de las opciones de configuración de las condiciones de alerta.

  6. En el área Dividir por dimensiones , en Valores de dimensión, seleccione un valor. Dado que seleccionó el estado del nombre de dimensión, los valores disponibles son Scheduled, Started, Completed, Canceled y Failed.

    Nota:

    Estos valores de estado solo aparecen si el clúster ejecutó previamente operaciones de actualización automática. Para los nuevos clústeres o para los clústeres que aún no se han realizado actualizaciones automáticas, la lista desplegable puede aparecer vacía o mostrar ninguna dimensión disponible. Después de que el clúster realice su primera actualización automática, estos valores de estado estarán disponibles para la selección.

    Recorte de pantalla de los cuadros de lista desplegable del área para dividir por dimensiones.

  7. Vaya a la pestaña Acciones . Asegúrese de que existe un grupo de acciones con la dirección de correo electrónico correcta para que pueda recibir las notificaciones:

    1. Seleccione Usar grupos> de accionesCrear un grupo de acciones.

    2. En Tipo de notificación, seleccione Email/SMS_message/Push/Voice.

    3. Active la casilla Correo electrónico y escriba la dirección de correo electrónico en el cuadro Correo electrónico .

      Captura de pantalla del panel para escribir información de correo electrónico para un grupo de acciones.

  8. Vaya a la pestaña Detalles . Asigne una identidad administrada para que pueda conceder acceso a los recursos necesarios. En el área Identidad , seleccione Identidad administrada asignada por el sistema.

    Captura de pantalla que muestra las selecciones para asignar una identidad administrada asignada por el sistema.

  9. Vaya a la pestaña Revisar y crear y, a continuación, seleccione Crear.

  10. Ahora que ha creado la regla de alertas, puede asignar los roles adecuados para la identidad administrada:

    1. En la regla de alertas, vaya a Configuración>Identidad>Identidad Administrada Asignada por el Sistema>Asignaciones de Roles de Azure.
    2. Seleccione Agregar asignación de roles, seleccione el rol Lector y asígnelo al grupo de recursos.
    3. Seleccione Agregar asignación de roles de nuevo, seleccione el rol Lector y asígnelo a la suscripción.

    Sugerencia

    Si no ve la opción Identidad , asegúrese de que ha creado la regla de alerta y de que tiene los permisos necesarios.

Después de configurar el administrador de comunicaciones, envía avisos anticipados una semana antes de que se inicie el mantenimiento y un día antes de que se inicie el mantenimiento. También envía alertas oportunas durante la operación de mantenimiento.

Comprobación de la configuración

Para actualizar el clúster, espere a que se inicie el actualizador automático. A continuación, compruebe que recibe avisos en la dirección de correo electrónico que configuró para recibir avisos.

Compruebe la base de datos de Azure Resource Graph para obtener el registro de notificación programado. Cada notificación de eventos programadas debe aparecer como un registro en la ContainerServiceEventResources tabla.

Captura de pantalla que muestra un registro de notificación en Azure Resource Graph.