背景:
公司要求部署最一套新版的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环境导入使用。
标签:grpc,containerd,拉取,registry,io,镜像 From: https://www.cnblogs.com/ggborn-001/p/16797078.html