網站首頁 編程語言 正文
一、前言
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
原文鏈接:https://blog.51cto.com/lidabai/5408290
相關推薦
- 2024-03-22 springboot 中 Getmapping獲取參數的方式
- 2022-05-09 Python實現連接FTP并下載文件夾_python
- 2023-02-10 數據卷(Data?Volumes)及dockefile詳解_docker
- 2022-08-07 Android?無障礙服務?performAction?調用過程分析_Android
- 2022-07-22 idea 編譯項目后target包沒有resources文件
- 2023-03-20 C#中如何生成安裝包_C#教程
- 2022-05-08 Python?轉換數據類型函數和轉換數據類型的作用_python
- 2022-08-15 Spring框架常考知識點總結
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支