Containerd容器运行yum安装与二进制安装

 更新时间:2022年06月23日 10:30:28   作者:键客李大白  
这篇文章主要为大家介绍了Containerd容器运行yum安装与二进制安装,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一、前言

Containerd的安装,如果使用yum安装会简单很多,但安装的版本基本是固定的,在实际的业务场景不太适合。

二进制安装的方式,相对比较灵活。

二、yum方式安装

安装containerd会自动安装runc。

2.1 下载阿里云镜像源

$ wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.2 搜索containerd软件

$ yum list | grep containerd
containerd.io.x86_64         1.4.9-3.1.el7       installed
containerd.x86_64            1.2.14-1.el7        epel
containerd.io.x86_64         1.6.4-3.1.el7       docker-ce-stable

2.3 安装

$ yum install  -y containerd
$ rpm -qa |  grep containerd
containerd.io-1.4.9-3.1.el7.x86_64

2.4 启动containerd服务

$ systemctl start  containerd
$ systemctl enable  containerd
$ systemctl status  containerd

2.5 查看服务信息

$ ctr version
Client:
  Version:  1.4.9       #客户端版本号
  Revision: e25210fe30a0a703442421b0f60afac609f950a3
  Go version: go1.15.14
 
Server:
  Version:  1.4.9    #服务端版本号
  Revision:  e25210fe30a0a703442421b0f60afac609f950a3
  UUID: 3a988dc2-25d5-4753-914c-3344e4cb3c6e

三、二进制方式安装

3.1 下载二进制包

Containerd有两种安装包:

containerd-xxx:这种包用于单机测试没问题,不包含runC,需要提前安装。

cri-containerd-cni-xxxx:包含runc和k8s里的所需要的相关文件。k8s集群里需要用到此包。虽然包含runC,但是依赖系统中的seccomp(安全计算模式,是一种限制容器调用系统资源的模式。)

$ wget https://github.com/containerd/containerd/releases/download/v1.6.5/cri-containerd-1.6.5-linux-amd64.tar.gz
$ tar zxvf cri-containerd-1.6.5-linux-amd64.tar.gz
$ ls  -l
drwxr-xr-x  4 root root        51 4月  26 07:52 etc
drwxr-xr-x  4 root root        35 4月  26 07:51 opt
drwxr-xr-x  3 root root        19 4月  26 07:50 usr

etc目录:主要为containerd服务管理配置文件及cni虚拟网卡配置文件;

opt目录:主要为gce环境中使用containerd配置文件及cni插件;

usr目录:主要为containerd运行时的二进制文件,包含runc;

containerd 的安装包中一共有五个文件,通过上面的命令它们被安装到了 /usr/local/bin 目录中:

containerd:即容器的运行时,以 gRPC 协议的形式提供满足 OCI 标准的 API;

containerd-release:containerd 项目的发行版发布工具;

containerd-stress:containerd压力测试工具;

containerd-shim:这是每一个容器的运行时载体,我们在 docker 宿主机上看到的 shim 也正是代表着一个个通过调用 containerd 启动的 docker 容器;

ctr:它是一个简单的 CLI 接口,用作 containerd 本身的一些调试用途,投入生产使用时还是应该配合docker 或者 cri-containerd 部署;

3.2 拷贝二进制可执行文件到`$PATH`中

在解压安装包后,在解压后的usr/local/bin、目录下有相关的二进制可执行文件,将其复制到$PATH环境中。

$ ls usr/local/bin/
containerd  containerd-shim  containerd-shim-runc-v1  containerd-shim-runc-v2  containerd-stress  crictl 
critest  ctd-decoder  ctr
$ cp usr/local/bin/* 
/usr/local/bin/

3.3 创建配置文件

Containerd 的默认配置文件为 /etc/containerd/config.toml

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

3.4 创建服务管理配置文件

拷贝服务管理配置文件到/usr/lib/systemd/system/目录

$ grep -v ^# etc/systemd/system/containerd.service
$ cp etc/systemd/system/containerd.service
/usr/lib/systemd/system/containerd.service

3.5 启动 containerd 服务

$ sudo systemctl daemon-reload
$ sudo systemctl enable --now containerd.service
$ sudo systemctl status containerd.service

 查看版本

$ containerd  --version
containerd github.com/containerd/containerd v1.6.3
f830866066ed06e71bad64871bccfd34daf6309c

3.6 安装runc(二进制)

由于二进制包中提供的runC默认需要系统中安装seccomp支持,需要单独安装,且不同版本runC对seccomp版本要求不一致,所以建议单独下载runC 二进制包进行安装,里面包含了seccomp模块支持。

$ cp usr/local/sbin/runc  /usr/bin/
$ runc -version
runc: symbol lookup error: runc: undefined symbol: seccomp_notify_respond

【报错原因】 缺少依赖包libseccomp(2.4以上版本)

【解决办法】 安装libseccomp 2.5.1

$ wget http://rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/libseccomp-2.5.1-1.el8.x86_64.rpm
$ rpm -ivh libseccomp-2.5.1-1.el8.x86_64.rpm
$ rpm -qa |  grep libseccomp
libseccomp-2.5.1-1.el8.x86_64
$ runc  -version
runc version 1.1.2
commit: v1.1.2-0-ga916309f
spec: 1.0.2-dev
go: go1.17.11
libseccomp: 2.5.1

以上就是Containerd容器运行yum安装与二进制安装的详细内容,更多关于Containerd容器yum与二进制安装的资料请关注脚本之家其它相关文章!

相关文章

  • 关于k8s中subpath的使用详解

    关于k8s中subpath的使用详解

    这篇文章主要介绍了k8s中subpath的使用,文章介绍分为两种情况给大家详细讲解,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • k8s Ingress实现流量路由规则控制的定义格式类型

    k8s Ingress实现流量路由规则控制的定义格式类型

    这篇文章主要为大家介绍了k8s Ingress 实现流量路由规则控制的定义格式及类型详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • K8S部署Kafka界面管理工具(kafkamanager)方法详解

    K8S部署Kafka界面管理工具(kafkamanager)方法详解

    这篇文章主要介绍了K8S部署Kafka界面管理工具(kafkamanager)方法详解,需要的朋友可以参考下
    2022-01-01
  • 教你在k8s上部署HADOOP-3.2.2(HDFS)的方法

    教你在k8s上部署HADOOP-3.2.2(HDFS)的方法

    这篇文章主要介绍了k8s-部署HADOOP-3.2.2(HDFS)的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • kubernetes(k8s)中Yaml文件详解

    kubernetes(k8s)中Yaml文件详解

    这篇文章主要给大家介绍了关于kubernetes(k8s)中Yaml文件详解的相关资料,YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便,需要的朋友可以参考下
    2023-12-12
  • K8S 实用工具之合并多个kubeconfig实现详解

    K8S 实用工具之合并多个kubeconfig实现详解

    这篇文章主要为大家介绍了K8S 实用工具之合并多个kubeconfig实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • k8s自动化安装脚本(二进制)的操作步骤

    k8s自动化安装脚本(二进制)的操作步骤

    Kubernetes k8s安装脚本,非常好用,下面这篇文章主要给大家介绍了关于k8s自动化安装脚本(二进制)的操作步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • k8s编排之StatefulSet知识点详解二

    k8s编排之StatefulSet知识点详解二

    这篇文章主要为大家介绍了k8s编排之StatefulSet知识点的部分详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 虚拟化技术概述 虚拟机安装与管理手册

    虚拟化技术概述 虚拟机安装与管理手册

    这篇文章主要为大家详细介绍了虚拟化技术原理,如何安装与管理虚拟机virt-manger,virsh等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • K8S删除pod的4种方法小结

    K8S删除pod的4种方法小结

    在Kubernetes集群环境中工作时,有时会遇到需要从一个工作节点中删除pod的情况,下面这篇文章主要给大家介绍了关于K8S删除pod的4种方法,需要的朋友可以参考下
    2024-01-01

最新评论