提前导入镜像

提前导入镜像 #

由于国内网络环境问题,也可以使用提前导入镜像的方式,使用以下脚本,将镜像上传到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的设备无法正常运行。