Kubernetes 与 containerd
HubProxy 兼容 OCI/Distribution Registry API v2。Kubernetes 节点通常由 containerd 拉取镜像,配置方式与 Docker daemon.json 不同。
在每个节点创建 /etc/rancher/k3s/registries.yaml:
mirrors: docker.io: endpoint: - "https://example.com" "ghcr.io": endpoint: - "https://example.com" "quay.io": endpoint: - "https://example.com" "registry.k8s.io": endpoint: - "https://example.com"重启服务:
sudo systemctl restart k3s # serversudo systemctl restart k3s-agent # agent验证(使用 crictl,mirror 不对 ctr 生效):
sudo crictl pull docker.io/library/nginx:latest配置 /etc/rancher/rke2/registries.yaml,格式同上,重启 rke2-server 或 rke2-agent。
原生 containerd(1.5+)
Section titled “原生 containerd(1.5+)”sudo mkdir -p /etc/containerd/certs.d/docker.io/etc/containerd/certs.d/docker.io/hosts.toml:
server = "https://registry-1.docker.io"
[host."https://example.com"] capabilities = ["pull", "resolve"]GHCR 示例:/etc/containerd/certs.d/ghcr.io/hosts.toml:
server = "https://ghcr.io"
[host."https://example.com"] capabilities = ["pull", "resolve"]确保 /etc/containerd/config.toml 启用:
[plugins."io.containerd.grpc.v1.cri".registry] config_path = "/etc/containerd/certs.d"sudo systemctl restart containerd- docker.io:
/v2/library/nginx/... - ghcr.io 等:
/v2/ghcr.io/owner/image/... - 支持 containerd
ns查询参数识别[registries]
- 每节点独立配置;生产环境 HubProxy 建议 HTTPS 反代
- HubProxy 对上游匿名拉取,无法代理需要认证的私有镜像
- 见 传输特性