前
由于是在本地的机器上部署的K3s集群,当部署的项目多了之后节点拉取镜像的流量会变得频繁。而且在国内的特殊网络情况的状态下,镜像拉取有较大失败概率,导致经常有工作负载是 error 的情况。
所以建立了镜像缓存,对全部节点拉取的镜像来进行缓存,并且持久化存储在 NFS 服务器上。过程见下
但是目前的目录结构如下,每一个 镜像源都建立了一个 Deploy来提供服务,整体性很差。
➜ play-with-k3s git:(main) tree ./proxy_registry_deprecated
./proxy_registry_deprecated
├── README.md
├── pod-base.yaml
├── reg-gcr.yaml
├── reg-hub
├── reg-hub.yaml
├── reg-k8s-gcr
├── reg-k8s-gcr.yaml
├── reg-quay.yaml
├── registry-admin.yaml
└── run.sh
所以这篇博文记录下镜像代理的部署的优化。实现效果是 在一个pod 中来部署全部的 registry的实例。 使用同一service/ingress 来提供服务。
正文
优化后的目录以及文件如下,可以明显看到目录结构有了很大的优化,便于后续的管理和维护。
➜ play-with-k3s git:(main) tree proxy_registry_v2
proxy_registry_v2
├── readme.md
├── registry-admin.yaml
└── registry-cache.yaml
在yaml 代码甚至K3s 特性上其实并没有用到什么新的东西。但是站在项目设计的整体性上面是个很好的优化。所以记录一下。