Todos los productos
Search
Centro de documentos

Simple Log Service:Crear y usar el centro de eventos de K8s

Última actualización: Sep 02, 2026

Los eventos de Kubernetes registran los cambios de estado en su clúster, como la creación, ejecución y eliminación de pods, o errores en componentes. El centro de eventos de K8s recopila todos los eventos del clúster de Kubernetes en tiempo real y ofrece capacidades de almacenamiento, consulta, análisis, visualización y alertas. Este tema describe el procedimiento para crear y utilizar un centro de eventos de K8s.

Contexto

La arquitectura de Kubernetes se basa en una máquina de estados. Cuando el sistema realiza transiciones entre estados, genera eventos. Las transiciones entre estados normales producen eventos Normal, mientras que las transiciones entre estados normales y anómalos generan eventos Warning.

Container Service for Kubernetes (ACK) proporciona una solución de monitoreo de eventos lista para usar en entornos contenedorizados. Utiliza node-problem-detector (NPD), mantenido por ACK, junto con su componente incluido kube-eventer, para ofrecer el monitoreo de eventos.

  • node-problem-detector (NPD) es una herramienta para diagnosticar nodos de Kubernetes. Convierte anomalías del nodo, como bloqueos de Docker Engine, bloqueos del kernel de Linux, excepciones de acceso a la red pública y problemas de descriptores de archivos, en eventos de nodo. Al combinarse con kube-eventer, habilita un sistema de alertas de ciclo cerrado para eventos de nodo.

  • kube-eventer es una herramienta de código abierto mantenida por ACK para archivar eventos de Kubernetes. Puede enviar eventos del clúster a sistemas externos como DingTalk, Simple Log Service (SLS) y EventBridge. También ofrece capacidades de filtrado basadas en niveles de evento. Esto permite la recopilación en tiempo real, alertas dirigidas y el archivado asíncrono de eventos.

Requisitos previos

Debe haber creado un clúster de Kubernetes, como un clúster ACK de Alibaba Cloud o un clúster ACK Serverless.

Facturación

El centro de eventos de K8s es gratuito si se cumplen las siguientes condiciones:

  • El periodo de retención de datos del logstore asociado al centro de eventos de K8s es de 90 días (valor predeterminado).

  • El volumen de datos escritos en el centro de eventos de K8s es inferior a 256 MB por día, lo que equivale aproximadamente a 250,000 eventos.

Ejemplos:

  • Si utiliza el periodo de retención de datos predeterminado de 90 días y su clúster de Kubernetes genera 1,000 eventos por día, el centro de eventos de K8s es gratuito.

  • Si establece el periodo de retención de datos en 105 días y su clúster de Kubernetes genera 1,000 eventos por día, se le cobrará por el almacenamiento del logstore después de 90 días. El concepto facturable es Log Storage . Para obtener más información sobre el concepto facturable Log Storage, consulte Billable items in pay-by-feature mode.

Paso 1: Desplegar kube-eventer y node-problem-detector

ACK

Si utiliza un clúster ACK, solo necesita desplegar el componente ack-node-problem-detector, ya que integra las funcionalidades tanto de kube-eventer como de node-problem-detector. Si utiliza un clúster ACK Serverless, debe desplegar el componente kube-eventer.

NPD utiliza configuraciones y complementos de terceros para detectar problemas en los nodos y generar los eventos de clúster correspondientes. Un clúster de Kubernetes también genera sus propios eventos durante las transiciones de estado, como desalojos de pods o fallos en la descarga de imágenes. El Centro de Eventos de Kubernetes de Simple Log Service (SLS) centraliza todos los eventos de Kubernetes en tiempo real y proporciona almacenamiento, consultas, análisis, visualización y alertas. Para integrar los eventos de su clúster con el Centro de Eventos de Kubernetes, siga estos pasos:

  • Si seleccionó Install node-problem-detector and Create Event Center durante la creación del clúster, puede saltar al Paso 2 para ver el Centro de Eventos de Kubernetes. Para obtener información sobre cómo instalar el componente NPD durante la creación del clúster, consulte Crear un clúster administrado ACK.

  • Si no seleccionó Install node-problem-detector and Create Event Center durante la creación del clúster, siga estos pasos para instalarlo manualmente.

    1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

    2. En la página Clusters, haga clic en el nombre del clúster objetivo. En el panel de navegación izquierdo, seleccione Operations > Add-ons.

    3. En la pestaña Logs and Monitoring, busque e instale ack-node-problem-detector.

Self-managed Kubernetes

  1. Despliegue kube-eventer.

    1. Instale kubectl. Para obtener más información, consulte Obtain the kubeconfig file of a cluster and use kubectl to connect to the cluster.

    2. Cree un archivo de configuración llamado eventer.yaml basado en la siguiente plantilla.

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        labels:
          name: kube-eventer
        name: kube-eventer
        namespace: kube-system
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: kube-eventer
        template:
          metadata:
            labels:
              app: kube-eventer
            annotations:
              scheduler.alpha.kubernetes.io/critical-pod: ''
          spec:
            dnsPolicy: ClusterFirstWithHostNet
            serviceAccount: kube-eventer
            containers:
              - image: registry.cn-hangzhou.aliyuncs.com/acs/kube-eventer:v1.2.5-cc7ec54-aliyun
                name: kube-eventer
                command:
                  - "/kube-eventer"
                  - "--source=kubernetes:https://kubernetes.default"
                  ## .send to sls
                  ## --sink=sls:https://{endpoint}?project={project}&logStore=k8s-event&regionId={region-id}&internal=false&accessKeyId={accessKeyId}&accessKeySecret={accessKeySecret}
                  - --sink=sls:https://cn-beijing.log.aliyuncs.com?project=k8s-xxxx&logStore=k8s-event&regionId=cn-beijing&internal=false&accessKeyId=xxx&accessKeySecret=xxx
                env:
                  # If TZ is assigned, set the TZ value as the time zone
                  - name: TZ
                    value: "Asia/Shanghai"
                volumeMounts:
                  - name: localtime
                    mountPath: /etc/localtime
                    readOnly: true
                  - name: zoneinfo
                    mountPath: /usr/share/zoneinfo
                    readOnly: true
                resources:
                  requests:
                    cpu: 10m
                    memory: 50Mi
                  limits:
                    cpu: 500m
                    memory: 250Mi
            volumes:
              - name: localtime
                hostPath:
                  path: /etc/localtime
              - name: zoneinfo
                hostPath:
                  path: /usr/share/zoneinfo
      ---
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
        name: kube-eventer
      rules:
        - apiGroups:
            - ""
          resources:
            - events
          verbs:
            - get
            - list
            - watch
      ---
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        name: kube-eventer
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: kube-eventer
      subjects:
        - kind: ServiceAccount
          name: kube-eventer
          namespace: kube-system
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: kube-eventer
        namespace: kube-system

      Parámetro

      Tipo

      Obligatorio

      Descripción

      endpoint

      string

      Sí

      El endpoint de Simple Log Service. Para obtener más información, consulte Endpoints.

      project

      string

      Sí

      El proyecto de Simple Log Service.

      logStore

      string

      Sí

      El logstore de Simple Log Service.

      internal

      string

      Obligatorio para clústeres de Kubernetes autogestionados.

      Para un clúster de Kubernetes autogestionado, debe establecer este parámetro en false.

      regionId

      string

      Obligatorio para clústeres de Kubernetes autogestionados.

      El ID de la región donde reside Simple Log Service. Para obtener más información, consulte Endpoints.

      accessKeyId

      string

      Obligatorio para clústeres de Kubernetes autogestionados.

      El AccessKey ID. Se recomienda utilizar el par de AccessKey de un usuario de Resource Access Management (RAM). Para obtener más información, consulte AccessKey pair.

      accessKeySecret

      string

      Obligatorio para clústeres de Kubernetes autogestionados.

      El AccessKey secret. Se recomienda utilizar el par de AccessKey de un usuario de Resource Access Management (RAM). Para obtener más información, consulte AccessKey pair.

    3. Ejecute el siguiente comando para aplicar la configuración de eventer.yaml al clúster.

      kubectl apply -f eventer.yaml

      Salida esperada:

      deployment.apps/kube-eventer created
      clusterrole.rbac.authorization.k8s.io/kube-eventer created
      clusterrolebinding.rbac.authorization.k8s.io/kube-eventer created
      serviceaccount/kube-eventer created
  2. Despliegue node-problem-detector.

Paso 2: Crear una instancia del centro de eventos de K8s

Nota

Después de crear una instancia del centro de eventos de K8s, Simple Log Service crea automáticamente un logstore llamado k8s-event y paneles relacionados en el proyecto de destino.

  1. Inicie sesión en la consola de Simple Log Service.

  2. En la sección Log Application, haga clic en la pestaña Intelligent O&M y luego haga clic en K8s Event Center.

  3. En la página Event Center Management, haga clic en Add en la esquina superior derecha.

  4. En el panel Create Event Center, configure los parámetros y haga clic en Next.

    • Si selecciona Select Existing Project, elija un proyecto existente en la lista desplegable Project para gestionar los recursos de la instancia del centro de eventos de K8s, como el logstore y los paneles.

    • Si selecciona Select Kubernetes Cluster from Container Service for Kubernetes, elija un clúster K8s existente en la lista desplegable K8s Cluster. Si utiliza este método, Simple Log Service crea automáticamente un proyecto llamado k8s-log-{cluster-id} para gestionar los recursos de la instancia del centro de eventos de K8s, como el logstore y los paneles.

Paso 3: Usar la instancia del centro de eventos de K8s

Una vez creada la instancia del centro de eventos de K8s y desplegados kube-eventer y node-problem-detector, puede comenzar a utilizar el centro de eventos. Puede consultar la descripción general de eventos, buscar detalles de eventos, ver el ciclo de vida de los pods, revisar eventos de nodos y de componentes principales, configurar alertas, ejecutar consultas personalizadas y actualizar la versión.

En la página K8s Event Center, localice la instancia del centro de eventos de K8s objetivo y haga clic en el icono k8s事件中心-002 para realizar las siguientes operaciones.

Acciones

Descripción

Consultar la descripción general de eventos

La página Event Overview muestra estadísticas resumidas de eventos principales. Estas incluyen el número total de eventos, una comparación de eventos de error entre hoy y ayer, estadísticas de alertas, tendencias de eventos de error y detalles de OOM en pods.

Nota

La información de OOM en pods no identifica el pod específico. Solo puede localizar el nodo, el nombre del proceso y el ID del proceso donde ocurrió el evento. Puede ejecutar una consulta personalizada para encontrar eventos de reinicio de pods ocurridos cerca del momento del OOM y así ayudar a identificar el pod específico.

Consultar detalles de eventos

La página Event Detail Query muestra los detalles de eventos filtrados por diversas dimensiones, como tipo de evento, objeto del evento, host, namespace y nombre.

Ver el ciclo de vida del pod

La página Pod Lifecycle muestra una línea temporal gráfica de eventos en el ciclo de vida de un pod. También puede filtrar eventos importantes del pod por nivel de evento.

Ver eventos de nodo

La página Node Events muestra detalles de eventos de nodo, como el ciclo de vida del nodo y una lista de eventos.

Ver eventos de componentes principales

La página Core Component Events muestra detalles de eventos de componentes principales, como fallos en el reinicio de ECS y modos de URL no implementados.

Configurar alertas

En la página Alert Configuration, puede configurar alertas para el centro de eventos de K8s. Para obtener más información, consulte Set up alerts.

Ejecutar consultas personalizadas

En la página Custom Query, puede personalizar sentencias de consulta y de análisis.

Todos los eventos del centro de eventos de K8s se almacenan en un logstore, por lo que puede utilizar todas las funciones del logstore, como consultas personalizadas, consumo de eventos, informes personalizados y alertas personalizadas. Para obtener más información, consulte Quick start for query and analysis.

Para acceder al proyecto asociado con la instancia del centro de eventos de K8s, puede encontrar el nombre del proyecto de una de las siguientes maneras:

  • Busque el nombre del proyecto en la URL de la página Custom Query. La URL tiene el formato https://sls.console.alibabacloud.com/lognext/app/k8s-event/project/k8s-log-xxxx/logsearch/k8s-event. El campo después de project/ es el nombre del proyecto, por ejemplo, k8s-log-xxxx.

  • En la pestaña Event Center Management, busque la instancia del centro de eventos de K8s objetivo en la lista de instancias y vea su nombre de proyecto correspondiente.

Actualizar versión

En la página Version Update, puede actualizar el centro de eventos de K8s.

Eliminar una instancia del centro de eventos de K8s

En la página K8s Event Center > Event Center Management, localice la instancia y haga clic en el icono K8s event center en la columna Actions.

Registro de ejemplo

El siguiente código muestra un registro de ejemplo.

hostname:  cn-hangzhou.i-***********"
level:  Normal
pod_id:  2a360760-****
pod_name:  logtail-ds-blkkr
event_id:  {  
   "metadata":{  
      "name":"logtail-ds-blkkr.157b7cc90de7e192",
      "namespace":"kube-system",
      "selfLink":"/api/v1/namespaces/kube-system/events/logtail-ds-blkkr.157b7cc90de7e192",
      "uid":"2aaf75ab-****",
      "resourceVersion":"6129169",
      "creationTimestamp":"2019-01-20T07:08:19Z"
   },
   "involvedObject":{  
      "kind":"Pod",
      "namespace":"kube-system",
      "name":"logtail-ds-blkkr",
      "uid":"2a360760-****",
      "apiVersion":"v1",
      "resourceVersion":"6129161",
      "fieldPath":"spec.containers{logtail}"
   },
   "reason":"Started",
   "message":"Started container",
   "source":{  
      "component":"kubelet",
      "host":"cn-hangzhou.i-***********"
   },
   "firstTimestamp":"2019-01-20T07:08:19Z",
   "lastTimestamp":"2019-01-20T07:08:19Z",
   "count":1,
   "type":"Normal",
   "eventTime":null,
   "reportingComponent":"",
   "reportingInstance":""
}

Campo del registro

Tipo

Descripción

hostname

string

El nombre del host donde ocurrió el evento.

level

string

El nivel del registro. Valores válidos: Normal y Warning.

pod_id

string

El ID único del pod. Este campo solo se incluye si el evento está relacionado con un pod.

pod_name

string

El nombre del pod. Este campo solo se incluye si el evento está relacionado con un pod.

event_id

json

Los detalles del evento. El valor de este campo es una cadena JSON.

Preguntas frecuentes

Una instancia del centro de eventos de K8s no tiene datos

Después de desplegar una instancia del centro de eventos de K8s, los nuevos eventos se recopilan automáticamente. Puede buscarlos en la página Custom Query. Se recomienda establecer el rango de tiempo en la esquina superior derecha en 1 Day. Si no se encuentran datos, generalmente hay dos causas:

  • No se han generado nuevos eventos en el clúster de Kubernetes desde que desplegó el centro de eventos de K8s.

    Puede ejecutar el comando kubectl get events --all-namespaces para comprobar si se generan nuevos eventos en el clúster.

  • Los parámetros están configurados incorrectamente en su despliegue de kube-eventer y node-problem-detector.

    • Si utiliza un clúster de Container Service for Kubernetes (ACK), realice estos pasos:

      1. Inicie sesión en la consola de ACK.

      2. En la página Clusters, haga clic en el nombre del clúster objetivo.

      3. En el panel de navegación izquierdo, seleccione Apply > Helm.

      4. En la página Helm, busque ack-node-problem-detector y haga clic en Update.

      5. Revise y modifique la configuración de parámetros. Para obtener más información, consulte Step 1: Deploy kube-eventer and node-problem-detector.

    • Si utiliza un clúster de Kubernetes autogestionado, consulte Collect Kubernetes events para la configuración de parámetros.

¿Cómo veo los registros de contenedor de un evento?

  • Si utiliza un clúster de Container Service for Kubernetes (ACK), realice estos pasos:

    1. Inicie sesión en la consola de ACK.

    2. En la página Clusters, haga clic en el nombre del clúster objetivo.

    3. En el panel de navegación izquierdo, seleccione Workloads > Pods.

    4. Establezca Namespace en kube-system.

    5. En la lista Pods, busque el pod objetivo y haga clic en Log.

  • Si utiliza un clúster de Kubernetes autogestionado, revise los registros de los Pods con el prefijo de nombre de archivo eventer-sls en el namespace kube-system.