Cloud Logging

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

Descripción general

GKE en Azure es compatible con Cloud Logging para las cargas de trabajo y los componentes del sistema que se ejecutan en el plano de control y en los nodos de los grupos 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 que recopilan los agentes de Logging se pueden administrar y borrar como cualquier métrica o dato 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 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 de 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 optar por habilitar el registro de los componentes del sistema, las cargas de trabajo o ambos.

Por ejemplo, para habilitar el registro del sistema y de la carga de trabajo en un clúster nuevo, sigue las instrucciones paracrear un clúster, pero incluye los--logging marca en tugcloud comando:

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

Existen varias formas de acceder a los registros de GKE on 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 en 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 los registros de Pods instalados en los nodos trabajadores por GKE en Azure. 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. Usar el Explorador del campo de registros es útil sobre todo para los registros de GKE en Azure, ya que proporciona una manera fácil de seleccionar los valores de Kubernetes de 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?