Google-Cloud-Platform
如何處理 GCP Container Registry 中的保留政策
GCP Container Registry 建立在 GCP Cloud Storage 之上,可以在那裡設置相當複雜的保留策略。
但是,容器系統資料庫中沒有這樣的功能,並且由於儲存中的圖像之間沒有區別(所有圖像文件名都是 sha-hashes 並且位於同一儲存桶中的同一目錄中),因此無法例如設置保留策略只有單個圖像的最後五個版本。
有誰知道是否可以為 GCP 中的圖像設置更複雜的保留策略以及應該如何做?
目前似乎沒有辦法將保留策略添加到 Container Registry。但是,可以使用 gcloud 自動刪除額外的圖像。這是我編寫的一個可以用作 cronjob 的腳本:它遍歷圖像並刪除除五個最新版本之外的所有圖像。
#!/bin/bash for image_name in $(gcloud container images list); do for digest in $(gcloud container images list-tags $image_name --format=json | awk '/digest/{ print $2 }' | sed -e 's/^"//' -e 's/.\{2\}$//' | tail -n +6); do gcloud container images -q delete $image_name@$digest; done; done;
可以通過修改
tail
’s -n 選項來更改保留圖像的數量,值為 +(N+1),N 是要保留的圖像數量。稍後我將提供 Kubernetes CronJob 規範。
編輯:這是我製作的工具https://bitbucket.org/Fleuri/containerretention。隨意使用!