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

247
Views
Script automatizado para eliminar kubernetes pvc por etiquetas AGE

Tengo un total de 2030 pvc's y quiero borrar 2000 pvc's de ellos y quedarme con los 30.

  • Esos 30 pvc son los últimos y solo tienen menos de 2 días... por eso no quiero eliminarlos. Los otros 2000 pvc tienen más de 2 días.

  • Quiero crear un script que se ejecute automáticamente para eliminar los pvc que tienen más de 2 días.

algún ejemplo de mis pvcs:

 NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE data-14353-postgresql-0 Bound pvc-1a6 8Gi RWO gp2 2d15h data-14354-postgresql-0 Bound pvc-2d6 8Gi RWO gp2 16d data-14358-postgresql-0 Bound pvc-9dc 8Gi RWO gp2 127m data-14367-postgresql-0 Bound pvc-2eb 8Gi RWO gp2 65h data-14370-postgresql-0 Bound pvc-90d 8Gi RWO gp2 56d

ahora, como pueden ver, tengo una etiqueta de EDAD mixta.

Se pueden eliminar usando:

 kubectl delete pvc

pero esto borrará todo... ¡y no quiero borrarlo todo!

  • qué comando o etiqueta para la edad puedo agregar para ejecutar el comando para eliminar todos los pvc excepto aquellos con menos de 2 días de antigüedad.
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

TL:RD;

 kubectl get pvc --sort-by=.metadata.creationTimestamp --no-headers | tac | cut -d ' ' -f 1 | sed -n 31,2000p | xargs kubectl delete pvc

Expliquemos por partes:

  • kubectl get pvc --sort-by=.metadata.creationTimestamp --no-headers :

    Esta parte enumera los PVC en orden descendente sin la fila de encabezado

  • tac

    invertir la salida y producir orden ascendente

  • cut -d ' ' -f 1

    Obtenga la primera columna que tiene los nombres de los PVC.

  • sed -n 31,2000p

    Imprime todos los PVC después de la línea 30 que contendrá sus 30 PVC que tienen menos de 2 días de antigüedad

    p - Imprime el espacio del patrón (a la salida estándar). Este comando generalmente solo se usa junto con la opción de línea de comando -n.

    n: si la impresión automática no está deshabilitada, imprima el espacio del patrón y luego, independientemente, reemplace el espacio del patrón con la siguiente línea de entrada. Si no hay más entradas, sed sale sin procesar más comandos.

  • xargs kubectl delete pvc

Elimina tus PVC.

over 4 years ago · Santiago Trujillo Report

0

No hay una manera fácil de hacer esto simplemente usando un comando kubectl , solo es fácil de operar de esa manera cuando puede usar etiquetas de una buena manera.

Pero puede hacerlo mediante programación, utilizando un lenguaje de programación o secuencias de comandos contra el servidor API de Kubernetes.

Tal vez, en este caso, puede agregar manualmente una etiqueta a los 30 PVC que desea conservar y luego eliminar los PVC que no tienen esta etiqueta.

Si ha logrado etiquetar los PVC que desea conservar, puede usar, por ejemplo

 kubectl delete pvc -l !keep

Obtenga más información sobre cómo agregar etiquetas y seleccionar recursos usando etiquetas en Etiquetas y selectores

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!