containerd配置镜像加速器

Containerd配置镜像加速器

为什么要给containerd配置镜像加速器?

因为k8s1.24以后的容器运行时是containerd,也就是说k8s会直接使用containerd去拉取镜像,并且启动容器,而不再是使用docker去拉取镜像,所以我们需要配置containerd的镜像加速器
containerd的旧版本配置镜像加速器是直接在config.toml文件中添加,而这种做法已经被废弃了

1. 旧版本配置方法

按照官方的说法在containerd1.5版本前,这种方式是可以的,如何配置呢?

1.1 生成containerd配置文件

如果配置文件已经存在则不要执行下面这条命令

containerd config default > /etc/containerd/config.toml

1.2 修改配置文件

vim /etc/containerd/config.toml
# 需要找到这一行,并添加2行
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
    endpoint = ["镜像加速器地址1","镜像加速器地址2"]

写完之后重启containerd就可以了

2. 新版本配置方法

如果你的containerd的版本是1.5以上的,那么采用这种配置方式

2.1 创建目录

mkdir /etc/containerd/certs.d

将精选加速器的地址放在这个目录下

2.2 配置加速器

# 我们是给docker来配置镜像加速的,所以我们再创建一个docker.io的目录
mkdir /etc/containerd/certs.d/docker.io

然后我们创建一个hosts.toml文件并配置加速器地址

vim /etc/containerd/certs.d/docker.io/hosts.toml

[host."镜像加速器地址"]
  capabilities = ["pull","resolve"]

这样配置好之后我们重启containerd

3. 测试拉取镜像

如果是使用ctr命令的话,则还需要指定hosts路径

ctr images pull docker.io/library/httpd:latest --hosts-dir=/etc/containerd/certs.d

不出意外的话就可以拉取到镜像了。

posted @ 2024-08-12 21:59  FuShudi  阅读(3081)  评论(0编辑  收藏  举报