containerd镜像拉取配置

背景:

  公司要求部署最一套新版的k8s系统来部署生产应用,说实话很头疼。因为k8s自1.23版本之后就用不docker作为容器的默认运行时了,而是采用的containerd,这就带来了一系列的问题。没有经验的问题,百度文档少的问题。。。

实际配置

  contained的配置文件在/etc/containerd/config.toml

... 
  [plugins."io.containerd.grpc.v1.cri".registry]
      config_path = ""

      [plugins."io.containerd.grpc.v1.cri".registry.auths]

      [plugins."io.containerd.grpc.v1.cri".registry.configs]

      [plugins."io.containerd.grpc.v1.cri".registry.headers]

      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]

      [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
       endpoint = ["https://teut9a0h.mirror.aliyuncs.com"]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
        endpoint = ["registry.aliyuncs.com/google_containers"]

    [plugins."io.containerd.grpc.v1.cri".x509_key_pair_streaming]
      tls_cert_file = ""
      tls_key_file = ""
   ...

找到如上registry的配置部分,加上阿里云的镜像加速配置。

重启containerd

systemctl daemon-reload
systemctl restart containerd

镜像拉取

containerd的命令行工具是ctr,拉取镜像的命令如下:

ctr image  pull docker.io/jenkins/jenkins:lts

其实镜像拉取这一块困扰了我一段时间,在我不知道目标镜像地址的情况下,那我如何拉取?

这里我采取了一个笨的方法,在另一台centos的机器上执行 docker search 命令就可

 

 此处以jenkins为例子,那如果要在containerd的环境拉取第一个镜像命令如下:

ctr image pull docker.io/jenkins/jenkins:lts

此处有时候并不一定顺利,那elasticsearch为例

 

 这里的elasticsearch和kibana前面没有仓库的项目名其实就是默认的library库,在containerd环境中可尝试使用如下命令拉取镜像:

ctr image pull docker.io/library/elasticsearch:latest

在我本地环境中是失败的

 

 本次没有去深究这个问题,而是对这种不能直接用ctr拉取的镜像,就在docker环境先拉下来,docker save 打包传到 containerd环境导入使用。

 

posted @ 2022-10-16 20:43  高佳丰  阅读(9012)  评论(0)    收藏  举报