概述

kubernetes1.24开始的版本移除了内置的docker支持,用户可以自行选择需要使用的容器运行时,比如containerd、CRI-O、Docker Engine等等,这里我们采用二进制安装的方式使用containerd作为kubernetes的容器运行时

操作环境

操作系统

CentOS 7.9

containerd版本

v1.6.19

安装步骤

下载containerd、runc、cni-plugins

mkdir -p /workspace/containerd
cd /workspace/containerd
wget https://github.com/containerd/containerd/releases/download/v1.6.19/containerd-1.6.19-linux-amd64.tar.gz
wget https://github.com/containerd/nerdctl/releases/download/v1.2.1/nerdctl-1.2.1-linux-amd64.tar.gz
wget https://raw.githubusercontent.com/containerd/containerd/main/containerd.service
wget https://github.com/opencontainers/runc/releases/download/v1.1.4/runc.amd64
wget https://github.com/containernetworking/plugins/releases/download/v1.2.0/cni-plugins-linux-amd64-v1.2.0.tgz

解压安装上述软件

tar Cxzvf /usr/local containerd-1.6.19-linux-amd64.tar.gz
tar Cxzvvf /usr/local/bin nerdctl-1.2.1-linux-amd64.tar.gz
mkdir -p /usr/local/lib/systemd/system
cp containerd.service /usr/local/lib/systemd/system/containerd.service
systemctl daemon-reload
systemctl enable --now containerd
install -m 755 runc.amd64 /usr/local/sbin/runc
mkdir -p /opt/cni/bin
tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.2.0.tgz

生成默认配置文件

mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml

修改默认配置

编辑生成好的默认配置文件

vim /etc/containerd/config.toml

将配置文件中SystemdCgroup的值修改为true,即SystemdCgroup = true

如下所示

[ plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options ]
SystemdCgroup = false

修改pause镜像源,将registry.k8s.io/pause:3.6修改为registry.aliyuncs.com/google_containers/pause:3.6

[plugins."io.containerd.grpc.v1.cri"]
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.6"

重启containerd,安装就完成了

systemctl restart containerd

使用示例

拉取镜像到指定的命名空间

ctr -n k8s.io image pull registry.aliyuncs.com/google_containers/pause:3.6

重命名标签

ctr -n k8s.io i tag  registry.aliyuncs.com/google_containers/pause:3.6 registry.k8s.io/pause:3.6

查看所有命名空间

ctr namespaces ls

查看指定命名空间的镜像

ctr --n k8s.io image ls

在Linux中安装containerd作为kubernetes的容器运行时的更多相关文章

  1. Kubernetes(k8s)容器运行时(CRI)

    Kubernetes节点的底层由一个叫做"容器运行时"的软件进行支撑,它负责比如启停容器这样的事情.最广为人知的容器运行时当属Docker,但它不是唯一的.事实上,容器运行时这个领 ...

  2. Linux中安装字体

    Linux中安装字体 查看系统中的字体 fc-list 查看系统中的中文字体 fc-list :lang=zh将然后将字体文件拷贝到/usr/share/fonts/中 cp aa.ttl /usr/ ...

  3. Linux中安装C++编译器codeBlock,并配置opencv链接库

    1.Linux中安装codeBlock https://blog.csdn.net/xinyunyishui/article/details/50967395 2.CodeBlock中的中文显示不完全 ...

  4. Linux中安装nodejs及插件

    Linux中安装nodejs及插件 1.去官网下载安装包 英文网址:https://nodejs.org/en/download/ 中文网址:http://nodejs.cn/download/ 通过 ...

  5. Linux中安装python3.6和第三方库

    Linux中安装python3.6和第三方库 如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境,比如yum!!!!! ...

  6. Linux中安装python3

    [centos7中安装python3]http://blog.csdn.net/wjqwinn/article/details/75633714 (一)安装python3前的准备工作1.修改文件中第一 ...

  7. 在Linux中安装JDK和IDEA

    前言 寒假安装虚拟机的时候我就没有安装好,到学校之后,因为时间紧加上更习惯Windows的操作习惯,我只在Windows上安装了JDK和IDEA,但是随着学习的深入,我发现用虚拟机写命令行.新建jav ...

  8. Linux中安装配置spark集群

    一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoop MapReduce所 ...

  9. 在Linux中安装和配置OpenVPN Server的最简便方法!

    本文介绍了如何在基于RPM和DEB的系统中安装和配置OpenVPN服务器.我们在本文中将使用一个名为openvpn-install的脚本,它使整个OpenVPN服务器的安装和配置过程实现了自动化.该脚 ...

  10. 完全零基础在Linux中安装 JDK

    完全零基础在Linux中安装 JDK 总体思路:先确定没有Java程序了 — 然后创建相应路径文件夹 — 下载JDK — 解压到当前路径 — 自定义文件名称 — 配置环境变量 — 检查是否安装成功 第 ...

随机推荐

  1. 工作三年的.NET程序员现状及其感悟

    算上实习,已经工作三年了.时间过的真的很快,我也从一开始的非标自动化行业成功转入了医疗器械行业,如今在苏州园区的BioBay工作,这里我每天都工作的挺开心的.也于11.6号第一次和如今的女朋友见面,并 ...

  2. SynchronizedMap和ConcurrentHashMap同步方式比较

      在开始之前,先介绍下Map是什么? javadoc中对Map的解释如下: An object that maps keys to values . A map cannot contain dup ...

  3. spider_使用request库进行post传参

    # from urllib import parse,request# import jsonimport requests# 有道翻译urlurl = "http://fanyi.youd ...

  4. Gif多图:我常用的 16 个 Sublime Text 快捷键 - 文章 - 伯乐在线

    Gif多图:我常用的 16 个 Sublime Text 快捷键 2014/12/23 · 书籍与教程, 开发 · 4 评论· Sublime Text 分享到: 139 .imooc, .imooc ...

  5. dota中的哲理

    战术和战略: 6k分和3k分玩家的最重要的区别不是英雄玩的不好,而是整体战略不明确. dota玩家游戏时长超过1000h的比比皆是,这些玩家里面分数差距相当大.高的7k往上,低的2k深坑爬不出来. 这 ...

  6. LCP 34. 二叉树染色

    class Solution: def maxValue(self, root: TreeNode, k: int) -> int: def dfs(root): # 空节点价值全为0 res ...

  7. python3 文件上传

    1 # 文件上传方法 2 def upload_files(filepath, url, headers, data): 3 filename = filepath.split('\\')[-1] 4 ...

  8. Jmeter五、jmeter中的逻辑控制器

    1.simple controller 提供一个块的结构和控制.更方便,更清晰. 嵌套其他的controller 2.loop controller 循环控制器 控制循环次数 可以使用变量 ${__t ...

  9. reactHooks_useEffect

    当在直接在组件内使用setState时,会产生"渲染次数过多"的错误 例如: const A = ( ) => {   const [num,setNum] = useSta ...

  10. centos7 redis 无法用 systemctl 启动

    今天刚安装了redis,修改了 /etc/redis.conf 的内容. 尝试在 bind 后添加一个地址 "bind 127.0.0.1 -::* 192.168.2.1", 后 ...