在拉取k8s镜像时报错:

Error response from daemon: Get https://asia-east1-docker.pkg.dev/v2/k8s-artifacts-prod/images/kube-apiserver/manifests/v1.26.2: dial tcp 64.233.188.82:443: i/o timeout

原因:registry.k8s.io、k8s.gcr.io、asia-east1-docker.pkg.dev这些网址是由Google团队提供的区域化服务,会被GFW拦截

获取这类镜像的方式大概有以下几种:

① 通过代理的方式pull仓库的内容(我尝试搭建Shadowsocks+privoxy,代理服务跑起来了,但是不能FQ(用的华为云ECS),有懂得的大佬欢迎评论区交流)

pull国内或docker hub中的镜像(有一点不好就是K8S生态中的新兴技术比如tekton、knative等,国内不一定有最新的)

③ AWS提供中国区可以使用的海外公开容器镜像

AWS Image | Github Address

本文不追求多么酷炫的解决方法,能将问题以最低的成本解决就好。

默认YUM源是谷歌,可以使用阿里云YUM

cat /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
              https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

验证是否有kubeadm命令

[root@ecs-k8s-1 yum.repos.d]# yum list | grep kubeadm

Importing GPG key 0x13EDEF05:

Userid : "Rapture Automatic Signing Key (cloud-rapture-signing-key-2022-03-07-08_01_01.pub)"

Fingerprint: a362 b822 f6de dc65 2817 ea46 b53d c80d 13ed ef05

From : https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg      yes       #这里输入yes,即表示同意导入gpg key kubeadm.x86_64 1.26.2-0 kubernetes

安装kubeadm、kubectl、kubelet

yum -y install kubeadm kubelet kubectl

由于使用kubeadm部署集群,集群所有核心组件均以Pod运行,需要为主机准备镜像

[root@ecs-k8s-1 ~]# kubeadm config images list 
registry.k8s.io/kube-apiserver:v1.26.2
registry.k8s.io/kube-controller-manager:v1.26.2
registry.k8s.io/kube-scheduler:v1.26.2
registry.k8s.io/kube-proxy:v1.26.2
registry.k8s.io/pause:3.9
registry.k8s.io/etcd:3.5.6-0
registry.k8s.io/coredns/coredns:v1.9.3

由于这里默认使用的是Google的镜像(会被拦截),所以我们换成阿里的

登录阿里镜像仓库

docker login registry.cn-hangzhou.aliyuncs.com

编写脚本

#!/bin/bash
kubeadm config images list > images.list
awk -F/ '{print $NF}' images.list > images_pull.txt

aliregistry=registry.cn-hangzhou.aliyuncs.com/google_containers

for line in $(cat images_pull.txt)
do
docker pull ${aliregistry}/$line
docker tag $aliregistry/$line registry.k8s.io/$line
docker rmi $aliregistry/$line

done

 

 

技术型分享,转载请注明出处!

欢迎互相交流,共同进步!

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐