linux cpu占用率如何看
452
2022-09-09
Containerd容器运行时(2):yum安装与二进制安装,哪个更适合你?
一、前言
Containerd的安装,如果使用yum安装会简单很多,但安装的版本基本是固定的,在实际的业务场景不太适合。
二进制安装的方式,相对比较灵活。
二、yum方式安装
安装containerd会自动安装runc。
2.1 下载阿里云镜像源
$ wget -O /etc/yum.repos.d/docker-ce.repo 搜索containerd软件
$ yum list | grep containerdcontainerd.io.x86_64 1.4.9-3.1.el7 installedcontainerd.x86_64 1.2.14-1.el7 epelcontainerd.io.x86_64 1.6.4-3.1.el7 docker-ce-stable
2.3 安装
$ yum install -y containerd$ rpm -qa | grep containerdcontainerd.io-1.4.9-3.1.el7.x86_64
2.4 启动containerd服务
$ systemctl start containerd$ systemctl enable containerd$ systemctl status containerd
2.5 查看服务信息
$ ctr versionClient: 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 tar zxvf cri-containerd-1.6.5-linux-amd64.tar.gz$ ls -ldrwxr-xr-x 4 root root 51 4月 26 07:52 etcdrwxr-xr-x 4 root root 35 4月 26 07:51 optdrwxr-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 --versioncontainerd github.com/containerd/containerd v1.6.3f830866066ed06e71bad64871bccfd34daf6309c
3.6 安装runc(二进制)
由于二进制包中提供的runC默认需要系统中安装seccomp支持,需要单独安装,且不同版本runC对seccomp版本要求不一致,所以建议单独下载runC 二进制包进行安装,里面包含了seccomp模块支持。
$ cp usr/local/sbin/runc /usr/bin/$ runc -versionrunc: symbol lookup error: runc: undefined symbol: seccomp_notify_respond
【报错原因】 缺少依赖包libseccomp(2.4以上版本)
【解决办法】 安装libseccomp 2.5.1
$ wget rpm -ivh libseccomp-2.5.1-1.el8.x86_64.rpm$ rpm -qa | grep libseccomplibseccomp-2.5.1-1.el8.x86_64$ runc -versionrunc version 1.1.2commit: v1.1.2-0-ga916309fspec: 1.0.2-devgo: go1.17.11libseccomp: 2.5.1
四、推荐阅读(精品文章)
Harbor高可用集群设计及部署(实操+视频),基于离线安装方式Harbor进阶:使用Harbor存储Helm chartPython实现Harbor私有镜像仓库的垃圾自动化Harbor jobservice组件异常问题处理Harbor高可用设计: 使用外部Redis缓存部分阿里云镜像迁移到Harbor详细的操作步骤如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?Harbor版本升级(1.10.7—>2.0.x)担心Harbor数据丢失?谈谈Harbor的备份和恢复方法。Harbor版本升级(图文并茂)多用户场景的Harbor,我是如何轻松管理的!Harbor高可用设计,使用外部数据库-详细到爆的操作步骤
shell中获取Harbor中所有的镜像列表(超实用,建议收藏)harbor密码丢失,忘记Harbor密码?Helm部署Harbor,实现高可用的镜像仓库(超详细分享)~后附踩坑记录Harbor配置优化,配置文件深度解析!Prometheus监控Harbor实战(全网首发)k8s节点如何从Harbor中拉取镜像的?镜像拉取凭证的配置企业内网如何搭建安全的Harbor服务?(超详细)Harbor一键部署——初学者如何快速了解它?
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~