《Kubernetes下载篇:Ubuntu20.04下载指定版本kubeadm及相关镜像》

2023-11-14

一、背景

在专网情况下,你是无法下载K8S相关的软件包及镜像,这个时候你可能需要提前下载好,那么针对这种情况,如何下载指定版本的K8S相关的软件包及镜像呢?

这里以ubuntu 20.04系统为例,通过ctr工具,下载v1.25.8版本的软件包及镜像


二、操作步骤

1、安装kube三件套

root@ecs-98be:~# apt-get update 
root@ecs-98be:~# apt install -y apt-transport-https gnupg gnupg2 gnupg1 curl lsb-release
root@ecs-98be:~# curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
root@ecs-98be:~# cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
root@ecs-98be:~# apt-get update
root@ecs-98be:~# apt-get install -y kubelet=1.25.8-00 kubeadm=1.25.8-00 kubectl=1.25.8-00

如果只是下载不安装,请用如下命令

root@ecs-98be:~# apt-get -d install kubelet=1.25.8-00 kubeadm=1.25.8-00 kubectl=1.25.8-00

2、安装containerd

root@ecs-98be:~# apt install containerd
root@ecs-98be:~# systemctl start containerd
root@ecs-98be:~# mkdir -p /etc/containerd/
root@ecs-98be:~# containerd config default > /etc/containerd/config.toml
root@ecs-98be:~# sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml
root@ecs-98be:~# systemctl restart containerd

3、查看需要下载的镜像

root@ecs-98be:~# kubeadm config images list
registry.k8s.io/kube-apiserver:v1.25.8
registry.k8s.io/kube-controller-manager:v1.25.8
registry.k8s.io/kube-scheduler:v1.25.8
registry.k8s.io/kube-proxy:v1.25.8
registry.k8s.io/pause:3.8
registry.k8s.io/etcd:3.5.6-0
registry.k8s.io/coredns/coredns:v1.9.3

4、下载相关镜像并打包成tar.gz格式

#!/bin/bash

k8s_version=v1.25.8
pause_version=3.8
etcd_version=3.5.6-0
coredns_version=v1.9.3

ctr i pull --all-platforms registry.k8s.io/kube-apiserver:${k8s_version}
ctr i pull --all-platforms registry.k8s.io/kube-controller-manager:${k8s_version}
ctr i pull --all-platforms registry.k8s.io/kube-scheduler:${k8s_version}
ctr i pull --all-platforms registry.k8s.io/kube-proxy:${k8s_version}
ctr i pull --all-platforms registry.k8s.io/pause:${pause_version}
ctr i pull --all-platforms registry.k8s.io/etcd:${etcd_version}
ctr i pull --all-platforms registry.k8s.io/coredns/coredns:${coredns_version}

ctr image export --all-platforms kube-apiserver-${k8s_version}.tar.gz registry.k8s.io/kube-apiserver:${k8s_version}
ctr image export --all-platforms kube-controller-manager-${k8s_version}.tar.gz registry.k8s.io/kube-controller-manager:${k8s_version}
ctr image export --all-platforms kube-scheduler-${k8s_version}.tar.gz registry.k8s.io/kube-scheduler:${k8s_version}
ctr image export --all-platforms kube-proxy-${k8s_version}.tar.gz registry.k8s.io/kube-proxy:${k8s_version}
ctr image export --all-platforms pause-${pause_version}.tar.gz registry.k8s.io/pause:${pause_version}
ctr image export --all-platforms etcd-3.5.6.tar.gz registry.k8s.io/etcd:${etcd_version}
ctr image export --all-platforms coredns-${coredns_version}.tar.gz registry.k8s.io/coredns/coredns:${coredns_version}

5、下载calico.yml文件及镜像

K8S版本对应calico版本

calico 3.26版本对应K8S版本,如下图所示:

1、支持系统
RedHat Linux 7
CentOS 7
Flatcar Container Linux
Fedora CoreOS
Ubuntu 18.04
Debian 8

2、支持k8s版本
v1.24
v1.25
v1.26
v1.27

3、下载calico文件
root@ecs-98be:~# wget https://github.com/projectcalico/calico/blob/v3.26.1/manifests/calico.yaml
root@ecs-98be:~# grep "image:" calico.yaml 
          image: docker.io/calico/cni:v3.26.1
          image: docker.io/calico/cni:v3.26.1
          image: docker.io/calico/node:v3.26.1
          image: docker.io/calico/node:v3.26.1
          image: docker.io/calico/kube-controllers:v3.26.1

4、执行下载镜像的脚本并打包成tar.gz格式
root@ecs-98be:~# cat get_images.sh
#!/bin/bash
ctr i pull --all-platforms docker.io/calico/cni:v3.26.1
ctr i pull --all-platforms docker.io/calico/node:v3.26.1
ctr i pull --all-platforms docker.io/calico/kube-controllers:v3.26.1
ctr image export --all-platforms cni-v3.26.1.tar.gz docker.io/calico/cni:v3.26.1
ctr image export --all-platforms node-v3.26.1.tar.gz docker.io/calico/node:v3.26.1
ctr image export --all-platforms kube-controllers-v3.26.1.tar.gz docker.io/calico/kube-controllers:v3.26.1

calico 3.25版本对应K8S版本,如下图所示:

1、支持系统
RedHat Linux 7
CentOS 7
CoreOS Container Linux stable
Ubuntu 16.04
Debian 8

2、支持k8s版本
v1.23
v1.24
v1.25
v1.26

3、下载calico文件
root@ecs-98be:~# wget https://docs.tigera.io/archive/v3.25/manifests/calico.yaml
root@ecs-98be:~# grep "image:" calico.yaml 
          image: docker.io/calico/cni:v3.25.0
          image: docker.io/calico/cni:v3.25.0
          image: docker.io/calico/node:v3.25.0
          image: docker.io/calico/node:v3.25.0
          image: docker.io/calico/kube-controllers:v3.25.0

4、执行下载镜像的脚本并打包成tar.gz格式
root@ecs-98be:~# cat get_images.sh
#!/bin/bash
ctr i pull --all-platforms docker.io/calico/cni:v3.25.0
ctr i pull --all-platforms docker.io/calico/node:v3.25.0
ctr i pull --all-platforms docker.io/calico/kube-controllers:v3.25.0
ctr image export --all-platforms cni-v3.25.0.tar.gz docker.io/calico/cni:v3.25.0
ctr image export --all-platforms node-v3.25.0.tar.gz docker.io/calico/node:v3.25.0 
ctr image export --all-platforms kube-controllers-v3.25.0.tar.gz docker.io/calico/kube-controllers:v3.25.0

calico 3.24版本对应K8S版本,如下图所示:

1、支持系统
RedHat Linux 7
CentOS 7
CoreOS Container Linux stable
Ubuntu 16.04
Debian 8

2、支持k8s版本
v1.22
v1.23
v1.24
v1.25

3、下载calico文件
root@lolaage-virtual-machine:~# wget https://docs.tigera.io/archive/v3.24/manifests/calico.yaml

calico 3.23版本对应K8S版本,如下图所示:

1、支持系统
RedHat Linux 7
CentOS 7
CoreOS Container Linux stable
Ubuntu 16.04
Debian 8

2、支持k8s版本
v1.21
v1.22
v1.23

3、下载calico文件
root@lolaage-virtual-machine:~# wget https://docs.tigera.io/archive/v3.23/manifests/calico.yaml

calico 3.22版本对应K8S版本,如下图所示:

1、支持系统
RedHat Linux 7
CentOS 7
CoreOS Container Linux stable
Ubuntu 16.04
Debian 8

2、支持k8s版本
v1.21
v1.22
v1.23

3、下载calico文件
root@lolaage-virtual-machine:~# wget https://docs.tigera.io/archive/v3.22/manifests/calico.yaml

calico 3.21版本对应K8S版本,如下图所示:

1、支持系统
RedHat Linux 7
CentOS 7
CoreOS Container Linux stable
Ubuntu 16.04
Debian 8

2、支持k8s版本
v1.20
v1.21
v1.22

3、下载calico文件
root@lolaage-virtual-machine:~# wget https://docs.tigera.io/archive/v3.21/manifests/calico.yaml

calico 3.20版本对应K8S版本,如下图所示:

1、支持系统
RedHat Linux 7
CentOS 7
CoreOS Container Linux stable
Ubuntu 16.04
Debian 8

2、支持k8s版本
v1.19
v1.20
v1.21

3、下载calico文件
root@lolaage-virtual-machine:~# wget https://docs.tigera.io/archive/v3.20/manifests/calico.yaml

calico 3.19版本对应K8S版本,如下图所示:

1、支持系统
RedHat Linux 7
CentOS 7
CoreOS Container Linux stable
Ubuntu 16.04
Debian 8

2、支持k8s版本
v1.19
v1.20
v1.21

3、下载calico文件
root@lolaage-virtual-machine:~# wget https://docs.tigera.io/archive/v3.19/manifests/calico.yaml

calico 3.18版本对应K8S版本,如下图所示:

1、支持系统
RedHat Linux 7
CentOS 7
CoreOS Container Linux stable
Ubuntu 16.04
Debian 8

2、支持k8s版本
1.18
1.19
1.20

3、下载calico文件
root@lolaage-virtual-machine:~# wget https://docs.tigera.io/archive/v3.18/manifests/calico.yaml

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《K8S集群运维指南》

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《Kubernetes下载篇:Ubuntu20.04下载指定版本kubeadm及相关镜像》 的相关文章

随机推荐

  • org.apache.shiro.authc.AuthenticationException: Authentication failed for token submission [org.apac

    本人刚接触shiro 自己进行测试 发现报错 小白一个希望大佬们多多指点 在这跟大家说一下可能不是你们的错误 但是是我的错非常稀奇 好博客的解决方法都试了不管用 最后慢慢查慢慢看 我的错是 在走进到realm时的执行dao层方法时报这个错误
  • flutter dio 请求方式为form-data遇到的问题

    在网络中请求body中有三种方式 postbody query formdata 如下图 现在我们用的恰好是第一种方式 因为首次用这种方式 感觉也是比较坑 后面通过摸索 查看源码发现 需要用fromdata方式包装进去放到请求参数中 正确的
  • 电子元器件知识---三极管

    一 三极管 三级管可以实现这样的控制 当基级没有电流时 它是截止的 而当基极有了电流 三极管就导通了 接下来 简单阐述一下 它为什么能够实现这样的功能 下图是NPN型三极管的示意图 我们知道 硅原子外面含有4个电子 纯净的硅晶体并不导电 因
  • 前端面试思维导图,面试流程注意事项

    前端面试思维导图 前端面试有着一图足矣
  • 计算机网络笔记一(计算机网络基本概念、TCP/IP协议体系)

    1 计算机网络基础概念 1 1计算机网络定义 计算机网络就是互连的 自治的计算机集合 自治 无主从关系 互连 互联互通 1 2什么是Internet Internet是最大的计算机网络 1 2 1从组成细节的角度 由很多个ISP网络互连的网
  • Jira实战

    什么是问题类型 问题类型是为了在请求之间起到简单区别的作用 范例 缺陷 任务 功能 等等 属性 名称 描述 类型 标准类型 父 或子类型 子 图标 好处 图标在筛选器 仪表盘 面板和邮件通知上提供了视觉上的区别 你可以为每一个类型设定一个标
  • 学习笔记 JavaScript ES6 ES6中的类与继承

    学习内容 类的定义 类的继承 静态属性和方法的定义 ES6中 用class关键字声明一个类 class Peple constructor name age this name name this age age showName cons
  • C++多继承构造函数调用顺序

    class B1 public B1 int i cout lt lt consB1 lt
  • python的socket通信,实现数据监听,与串口助手连接并且收发

    1 Socket通信 1 Socket原理 Socket是一种网络通信的抽象接口 用于在不同计算机之间进行进程间通信或网络通信 Socket通常基于TCP IP协议栈 通过网络套接字 socket 在网络中传输数据 它允许不同计算机之间的进
  • 交通路标识别(毕业设计)

    概述 代码获取 可私信 在TensorFlow中实现单镜头多盒检测器 SSD 用于检测和分类交通标志 该实现能够在具有Intel Core i7 6700K的GTX 1080上实现40 45 fps 请注意 此项目仍在进行中 现在的主要问题
  • 基于 ACK Fluid 的混合云优化数据访问(一):场景与架构

    本系列文章将介绍如何基于 ACK Fluid 支持和优化混合云的数据访问场景 概述 在 AI 和大数据时代 算力即正义 强大的算力推动了源源不断的创新 然而 企业自建的算力集群存在资源容量和弹性能力相对有限的问题 在业务低谷时可能会面临高昂
  • CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!

    目录 一 CTF简介 二 CTF竞赛模式 三 CTF各大题型简介 四 CTF学习路线 4 1 初期 1 html css js 2 3天 2 apache php 4 5天 3 mysql 2 3天 4 python 2 3天 5 burp
  • [Concept] IETF 国际互联网工程任务组

    IETF The Internet Engineering Task Force 国际互联网工程任务组 1 1985年成立 2 公开性质的大型国际民间团体 3 互联网标准化组织 4 主要任务 负责互联网相关技术规范的研发和制定 可以在官方网
  • 向Git提交新项目

    向Git提交新项目 假设现在存在项目iyowei cn 项目目录结构如下 1 2 3
  • Maven学习笔记二十:Maven仓库(远程仓库的配置)

    Maven仓库 远程仓库的配置 在很多情况下 默认的中央仓库无法满足项目的需求 可能项目需要的构件存在于另外一个远程仓库中 如 JBoss Maven仓库 这时 可以在POM中配置该仓库 见代码请单
  • cnn 示意图_基于BERT+CNN及GRU语言模型的司法考试问答模型

    在上文 1 提到的BERT CNN司法考试模型的基础上 对模型结构和参数进行了调整 调整后增加了CNN层数 示意图如图1 图1 BERT编码后接入的CNN结构示意图 其中详细参数见图2 图2 CNN和输出层的网络结构参数 在给出的司法考试训
  • Python爬虫实战之抓取猫眼电影

    Python爬虫实战之抓取猫眼电影 1 爬虫概念 网络爬虫 又称为网页蜘蛛 网络机器人 在FOAF社区中间 更经常的称为网页追逐者 是一种按照一定的规则 自动地抓取万维网信息的程序或者脚本 另外一些不常使用的名字还有蚂蚁 自动索引 模拟程序
  • 原码、反码以及补码

    目录 一 概念 二 补码的意义 一 概念 计算机底层存储数据时 存储的是数据对应的二进制数字 对于整型数据 其二进制表示形式有三种 分别是 原码 反码 补码 而实际存储的是整型数据的补码 原码 反码以及补码都是有符号的 其中最高位存放符号位
  • Websocket(一)——原理及基本属性和方法

    初次接触 WebSocket 的人 都会问同样的问题 我们已经有了 HTTP 协议 为什么还需要另一个协议 它能带来什么好处 答案很简单 因为 HTTP 协议有一个缺陷 通信只能由客户端发起 举例来说 我们想了解今天的天气 只能是客户端向服
  • 《Kubernetes下载篇:Ubuntu20.04下载指定版本kubeadm及相关镜像》

    一 背景 在专网情况下 你是无法下载K8S相关的软件包及镜像 这个时候你可能需要提前下载好 那么针对这种情况 如何下载指定版本的K8S相关的软件包及镜像呢 这里以ubuntu 20 04系统为例 通过ctr工具 下载v1 25 8版本的软件