将docker images导入crictl images
在一些离线环境里,导入k8s镜像比较麻烦,可以通过以下方法导入镜像:
1、从 Docker 导出镜像为 tar 文件
docker save harbor.xxx.cn/nest-lib/test-csi:1.2.0 > test-csi-1.2.0.tar
2、导入镜像到 containerd
ctr -n=k8s.io images import test-csi-1.2.0.tar
可能会报错ctr: command not found,则安装containerd
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install containerd.io
3、运行以下命令验证镜像是否已导入到 containerd
ctr -n=k8s.io images list
4、crictl 验证
crictl images
如果crictl 当前配置为使用 CRI-O 作为容器运行时,crictl images会查不到,可以改用crioctl
# cat /etc/crictl.yaml
runtime-endpoint: unix:///var/run/crio/crio.sock #看路径是crio.sock还是containerd.sock
# crioctl image import test-csi120.tar
在新版本中crioctl已经弃用,可以改用podman
sudo yum install podman -y
sudo podman load -i test-csi120.tar
sudo systemctl restart crio
crictl images