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與二進制安裝的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- Linux安裝Docker詳細教程
- 通過idea打包項目到docker的操作方法
- docker遷移數據目錄的方法步驟
- Docker安裝阿裡雲服務器和在虛擬機安裝遇到的坑(問題小結)
- Docker 環境配置以及問題解決方案