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

AI 摘要 / TL;DR

一种高效下载k8s版本介质的方式 来源: https://www.ucloud.cn/yun/129695.html 作者: IT那活儿 发布日期: 发布于2023 01 11 13:20 一种高效下载k8s版本介质的方式 点击上方“IT那活儿”,关注后了解更多精彩内容!! 1 前言 我们历史文章《Centos8安装在

来源: 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 版本依赖:

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

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

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)建命名空间

-- 点击个人实例,进入个人空间配置:

2)创建镜像仓库

-- 选择自建的命名空间,输入仓库名称:

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

3)镜像仓库,创建构建规则

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

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

4)设置镜像访问凭证

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

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

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

5.2.4 下载k8s 镜像

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

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

6

总结

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

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

本 文 原 创 来 源:IT那活儿微信公众号(上海新炬王翦团队)