GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo ver los registros de pods de Kubernetes con Kubectl

Ver los registros del pod suele ser el primer paso para diagnosticar un problema con las cargas de trabajo de su clúster. Aquí se explica cómo usar Kubectl para transmitir registros en vivo a su terminal, lo que le permite inspeccionar la salida de su aplicación.

Cómo empezar

Asegúrese de tener Kubectl instalado y conectado a su clúster. Puede especificar un archivo Kubeconfig configurando KUBECONFIG variable de entorno en su shell:

export KUBECONFIG=~/.kube/my-cluster.yaml

Luego use Kubectl para listar sus Pods:

kubectl get pods

Recuerde agregar el --namespace marca cuando tus pods viven fuera del espacio de nombres predeterminado:

kubectl --namespace my-namespace get pods

Agregar un alias temporal a su shell es una buena manera de acortar este paso, ya que lo ayuda a ejecutar varios comandos en el mismo espacio de nombres:

alias k="kubectl --namespace my-namespace"

k get pods

Acceso a los registros de pod

Los kubectl logs El comando le permite inspeccionar los registros producidos por un Pod con nombre:

kubectl logs pod-name

Los registros existentes del Pod se emitirán a su terminal. Cuando el Pod está formado por más de un contenedor, también debe especificar el nombre del contenedor que desea inspeccionar:

kubectl logs pod-name container-name

Alternativamente, configure el --all-containers marca para incluir líneas de registro producidas por cualquiera de los contenedores en el Pod. Tenga en cuenta que podría ver resultados detallados y repetitivos cuando esta marca se usa contra un Pod ocupado:

kubectl logs pod-name --all-containers

También puede obtener los registros de un conjunto de pods con una etiqueta determinada. Esto le permite agregar registros de diferentes pods, siempre que todos compartan la misma etiqueta:

kubectl logs -l my-label=my-value --all-containers

Registros de transmisión continua

Los logs simples El comando emite los registros de Pod almacenados actualmente y luego sale. Agregue el -f (--follow ) al comando para seguir los registros y transmitirlos en vivo a su terminal.

Kubectl emitirá cada nueva línea de registro en su terminal hasta que detenga el comando con Ctrl+C. Esto es equivalente a usar tail -f con un archivo de registro local en un entorno no contenedorizado.

Ver registros antiguos

kubectl logs no incluirá líneas de registro producidas por contenedores antiguos que alguna vez fueron miembros de Pod pero que desde entonces han sido reemplazados. Se puede acceder a estos registros agregando -p (--previous ) bandera.

Luego, Kubectl mostrará la totalidad del registro almacenado para el Pod, incluidas las líneas que fueron emitidas por contenedores que desde entonces han sido terminados.

Obtención de registros recientes

A veces no es necesario ver todo el flujo de registro. Kubectl admite un --since indicador que muestra las líneas de registro emitidas después de un tiempo determinado:

kubectl logs pod-name --since=2h

Este comando mostrará la salida del registro de pod-name que se produjo en las últimas dos horas. Otra variante, --since-time , admite una cadena de marca de tiempo compatible con RFC3339 en lugar de la expresión de tiempo relativo que se muestra arriba.

El --tail flag es otra opción para condensar registros. Esto limita la cantidad de líneas que se muestran, evitando una terminal completa cuando solo necesita ver una salida muy reciente:

# Shows the last 10 lines of the log
kubectl logs pod-name --tail=10

Kubectl no muestra marcas de tiempo de línea de forma predeterminada, ya que muchas aplicaciones ya las incluyen en su salida de registro. Agrega el --timestamps marque para que Kubectl agregue marcas de tiempo al comienzo de las líneas cuando su carga de trabajo no las proporcione.

También puede anteponer los nombres de los pods y contenedores inspeccionados a las líneas de registro. Esta funcionalidad se activa con el --prefix bandera. Se puede combinar con --timestamps para mostrar la hora en que se creó cada línea y la fuente de la que se originó.

Acceder a registros desde otros tipos de recursos

kubectl logs funciona con recursos de trabajo e implementación además de pods:

kubectl logs job/my-job
kubectl logs deployment/my-deployment

Obtendrá los registros del primer contenedor dentro del trabajo o implementación. Use --all-containers marcar para mostrar los registros creados por cualquiera de los contenedores coincidentes. Puede usar todas las marcas descritas anteriormente, ya sea que esté viendo un pod, una implementación o un trabajo.

Administración de registros más avanzada

Kubectl no incluye una forma de filtrar, buscar o transformar sus registros. Lo mejor es canalizar los kubectl logs salida en herramientas de terminal establecidas como awk , grep o sed para este propósito.

kubectl logs my-pod | grep search-expression

Del mismo modo, use las funciones de redirección existentes en su shell para guardar registros en un archivo:

kubectl logs my-pod > my-pod-logs.txt

Resumen

Kubectl le permite acceder a los registros de sus recursos, ya sea por contenedor o en conjunto. Puede ver una instantánea de los registros recopilados actualmente, transmitir continuamente nuevas líneas a su terminal y acceder a líneas históricas emitidas por contenedores terminados.

El comando viene con algunas opciones de personalización limitadas, incluido un limitador de conteo de líneas y un filtrado de fecha simple. Cuando se necesite un análisis más exigente, canalice la salida a los comandos de terminal de Unix para analizar rápidamente sus registros y encontrar las causas de los errores en sus aplicaciones.

Kubectl recopila registros de los flujos de error y salida estándar de sus contenedores. Es importante asegurarse de escribir la salida en estos flujos correctamente, ya que un contenedor mal configurado dará como resultado una salida vacía cuando ejecute kubectl logs .


Docker
  1. Cómo ver los registros de error y acceso de Apache

  2. Cómo instalar Kubernetes con Minikube en Ubuntu 20.04

  3. Cómo copiar archivos entre pods de Kubernetes y su máquina

  4. Cómo ver el rendimiento pasado con sar en Linux

  5. ¿Cómo ingresar un pod como root?

Cómo instalar Kubernetes con Minikube en Ubuntu 18.04 LTS

Cómo implementar una aplicación de varios niveles con Kubernetes

Cómo configurar Kubernetes 1.5 con kubeadm en CentOS

Cómo ver las estadísticas del sistema Linux con Saidar

Cómo implementar pilas de Docker Compose en Kubernetes con Kompose

Cómo ver los registros de errores de cPanel