国内拉取google kubernetes镜像

前言

使用Docker时需要首先下载一个官方镜像,例如mysql、wordpress。然而由于众所周知的原因,下载Docker官方镜像可能很慢,甚至下载失败。为此,国内热心市民或组织提供了官方的镜像站点加速服务,从而加速官方镜像的下载。

在这里插入图片描述

常用镜像加速地址

以下地址可直接引用,仅整理,不保证可用性:

以下需要注册才能获取加速地址:

参考地址:

常用镜像同步工具

以下工具都不依赖docker环境,同步镜像时不落本地盘:

可结合公网免费CICD工具githubAction、TravisCI、CircleCI、gitlabCI等,将gcr.io镜像定时同步到个人dockerhub账号下或国内阿里云镜像仓库中。

其他开源项目,可直接使用:

国内镜像源替换

针对部分国外镜像仓库无法访问问题,国内阿里云或dockerhub可能有转存镜像可用,拉取后需自行修改tag:

阿里云镜像仓库

可以拉取k8s.gcr.io镜像

#示例
docker pull k8s.gcr.io/pause:3.2

#改为
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2

dockerhub镜像仓库

如果比较幸运,可以在dockerhub搜索到别人同步的最新k8s.gcr.io镜像
在这里插入图片描述
docker命令搜索,排名及star靠前的比较靠谱,然后再去dockerhub确认是否有最新版本:

[root@localhost ~]# docker search kube-apiserver
NAME                                          DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mirrorgooglecontainers/kube-apiserver-amd64                                                   34                   
aiotceo/kube-apiserver                        k8s.gcr.io/kube-apiserver                       20                   
mirrorgooglecontainers/kube-apiserver                                                         18                   
kubesphere/kube-apiserver                                                                     7                    
kubeimage/kube-apiserver-amd64                k8s.gcr.io/kube-apiserver-amd64                 4                    
empiregeneral/kube-apiserver-amd64            kube-apiserver-amd64                            4                    [OK]
gotok8s/kube-apiserver                                                                        3                    
graytshirt/kube-apiserver                     Alpine with the kube-apiserver binary           2                    
zhaowenlei/kube-apiserver                     from gcr.io/google-containers/kube-apiserver    1                    
k8smx/kube-apiserver                                                                          0                    
mesosphere/kube-apiserver-amd64                                                               0                    
lchdzh/kube-apiserver                         kubernetes原版基础镜像,Registry为k8s.gcr.io            0                    
kope/kube-apiserver-healthcheck                                                               0                    
ggangelo/kube-apiserver                                                                       0                    
pigletfly/kube-apiserver-amd64                kube-apiserver-amd64                            0                    [OK]
mesosphere/kube-apiserver                                                                     0                    
k8simage/kube-apiserver                                                                       0                    
kubeimage/kube-apiserver                      k8s.gcr.io/kube-apiserver                       0                    
woshitiancai/kube-apiserver                                                                   0                    
ist0ne/kube-apiserver-amd64                   https://gcr.io/google_containers/kube-apiser…   0                    [OK]
rainbond/kube-apiserver                                                                       0                    
ramencloud/kube-apiserver                     k8s.gcr.io/kube-apiserver                       0                    
maichong/kube-apiserver-amd64                 kube-apiserver-amd64                            0                    [OK]
kontenapharos/kube-apiserver                                                                  0                    
htcfive/kube-apiserver                        kube-apiserver from gcr.io                      0                    

镜像加速配置示例

以docker配置阿里云镜像加速为例:

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]
}
EOF

然后重新启动 Docker 服务:

systemctl daemon-reload && sudo systemctl restart docker

验证配置是否生效

$ docker info | grep Mirrors -A1
Registry Mirrors:
 https://uyah70su.mirror.aliyuncs.com/

验证镜像拉取速度

time docker pull centos

直接拉取国外镜像

如果你已经在本地windows上使用 某种不可名状 的工具,默认可以通过它的1080、7890等端口来拉取镜像。在安装docker的linux服务器执行以下操作,其中192.168.0.103是你本地windows能上网的网卡IP:

mkidr -p /etc/systemd/system/docker.service.d

cat > /etc/systemd/system/docker.service.d/http-proxy.conf  <<EOF
[Service]
Environment="HTTP_PROXY=http://192.168.0.103:1080"
EOF

systemctl daemon-reload && systemctl restart docker

注意还要在客户端里鼠标右键勾选允许其他设备连接。以上配置完成后即可直接拉取google镜像

# docker pull k8s.gcr.io/kube-apiserver:v1.16.1
v1.16.1: Pulling from kube-apiserver
39fafc05754f: Already exists 
010af2aa5529: Pull complete 
Digest: sha256:80feeaed6c6445ab0ea0c27153354c3cac19b8b028d9b14fc134f947e716e25e
Status: Downloaded newer image for k8s.gcr.io/kube-apiserver:v1.16.1
k8s.gcr.io/kube-apiserver:v1.16.1

查看gcloud容器仓库镜像

google cloudshell 类似web shell连接工具,你可以把它当做一个永久免费并且拥有5GB存储空间的linux服务器,能够执行所有docker命令和bash命令。
最重要的是它能够访问全球网络,所以如果你有能力连接到它,可以直接在上面使用docker命令拉取推送镜像到任何地方,这里主要介绍如何登录到cloudshell检索gcr.io中的镜像。

查看某个项目下的镜像

gcloud container images list --project google-containers
gcloud container images list --project kubernetes-helm

gcr.io镜像

查看某个仓库所有镜像

gcloud container images list --repository=gcr.io/google-containers

查看某个镜像所有tag

gcloud container images list-tags gcr.io/google-containers/metrics-server

k8s.gcr.io镜像

gcloud container images list --repository=k8s.gcr.io/metrics-server

gcloud container images list-tags k8s.gcr.io/metrics-server/metrics-server

gcloud container images list-tags \
  k8s.gcr.io/metrics-server/metrics-server \
  --format="table(TAGS)" \
  --filter="tags:*" | grep -v TAGS

示例截图:
在这里插入图片描述

kubernetes 二进制文件国内源

kubernetes 主要的二进制文件是kubectl、kubelet以及kubeadm,无法找到 kubernetes 二进制文件的国内源,但是有基于包管理器的yum源和deb源。

阿里云国内kubernetes源:https://developer.aliyun.com/mirror/kubernetes/
清华源国内kubernetes源:https://mirrors.tuna.tsinghua.edu.cn/help/kubernetes/

方案1:通过国内源安装

如果要安装kubectl、kubelet、kubeadm,可以通过配置yum源或deb源方式,使用包管理器 dnf install 或者 apt install 方式安装,具体参考上面链接。

方案2:直接获取二进制文件

如果需要直接获取二进制文件,一种方案是直接从官方链接下载,示例如下:

wget https://dl.k8s.io/release/v1.31.0/bin/linux/amd64/kubectl

但是下载速度实在是夸张,以阿里云按流量计费ECS实例来测试,仅有12.0KB/s,因此命令行下载很慢,但是直接从浏览器下载相对较快,具体原因不明。:
在这里插入图片描述
由于国内有相关的rpm或deb源,另一种折中的方案是下载rpm包或deb包文件,然后从其中提取二进制文件。

1、RPM包示例:

使用docker快速运行一个rockylinux9操作系统环境,如果你已经有redhat系操作系统,可以省略该步骤。

root@node71:~# docker run -it --rm docker.io/library/rockylinux:9.3 bash
[root@4c1cb1e0edb5 /]# 

在容器中安装相关依赖

dnf install -y wget cpio

获取RPM包下载地址
在这里插入图片描述
从国内源下载RPM包(下载速度很快)

wget https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.31/rpm/x86_64/kubectl-1.31.0-150500.1.1.x86_64.rpm

从RPM包中提取kubectl二进制文件,提取后即可以复制到任意需要使用的地址。

[root@4c1cb1e0edb5 /]# rpm2cpio kubectl-1.31.0-150500.1.1.x86_64.rpm | cpio -idmv
./usr/bin/kubectl
./usr/share/doc/packages/kubectl
./usr/share/doc/packages/kubectl/README.md
./usr/share/licenses/kubectl
./usr/share/licenses/kubectl/LICENSE
110152 blocks
[root@4c1cb1e0edb5 /]#
[root@4c1cb1e0edb5 /]# ./usr/bin/kubectl version
Client Version: v1.31.0
Kustomize Version: v5.4.2
The connection to the server localhost:8080 was refused - did you specify the right host or port?
[root@4c1cb1e0edb5 /]# 

2、DEB包示例:

使用docker快速运行一个ubuntu操作系统环境,如果你已经有debain系操作系统,可以省略该步骤。

root@node71:~# docker run -it --rm docker.io/library/ubuntu:22.04 bash
root@88cc2ab722d5:/# 

在容器中安装相关依赖

apt update -y
apt install -y wget

获取DEB包下载地址
在这里插入图片描述
从国内源下载DEB包(下载速度很快)

wget https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.31/deb/amd64/kubectl_1.31.0-1.1_amd64.deb

从DEB包中提取kubectl二进制文件,提取后即可以复制到任意需要使用的地址

root@88cc2ab722d5:/# dpkg-deb -x kubectl_1.31.0-1.1_amd64.deb ./extracted_files
root@88cc2ab722d5:/# 
root@88cc2ab722d5:/# ./extracted_files/usr/bin/kubectl version
Client Version: v1.31.0
Kustomize Version: v5.4.2
The connection to the server localhost:8080 was refused - did you specify the right host or port?
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

willops

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值