概述

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. VMware 15pro虚拟机网络设置

    在关闭虚拟机的情况下:VM 15pro. 编辑->虚拟网络编辑器:

  2. 【BOOK】Ajax数据爬取

    Requests获取原始HTML文档,Ajax加载和JavaScript处理的数据无法获得 一.Ajax Ajax-异步的JavaScript和XML Ajax请求页面更新: 1. 发送请求 2. 解 ...

  3. java发送短信验证码带倒计时

    分享一个完整的java发送短信验证码的完整实例,这是一个官方的使用demo,带有60秒倒计时功能. 效果: 我使用的是榛子云短信平台, 官网地址:http://smsow.zhenzikj.com 我 ...

  4. 给定两个字符串,均只包含英文字母,需区分大小写,一个是源字符串SS(长度<1000), 另一个是目标字符串TS(长度<1000),请问能否通过删除SS中的字符(不改变顺序)将它变换成TS,如果可以输出“YES",不可以则输出“NO"。 输入说明:第一行为源字符串SS,第二行为目标字符串TS。

    import java.util.Scanner;/*    给定两个字符串,均只包含英文字母,需区分大小写,一个是源字符串SS(长度<1000),    另一个是目标字符串TS(长度<1 ...

  5. Go语言中密码加密校验

    使用go自带的库bcrypt bcrypt是不可逆的加密算法,无法通过解密密文得到明文. bcrypt和其他对称或非对称加密方式不同的是,不是直接解密得到明文,也不是二次加密比较密文,而是把明文和存储 ...

  6. delete、truncate、drop的区别

    delete:只删除数据,不删除结构.删除的数据存储在系统回滚段中,可以回滚.不会自动提交事务. 在InnoDB中,delete不会真的把数据删除,mysql实际上只是给删除的数据打了个标记为已删除, ...

  7. scala之函数式编程

    1.面相对象编程和函数式编程 2.函数和方法的区别 scala可以在任何的语法结构中声明任何的语法: scala中函数可以嵌套定义: scala中如果main内部的函数 和 main外部的函数名称.参 ...

  8. vue项目浏览器ioc小图标

    1 先有一个需要图片,png .jpg ...格式都可以 2 把图片转换成 .con 格式的图标  ,http://www.bitbug.net/使用比特虫转换 ,目标尺寸:16*16 或者 32*3 ...

  9. PHP接口跨域问题的解决方案

    先来看一下问题 请求头有多余的参数 解决方案是配置允许 详细代码如下: // 可跨域域名列表$domains = [ 'http://localhost:8080', 'http://test.qqq ...

  10. Python 去掉文本内容中的\xa0字符

    爬取网页时,不可避免会遇到\xa0字符串,就会发现,正则re.sub(r'\xa0', '')和字符串的replace都不管用. 通常地,我们所用的空格的ASCII码是 \x20 ,是在标准ASCII ...