Cloud Logging

En este documento, se describe cómo GKE en Azure se integra en Cloud Logging y se muestra cómo acceder a tus registros.

Descripción general

GKE en Azure admite Cloud Logging para las cargas de trabajo y los componentes del sistema que se ejecutan en el plano de control y en los nodos del grupo de nodos.

GKE en Azure incluye un agente de Logging basado en Fluentbit. En los nodos del plano de control, el agente de Logging se ejecuta como un componente del sistema. En los nodos del grupo de nodos, se ejecuta como un Daemonset. Los datos recopilados por los agentes de registro se pueden administrar y borrar como cualquier otra métrica y datos de registro, como se describe en la documentación de Cloud Logging.

Qué datos se recopilan

GKE en Azure registra la siguiente información:

  • Los registros de los componentes del sistema en cada una de las réplicas del plano de control
  • Registros de los servicios del sistema en cada uno de los nodos del grupo de nodos
  • De manera opcional, los registros de las cargas de trabajo

Habilitar el registro de las cargas de trabajo

Para habilitar el registro de cargas de trabajo, debes crear un nuevo clúster de Kubernetes, versión 1.22 o posterior.

De forma predeterminada, cuando creas un clúster, GKE en Azure habilita el registro del sistema. Para habilitar el registro de cargas de trabajo, debes crear un clúster con la marca --logging. Puedes habilitar el registro para los componentes del sistema, las cargas de trabajo o ambos.

Por ejemplo, a fin de habilitar el registro del sistema y de cargas de trabajo en un clúster nuevo, sigue las instrucciones para crear un clúster, pero incluye la marca --logging en el comando gcloud:

gcloud container azure clusters create CLUSTER_NAME
...
--logging=SYSTEM,WORKLOAD

o para actualizar un clúster existente:

gcloud container azure clusters update CLUSTER_NAME
...
--logging=SYSTEM,WORKLOAD

Accede a tus registros

Hay varias formas de acceder a los registros de GKE en Azure en Cloud Logging:

  • Explorador de registros: Puedes ver tus registros directamente desde el Explorador de registros. Para ello, usa los filtros de registro para seleccionar los recursos de Kubernetes, como los registros de clústeres, nodos, espacios de nombres, pods o registros de contenedores.

  • Google Cloud CLI: con el comando gcloud logging read, selecciona el clúster, el nodo, el Pod y los registros del contenedor adecuados.

Obtén información sobre tus registros

Un registro en Cloud Logging es una colección de entradas de registro y cada una se aplica a un tipo determinado de recurso de registro.

Tipos de recursos

Estos son los tipos de recursos específicos de GKE en Azure:

Tipo de recurso Nombre visible
k8s_control_plane_component Registros de componentes del plano de control
k8s_node Registros del grupo de nodos
k8s_container Registros de contenedores de cargas de trabajo

Cuando GKE on Azure escribe los registros de tu clúster, cada entrada de registro incluye el tipo de recurso. Saber dónde aparecen los registros facilita su búsqueda cuando los necesitas.

Registros del plano de control

Los registros del plano de control usan el tipo de recurso k8s_control_plane_component. Estos incluyen registros de los componentes del sistema que se ejecutan en las réplicas del plano de control, como kube-apiserver.

Registros de nodos

Los registros de nodos son parte del tipo de recurso k8s_node. Esto incluye los registros del componente fundamental del sistema que se ejecuta en los nodos trabajadores, como kubelet y containerd.

Registros de apps del sistema

Los registros de las apps del sistema corresponden al tipo de recurso k8s_container. Esto incluye registros de Pods que GKE en Azure instaló en los nodos trabajadores. En particular, se incluyen los contenedores que se ejecutan en los siguientes espacios de nombres:

  • kube-system
  • gke-connect
  • gke-system
  • gmp-system
  • asm-user-auth
  • cnrm-system
  • config-management-system
  • gatekeeper-system
  • gmp-public
  • istio-system
  • knative-serving

Busca tus registros en la interfaz de usuario de Cloud Logging

Puedes ver tus registros con el Explorador de registros en la interfaz de usuario de Cloud Logging.

Explorador de registros

Con el compilador de consultas, puedes compilar una consulta si agregas parámetros de consulta de forma manual. Por ejemplo, si deseas explorar los registros de las cargas de trabajo del sistema, puedes comenzar a seleccionar o buscar el tipo de recurso de k8s_container y, luego, seleccionar la ubicación y el nombre del clúster. Luego, puedes definir mejor la búsqueda si filtras los nombres del contenedor o del Pod.

El explorador de registros ofrece una forma adicional de compilar consultas de búsqueda mediante el Explorador del campo de registro. Muestra el recuento de entradas de registro, ordenadas de forma descendente, para el campo de registro dado. El uso del explorador del campo de registro es particularmente útil para los registros de GKE en Azure porque proporciona una manera fácil de seleccionar los valores de Kubernetes para tus recursos. Por ejemplo, puedes seleccionar registros para un clúster, un espacio de nombres, un nombre de Pod y un nombre de contenedor específicos.

Para obtener más información, consulta Usa el Explorador de registros.

Consultas de muestra

En esta sección, se incluyen consultas de muestra que puedes realizar en el Explorador de registros.

Ejemplo 1: Obtén los registros de kube-apiserver en los nodos del plano de control para un clúster de Azure CLUSTER_NAME:

resource.type="k8s_control_plane_component"
resource.labels.cluster_name="azureClusters/CLUSTER_NAME"
resource.labels.component_name="apiserver"

Ejemplo 2: Obtén los registros de kubelet en nodos trabajadores de un clúster de Azure CLUSTER_NAME:

resource.type="k8s_node"
resource.labels.cluster_name="azureClusters/CLUSTER_NAME"
log_name="projects/PROJECT_ID/logs/kubelet"

Ejemplo 3: Obtén los registros del contenedor cilium-agent para un clúster de Azure CLUSTER_NAME:

resource.type="k8s_container"
resource.labels.cluster_name="azureClusters/CLUSTER_NAME"
resource.labels.container_name="cilium-agent"

¿Qué sigue?