Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

255
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda