我们如何查看 kubernetes 中缓存的图像?

Sha*_*han 11 containers docker kubernetes docker-image kubernetes-pod

我使用 kops 作为 kubernetes 部署。

imagepullpolicy我注意到,每当在部署文件中输入具有相同标签号的图像时,如果未设置为,系统就会采用前一个图像always

有什么方法可以查看 kubernetes 环境中容器的所有缓存图像吗?

假设我test:56当前有一个部署中运行的映像并且之前test:1使用test:55过,那么 kubernetes 是否缓存这些映像?如果是,在哪里可以找到这些?

Wil*_*.F. 3

  • 对您的环境的评论:

    imagepullpolicy 我注意到,每当在部署文件中输入具有相同标签号的图像时,如果未设置为, 系统就会采用前一个图像 always

预拉取的映像可用于预加载某些映像以提高速度,或作为向私有注册表进行身份验证的替代方案,从而优化性能。

docker 将始终缓存本地使用的所有图像。

由于您使用的是 EKS,请记住,如果您有节点运行状况管理(意味着节点出现故障将被替换),新节点将不会缓存旧节点的图像,因此存储您的节点始终是一个好主意。注册表(例如您的云提供商注册表或本地注册表)上的映像。

  • 让我们解决你的第一个问题:

    有什么方法可以查看 kubernetes 环境中容器的所有缓存图像吗?

是的,您必须使用docker images来列出存储在您的环境中的图像。

  • 第二个问题:

    假设我test:56当前有一个部署中正在运行的映像并且之前test:1test:55使用过,那么 Kubernetes 会缓存这些映像吗?如果是,在哪里可以找到这些?

我给你准备了一个例子:

  • 我根据官方busybox镜像部署了几个pod:
$ kubectl run busy284 --generator=run-pod/v1 --image=busybox:1.28.4
pod/busy284 created
$ kubectl run busy293 --generator=run-pod/v1 --image=busybox:1.29.3
pod/busy284 created
$ kubectl run busy284 --generator=run-pod/v1 --image=busybox:1.28
pod/busy28 created
$ kubectl run busy284 --generator=run-pod/v1 --image=busybox:1.29
pod/busy29 created
$ kubectl run busy284 --generator=run-pod/v1 --image=busybox:1.30
pod/busy284 created
$ kubectl run busybox --generator=run-pod/v1 --image=busybox
pod/busybox created
Run Code Online (Sandbox Code Playgroud)

现在让我们检查一下存储在的图像docker images

$ docker images
REPOSITORY                                TAG                   IMAGE ID            CREATED             SIZE
k8s.gcr.io/kube-proxy                     v1.17.3               ae853e93800d        5 weeks ago         116MB
k8s.gcr.io/kube-controller-manager        v1.17.3               b0f1517c1f4b        5 weeks ago         161MB
k8s.gcr.io/kube-apiserver                 v1.17.3               90d27391b780        5 weeks ago         171MB
k8s.gcr.io/kube-scheduler                 v1.17.3               d109c0821a2b        5 weeks ago         94.4MB
kubernetesui/dashboard                    v2.0.0-beta8          eb51a3597525        3 months ago        90.8MB
k8s.gcr.io/coredns                        1.6.5                 70f311871ae1        4 months ago        41.6MB
k8s.gcr.io/etcd                           3.4.3-0               303ce5db0e90        4 months ago        288MB
kubernetesui/metrics-scraper              v1.0.2                3b08661dc379        4 months ago        40.1MB
busybox                                   latest                83aa35aa1c79        10 days ago         1.22MB
busybox                                   1.30                  64f5d945efcc        10 months ago       1.2MB
busybox                                   1.29                  758ec7f3a1ee        15 months ago       1.15MB
busybox                                   1.29.3                758ec7f3a1ee        15 months ago       1.15MB
busybox                                   1.28                  8c811b4aec35        22 months ago       1.15MB
busybox                                   1.28.4                8c811b4aec35        22 months ago       1.15MB
Run Code Online (Sandbox Code Playgroud)

您可以看到列出的所有推送的图像。

最好docker system prune不时使用命令释放服务器上的空间来清理系统中的旧资源。

如果您有任何疑问,请在评论中告诉我。