J'ai créé un outil de nettoyage pour Google Container Registry

introduction

Dans Google Container Registry, j'ai essayé de créer un outil qui parallélise de manière appropriée et supprime les images.

https://github.com/h-r-k-matsumoto/gcr-garbage-collect

Contexte

Lorsque je veux effacer des images inutiles sans balises dans Google Container Registry pour la santé mentale, je le fais à partir de l'écran de la console.

Si vous en faites 10 ou plus à la fois, ce sera presque certainement comme suit ** Impossible de supprimer une ou plusieurs images sélectionnées. ** ** S'affiche et certaines suppressions échouent. image.png

Ensuite, si vous exécutez ce qui suit à partir du shell, vous pouvez le supprimer de manière stable, mais il faut environ 5 secondes pour supprimer une image, ** C'est extrêmement lent. ** **

# get image list 
gcloud container images list-tags asia.gcr.io/{project-id}/${image-name}  --filter="NOT tags:* AND timestamp.datetime < '2018-06-01'"

# delete image
gcloud container images delete asia.gcr.io/{project-id}/${image-name}@sha256:{digest} --force-delete-tags  --quiet

Ensuite, vous pouvez le paralléliser et le supprimer! C'est pourquoi j'ai créé un outil.

outil

Ce qui a été fait

https://github.com/h-r-k-matsumoto/gcr-garbage-collect

** Confirmation de la cible de suppression **

$ java -jar gcr-garbage-collect-0.0.1-SNAPSHOT.jar --dry-run=true

** Supprimer l'exécution **

$ java -jar gcr-garbage-collect-0.0.1-SNAPSHOT.jar --dry-run=false

** Supprimer uniquement des images spécifiques **

java -jar gcr-garbage-collect-0.0.1-SNAPSHOT.jar --gcloud.container.image=asia.gcr.io/{gcp-project-id}/{image-name}

** Changer le nombre de parallèles **

$ java -jar gcr-garbage-collect-0.0.1-SNAPSHOT.jar --parallelism=16

Concernant la création

--Je n'ai pas vu l'API pour le registre de conteneurs dans Google Documents ... Puisqu'il n'y a aucune aide pour cela, j'utilise le format d'exécution directe gcloud. --Dans l'environnement Windows, application.yaml ou comme argument d'exécution
--gcloud.command =" C: / Program Files (x86) / Google / Cloud SDK / google-cloud-sdk / bin / gcloud.cmd Veuillez préciser "
etc.

Autre

――J'utilise ProcessBuilder depuis longtemps, mais il n'absorbe pas < et " selon chaque système d'exploitation. «Je pensais en faire une image docker, mais c'était ennuyeux pour l'authentification gcloud, alors j'ai arrêté. «Je me demandais à quelle vitesse c'était, mais j'ai décidé de la comparer, mais j'ai arrêté parce que je n'avais pas planifié la vitesse en premier lieu.

Recommended Posts

J'ai créé un outil de nettoyage pour Google Container Registry
J'ai créé un outil utile pour Digital Ocean
Création de l'outil de gestion des utilisateurs Let's Chat
J'ai créé un docset de tableau de bord pour Holoviews
Création d'un outil CLI client / serveur WebSocket (comme WebSocket version netcat)
J'ai essayé de créer un outil d'échafaudage pour le framework Web Python Bottle
J'ai créé un outil d'estampage automatique du navigateur.
J'ai fait une bibliothèque pour l'assurance actuarielle
J'ai créé un conteneur Docker pour utiliser JUMAN ++, KNP, python (pour pyKNP).
J'ai créé un fichier de dictionnaire python pour Neocomplete
J'ai fait un algorithme de rechange2 moins cher pour uWSGI
J'ai créé un outil de collecte de configuration de routeur Config Collecor
J'ai créé un téléchargeur pour l'expression distribuée par mot
J'ai créé un outil pour compiler nativement Hy
J'ai créé un outil pour obtenir de nouveaux articles
Nous avons créé un produit de prévention du télétravail.
〇✕ J'ai fait un jeu
J'ai créé une fenêtre pour la sortie du journal avec Tkinter
J'ai créé une VM qui exécute OpenCV pour Python
[Python] J'ai créé un classificateur pour les iris [Machine learning]
J'ai créé un outil de génération de données texte répétitif "rpttxt"
J'ai fait un texte Python
Fait une commande pour FizzBuzz
J'ai fait un robot discord
[VSCode] J'ai créé un extrait d'utilisateur pour Python print f-string
J'ai créé un outil pour créer un nuage de mots à partir de wikipedia
J'ai essayé d'utiliser Tensorboard, un outil de visualisation pour l'apprentissage automatique
J'ai créé un moniteur de ressources pour Raspberry Pi avec une feuille de calcul
J'ai fait un kit d'apprentissage pour word2vec / doc2vec / GloVe / fastText
J'ai essayé de faire un diagnostic de visage AI pour les golfeuses professionnelles ③
[Titan Craft] J'ai créé un outil pour invoquer un géant sur Minecraft
Création d'un outil qui facilite la définition des paramètres des modèles d'apprentissage automatique
J'ai créé un site d'apprentissage C ++
J'ai touché PyAuto pendant un moment
J'ai fait un Line-bot avec Python!
J'ai créé un script de traduction basé sur CUI (2)
Python> J'ai créé un code de test pour mon propre fichier externe
J'ai fait une loterie avec Python.
J'ai créé beaucoup de fichiers pour la connexion RDP avec Python
J'ai créé un script de traduction basé sur CUI
J'ai créé un environnement de développement pour Django 3.0 avec Docker, Docker-compose, Poetry
J'ai créé un démon avec Python
J'ai créé une bibliothèque de wrapper Python pour l'API de reconnaissance d'images docomo.
J'ai créé un outil pour parcourir automatiquement plusieurs sites avec Selenium (Python)
[Mise à jour Ver1.3.1] J'ai créé une bibliothèque de prétraitement de données DataLiner pour l'apprentissage automatique
J'ai fait une note du colaboratoire Google qui peut utiliser Spleeter facilement.
J'ai créé un outil CLI pour convertir les images de chaque répertoire en PDF
J'ai fait une sorte d'outil de traitement d'image simple en langage Go.
J'ai créé un outil pour convertir Jupyter py en ipynb avec VS Code
J'ai créé un outil qui facilite un peu la décompression avec CLI (Python3)
J'ai créé un nouveau compartiment AWS S3
J'ai fait un programme de gestion de la paie en Python!
J'ai touché "Orator" alors j'ai fait une note
J'ai fait un compteur de caractères avec Python
J'ai créé un module alternatif pour les japandas.
Débutant: j'ai créé un lanceur à l'aide d'un dictionnaire
Remarques sur la création d'outils de mise en forme de texte
J'ai fait un interlocuteur comme Siri
J'ai fait un script pour afficher des pictogrammes
Un outil pour saisir facilement du code Python
J'ai fait une carte hexadécimale avec Python