资讯专栏INFORMATION COLUMN

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

IT那活儿 / 3899人阅读
一种高效下载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安装包:
kubectl
kubeadm
Kubelet
kubernetes-cni
cri-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.rpm

wget 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.rpm

wget 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.rpm

wget 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.rpm

wget 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.2
k8s.gcr.io/kube-controller-manager:v1.21.2
k8s.gcr.io/kube-scheduler:v1.21.2
k8s.gcr.io/kube-proxy:v1.21.2
k8s.gcr.io/pause:3.4.1
k8s.gcr.io/etcd:3.4.13-0
k8s.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那活儿微信公众号(上海新炬王翦团队)


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129695.html

相关文章

  • CloudBest:年度复盘丨盘点2020无处不在「云原生」

    摘要:华为云华为云在云原生这场游戏中,最具竞争力的玩家之一。年,金山云在云原生领域推出了三款重磅产品星曜裸金属服务器云服务器和云盘。在线上智博会上,浪潮云发布了经过全新迭代升级的浪潮云,进一步提升平台云原生服务能力。面对数字时代复杂系统的不确定性,传统的 IT 应用架构研发交付周期长、维护成本高、创新升级难,烟囱式架构,开放性差、组件复用度低,这些都成为了企业业务快速增长的瓶颈。而云原生以其敏捷、...

    Tecode 评论0 收藏0
  • 【容器云 UK8S】使用kubectl操作集群:创建PVC之创建StorageClass和创建一个存

    摘要:创建当前存储卷支持类型的以及,详见在中使用在中使用创建在创建持久化存储卷之前,你需要先创建,然后在中使用。集群默认创建了两个,你也可以创建一个新的,示例及说明如下版本年月日之后创建的集群存储供应方,此处不可更改。创建PVC当前存储卷支持SSD、SATA类型的UDisk以及UFS,详见:在UK8S中使用UDisk在UK8S中使用UFS创建StorageClass在创建持久化存储卷(persis...

    Tecode 评论0 收藏0
  • Kubernetes中Volume概念

    摘要:背景中有的概念,其中对它的管理有点松散。镜像是文件系统层次的根,任何被挂载到镜像中的特定目录上。中的每个容器必须独立指定每个的位置。当一个由于某种原因从节点上移除,中的数据也会被永久删除。 容器中的磁盘文件是易失的,这给运行在容器中的大型应用带来了一些麻烦。首先,当一个容器崩溃,kubelet会重启它,但是之前存储的文件会丢失 - 容器以一个初始的状态重建。第二,当在一个Pod中运行多...

    libxd 评论0 收藏0
  • 闲谈 Kubernetes 主要特性和经验分享

    摘要:主要介绍的主要特性和一些经验。先从整体上看一下的一些理念和基本架构,然后从网络资源管理存储服务发现负载均衡高可用安全监控等方面向大家简单介绍的这些主要特性。集群范围内的监控主要由和如构建。 主要介绍 Kubernetes 的主要特性和一些经验。先从整体上看一下Kubernetes的一些理念和基本架构, 然后从网络、 资源管理、存储、服务发现、负载均衡、高可用、rolling upgra...

    Guakin_Huang 评论0 收藏0
  • 闲谈 Kubernetes 主要特性和经验分享

    摘要:主要介绍的主要特性和一些经验。先从整体上看一下的一些理念和基本架构,然后从网络资源管理存储服务发现负载均衡高可用安全监控等方面向大家简单介绍的这些主要特性。集群范围内的监控主要由和如构建。 主要介绍 Kubernetes 的主要特性和一些经验。先从整体上看一下Kubernetes的一些理念和基本架构, 然后从网络、 资源管理、存储、服务发现、负载均衡、高可用、rolling upgra...

    shevy 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<