# 一种高效下载k8s版本介质的方式

> 作者/来源: UCloud 运营管理员
> 发布时间: 2023-01-11T05:20:00.000Z
> 分类: 解决方案
> 标签: AI, Kubernetes, Docker
> 原文链接: http://117.50.162.249:3000/yun/articles/1185

---

# 一种高效下载k8s版本介质的方式

> 来源: https://www.ucloud.cn/yun/129695.html
> 作者: IT那活儿
> 发布日期: 发布于2023-01-11 13:20

一种高效下载k8s版本介质的方式

******点击上方“IT那活儿”，关注后了解更多精彩内容！！******1

前言

我们历史文章《Centos8安装在线及离线K8S集群搭建》介绍了如何安装低版本k8s 集群环境，往往实践过程中，经常碰到因网络环境受限，导致安装介质无法正常下载现象，今天介绍一种如何获取k8s集群环境所需版本方法。

2

查看k8s版本

打开https://github.com/kubernetes/kubernetes

/releases/，查看当前最新稳定版及历史版本，确认你所需要安装版本信息。

3

安装docker

3.1 查看k8s版本与docker版本依赖关系：

https://github.com/kubernetes/kubernetes/blob/master/build/dependencies.yaml（最新版）

https://github.com/kubernetes/kubernetes/blob/v1.21.2/build/dependencies.yaml （指定版本）

3.2 打开链接，页面搜索docker关键字，可以查前当前k8s版本docker 版本依赖：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_000.png)

3.3 确认好dokcer 版本后，通过如下地址下载对应rpm 包并进行安装：

https://download.docker.com/linux/centos/7/x86\_64/stable/Packages/

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_001.png)

```
rpm  -ivh *.rpm  --nodeps --force 安装rpm
```

4

安装k8s rpm

4.1 所有k8s 集群节点，需安装如下rpm安装包：

```
kubectlkubeadmKubeletkubernetes-cnicri-tools
```

4.2 打开阿里云kubernetes  rpm 地址，从页面上无法分辨出kubernetes  对应版本：

http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86\_64/Packages/

4.3 我们可以通过如下命令将上面打开地址保存成本地html页面：

```
wget Index of http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/Packages/ -O rpm-download-path.html
```

4.4  利用vi 命令打开 rpm-download-path.html 页面，搜索出你所需安装k8s版本，然后组装下载路径信息，以1.21.2版本为例：

```
wget http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/Packages/1ba3630f32f36700d00afc381e9b86663d4f549d24429984743090c10d853c35-kubectl-1.21.2-0.x86_64.rpm -O kubectl-1.21.2-0.x86_64.rpmwget http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/Packages/60ad5d3435ecb6f822e034c084c9aff6a1a1011a70a8160c011766f8782f5de6-kubeadm-1.21.2-0.x86_64.rpm -O kubeadm-1.21.2-0.x86_64.rpmwget http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/Packages/7300bf6c04057f3986d6093ea05e3675ea6432305403bae3ad5e6a930908a723-kubelet-1.21.2-0.x86_64.rpm -O kubelet-1.21.2-0.x86_64.rpmwget http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/Packages/14bfe6e75a9efc8eca3f638eb22c7e2ce759c67f95b43b16fae4ebabde1549f3-cri-tools-1.13.0-0.x86_64.rpm -O cri-tools-1.13.0-0.x86_64.rpmwget http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/Packages/db7cb5cb0b3f6875f54d10f02e625573988e3e91fd4fc5eef0b1876bb18604ad-kubernetes-cni-0.8.7-0.x86_64.rpm -O kubernetes-cni-0.8.7-0.x86_64.rpm
```

4.5 所有节点上安装上面下载的 rpm 包：

```
rpm -ivh *.rpm --nodeps --force
```

5

安装k8s 镜像

5.1 安装好k8s rpm 包后，执行kubeadm  config  images  list 查看K8S集群所需要的docker镜像版本，例如:

```
k8s.gcr.io/kube-apiserver:v1.21.2k8s.gcr.io/kube-controller-manager:v1.21.2k8s.gcr.io/kube-scheduler:v1.21.2k8s.gcr.io/kube-proxy:v1.21.2k8s.gcr.io/pause:3.4.1k8s.gcr.io/etcd:3.4.13-0k8s.gcr.io/coredns/coredns:v1.8.0
```

5.2 上面命令输出结果是官方提供当前环境所安装k8s 版本对应的最新镜像版本信息，**k8s.gcr.io 地址国内受限无法正常打开**，而我们常用阿里云镜像库（docker pull registry.cn-hangzhou.aliyuncs.com/   google\_containers/）官方可能是没有同步镜像版本，不一定有你所需的镜像版本信息。**那有没有办法不用梯子下载你所需镜像版本呢？**方法总是有的，发现**阿里云官方提供一个叫海外机器构建镜像的功能，结合github功能，很好解决我们所面对的问题**，操作方式步骤举例说明：

5.2.1 前置条件，需要有一个阿里云账户及github个人账户。

5.2.2 github个人账户里面新建一个项目，命名为所需下载k8s镜像一样的名称，如coredns，然后在这个项目下面新建一个Dockerfile文件，内容为：

From k8s.gcr.io/coredns/coredns:v1.8.0  （镜像地址信息，就是上面kubeadm  config  images  list 版本结果信息）

5.2.3 在阿里云个人账户上，进入容器镜像服务主页面：

https://cr.console.aliyun.com/cn-hangzhou/  instances/credentials

1）建命名空间

-- 点击个人实例，进入个人空间配置：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_002.png)

2）创建镜像仓库

-- 选择自建的命名空间，输入仓库名称：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_003.png)

-- 选择github 选项卡，使用自己个人账户及镜像，沟选下面海外机器构建：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_004.png)

3）镜像仓库，创建构建规则

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_005.png)

**注意事项：**填入镜像版本号需与上面kubeadm  config  images  list 版本结果信息保持一致，特别注意有一些版本前带一个v字母，有一些没有带。

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_006.png)

-- 点击立即构建，系统进行自动构建，同时可以查看日志方式，查看构建详情：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_007.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_008.png)

4）设置镜像访问凭证

-- 设置镜像访问凭证，用于部署环境进行联网下载镜像：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_009.png)

-- 在部署机器节点上，执行镜像登录操作，输入上面定义的固定密码。

```
docker login --username=阿里云用户名 registry.cn-hangzhou.aliyuncs.com
```

5.2.4 下载k8s 镜像

-- 通过在阿里云上构建镜像版本，下载到本地环境：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_010.png)

```
docker pull registry.cn-hangzhou.aliyuncs.com/hnjjs/coredns:v1.8.0
```

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_011.png)

6

总结

通过github 及阿里云海外镜像构建功能，很容易下载到我们所需镜像版本，除k8s 以外镜像也可以通过此方式进行获取。

点击查看历史文章《Centos8安装在线及离线K8S集群搭建》。

## 本 文 原 创 来 源：IT那活儿微信公众号（上海新炬王翦团队）

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_012.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129695/images/129695_013.png)