導出和導入所有必要的 Kubernetes 鏡像,使用阿里云作為源。
在能訪問外網的機器上拉取鏡像
首先,在有外網訪問的機器上運行以下命令來拉取所有 Kubernetes v1.29.5 版本需要的鏡像:
kubeadm config images pull --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --kubernetes-version 1.29.5
導出鏡像為 tar 文件
接下來,導出這些鏡像為 tar 文件,以便能夠傳輸它們。例如,對于一些主要的 Kubernetes 組件:
sudo ctr -n k8s.io images export kube-apiserver.tar registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.29.5
sudo ctr -n k8s.io images export kube-controller-manager.tar registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.29.5
sudo ctr -n k8s.io images export kube-scheduler.tar registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.29.5
sudo ctr -n k8s.io images export kube-proxy.tar registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.29.5
sudo ctr -n k8s.io images export coredns.tar registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.11.1
sudo ctr -n k8s.io images export pause.tar registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9
sudo ctr -n k8s.io images export etcd.tar registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.12-0
傳輸 tar 文件
使用 scp
或任何其他文件傳輸方法將這些 tar 文件傳輸到無法訪問外網的服務器:
scp *.tar username@target-server-ip:/path/to/store
在目標服務器上導入鏡像
在目標服務器上,使用 ctr
命令導入這些 tar 文件:
sudo ctr -n k8s.io images import kube-apiserver.tar
sudo ctr -n k8s.io images import kube-controller-manager.tar
sudo ctr -n k8s.io images import kube-scheduler.tar
sudo ctr -n k8s.io images import kube-proxy.tar
sudo ctr -n k8s.io images import coredns.tar
sudo ctr -n k8s.io images import pause.tar
sudo ctr -n k8s.io images import etcd.tar
這些步驟確保了即使在無法直接訪問外部網絡的環境中,也能獲取并部署所需的 Kubernetes 鏡像。這樣做可以避開網絡限制,并確保集群使用的是一致和可預測的鏡像版本。