Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

603
Views
Grep para texto específico de kubernetes múltiples pods

Tengo dos pods ejecutándose para un servicio específico. Quiero obtener registros relacionados con ambos pods y buscar texto específico.

Para eso usé, como se describe aquí :

kubectl logs -l app=my-app -c my-app-container --since=25m | grep -i "search-text" |wc -l

Esto no genera nada, aunque hay texto coincidente para el texto de search-text

Luego probé con deployments

kubectl logs deployment/my-app-deployment -c my-app-container --since=90m | grep -i "search-text" |wc -l

¿Cómo puedo buscar esta cadena específica en todos los pods relacionados?

kubectl logs my-pod-1 -c my-app-container --since=90m | grep -i "search-text" |wc -l , esto da la cuenta adecuada.

Referencias :

Obtenga todos los registros de un contenedor específico en un conjunto de réplicas
cómo obtener registros de implementación de kubernetes

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

kubectl logs se limitan a ver los registros de un solo pod a la vez. Sin embargo, puede usar el indicador -l para usar un selector (consulta de etiqueta) para filtrar. Por ejemplo:

 kubectl logs -l app=nginx -l app=php

Use el indicador -c si necesita ver los registros del contenedor. Se pueden encontrar más banderas y ejemplos compatibles aquí .

Cuando pueda ver los registros de los pods/contenedores deseados, es hora de usar grep para filtrar la salida. Por ejemplo, obtuve algunos registros de un Pod:

 ~$ kubectl logs nginx-app-b8b875889-4nn52 /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh /docker-entrypoint.sh: Configuration complete; ready for start up

y me gustaría ver solo líneas con la palabra "configuración", así que ejecuto:

 $ kubectl logs nginx-app-b8b875889-4nn52 | grep configuration /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration

o si me gustaría contar líneas con la palabra "info" que:

 $ kubectl logs nginx-app-b8b875889-4nn52 | grep info |wc -l 2

Se pueden encontrar más detalles en el manual de grep . Tenga en cuenta que si no especifica argumentos como --since= o --tail= y el pod desde el que intenta ver los registros se está ejecutando durante un período de tiempo más largo, los resultados pueden ser engañosos.

Normalmente, también sugeriría usar herramientas de terceros como Stern o Kubetail , que son más poderosas que los simples kubectl logs pero en su caso de uso combina ambas:

  • kubectl logs -l

y:

  • | grep

es el camino a seguir.

EDITAR:

También asegúrese de obtener los recursos adecuados. Según su pregunta, parece que ejecuta kubectl logs deployment/my-app-deployment y kubectl logs my-pod-1 -c my-app-container que no corresponde a la my-app-deployment deployment. Enumere todas las implementaciones, pods y etiquetas para estar seguro de que selecciona el recurso correcto. Usar:

 kubectl get deploy,pods --show-labels
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!