解决:Error response from daemon: Get https://asia-east1-docker.pkg.dev/v2/k8s-artifacts-prod/images/..
在拉取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镜像时报错:
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提供中国区可以使用的海外公开容器镜像
本文不追求多么酷炫的解决方法,能将问题以最低的成本解决就好。
默认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.txtaliregistry=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/$linedone
技术型分享,转载请注明出处!
欢迎互相交流,共同进步!
更多推荐
所有评论(0)