k8s 使用 containerd 运行时配置 http 私服

Kubernetes 从 v1.20 开始弃用 Docker,并推荐用户切换到基于容器运行时接口(CRI)的容器引擎,如 containerd、cri-o 等。
目前使用的环境中使用了 Kubernetes v1.22.3,containerd 1.4.3,containerd 在配置私服配置上与直接使用 docker 有一定区别。
今天简单聊一下如何配置私服,默认使用 dockerhub 官方镜像 registry:v2harbor 配置的私服为 http,未做配置时 k8s 拉镜像时会以 https 协议访问。
假定已创建好的私服地址为 http://10.211.55.2:5000,进行如下修改
编辑 worker 节点上 /etc/containerd/config.toml,查找plugins."io.containerd.grpc.v1.cri".registry.mirrors配置
相关配置中调整为如下内容

[plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://registry.cn-hangzhou.aliyuncs.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."10.211.55.2:5000"]
          endpoint = ["http://10.211.55.2:5000"]

参考 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."10.211.55.2:5000"] 行添加私服配置,使用该配置可以直接配置相关 endpoint 为 http 地址。

重启 containerd,使配置生效

systemctl restart containerd

这时候,使用 crictl pull 命令就可以获取 http 协议私服上的镜像了

你可能感兴趣的:(k8s 使用 containerd 运行时配置 http 私服)