Fle*_*uri 3 google-cloud-storage google-cloud-platform docker-registry gcloud
GCP 容器注册表构建在 GCP Cloud Storage 之上,可以在那里设置相当复杂的保留策略。
然而,容器注册表中没有这样的功能,并且存储中的图像之间没有区别(所有图像文件名都是哈希值,并且位于同一存储桶的同一目录中),因此无法设置策略来保留仅单个图像的最后五个版本。
有谁知道是否可以为 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;
Run Code Online (Sandbox Code Playgroud)
tail
可以通过修改-n 选项来更改保留图像的数量,值为+(N+1),N 为要保留的图像数量。
稍后我将提供 Kubernetes CronJob 规范。
编辑:这是我制作的工具https://bitbucket.org/Fleuri/containerretention。放心使用!
归档时间: |
|
查看次数: |
2729 次 |
最近记录: |