提前导入镜像 #
由于国内网络环境问题,也可以使用提前导入镜像的方式,使用以下脚本,将镜像上传到docker.com作为中转:
k8s-outside.sh #
使用脚本 k8s-outside.sh,从国外站点拉取最新镜像,上传到dockerhub
#!/bin/bash
repo=ir0cn
#repo=quay.io/xxfe
#repo=registry.cn-hangzhou.aliyuncs.com/xxfe
images=$(kubeadm config images list --kubernetes-version=v1.23.15 2>/dev/null | awk '{print $1}')
for imageName in ${images[@]}; do
docker pull $imageName || exit -1
newImageName=$(echo $imageName | awk -F/ '{print $NF}' | sed 's@:@__@')
docker tag $imageName $repo/google_containers:$newImageName || exit -1
docker push $repo/google_containers:$newImageName || exit -1
done
k8s-inside.sh #
使用脚本 k8s-inside.sh,从dockerhub拉取镜像并改名,每台机器均需执行
#!/bin/bash
repo=ir0cn
#repo=quay.io/xxfe
#repo=registry.cn-hangzhou.aliyuncs.com/xxfe
images=$(kubeadm config images list --kubernetes-version=v1.23.15 2>/dev/null | awk '{print $1}')
for imageName in ${images[@]}; do
newImageName=$(echo $imageName | awk -F/ '{print $NF}' | sed 's@:@__@')
docker pull $repo/google_containers:$newImageName || exit -1
docker tag $repo/google_containers:$newImageName $imageName
docker rmi $repo/google_containers:$newImageName
done
从阿里云下载 #
从阿里云下载镜像,不用考虑cpu架构,还算比较方便
#!/bin/bash
images=$(kubeadm config images list | awk -F'/' '{print $NF}')
for i in ${images[@]}; do
docker pull registry.aliyuncs.com/google_containers/$i
docker tag registry.aliyuncs.com/google_containers/$i k8s.gcr.io/$i
docker rmi registry.aliyuncs.com/google_containers/$i
done
注意 #
需要注意不同的CPU架构,如果从X86_64导入的镜像,在ARM64的设备无法正常运行。