導讀:在本指南中,我們將逐步演示如何在 Ubuntu 22.04 LTS 上安裝 CRI-O。
本文字數:4554,閱讀時長大約: 5分鐘
CRI-O 是 Kube.NETes 的開源輕量級容器運行時。它是使用 開放容器組織(Open Container Initiative)(OCI)兼容運行時的 Kubernetes 容器運行時接口(Container Runtime Interface)(CRI)的實現。在運行 Kubernetes 時,它是 Docker 的完美替代品。
在本指南中,我們將逐步演示如何在 Ubuntu 22.04 LTS 上安裝 CRI-O。
先決條件
在開始之前,這是你需要的:
? 具有 SSH 訪問權限的 Ubuntu 22.04 實例
? 在實例上配置的 sudo 用戶
? 快速穩定的互聯網連接
有了這個,讓我們開始吧。
步驟 1:更新系統并安裝依賴
立即登錄你的服務器實例,并按如下方式更新包列表:
-
$ sudo apt update
更新本地包索引后,按如下方式安裝依賴項:
-
$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y
步驟 2:添加 CRI-O 存儲庫
要安裝 CRI-O,我們需要在 Ubuntu 上添加或啟用它的倉庫。但首先,你需要根據操作系統和要安裝的 CRI-O 版本定義變量。
因此,定義如下變量:
-
$ export OS=xUbuntu_22.04
-
$ export CRIO_VERSION=1.24
完成后,運行以下命令集以添加 CRI-O Kubic 倉庫:
-
$ echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /"| sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
-
$ echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$CRIO_VERSION/$OS/ /"|sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$CRIO_VERSION.list
此后,為 CRI-O 倉庫導入 GPG 密鑰:
-
$ curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$CRIO_VERSION/$OS/Release.key | sudo apt-key add -
-
$ curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | sudo apt-key add -
這會產生如下輸出:
再次更新包索引,使系統與新添加的 CRI-O Kubic 倉庫同步:
-
$ sudo apt update
步驟 3:在 Ubuntu 22.04 上安裝 CRI-O
添加倉庫后,使用 APT 包管理器安裝 CRI-O 和運行時客戶端:
-
$ sudo apt install cri-o cri-o-runc -y
安裝后,啟動并啟用 CRI-O 守護程序:
-
$ sudo systemctl start crio
-
$ sudo systemctl enable crio
接下來,驗證 CRI-O 服務是否正在運行:
-
$ sudo systemctl status crio
你應該看到以下輸出,表明 CRI-O 服務正在按預期運行:
步驟 4:為 CRI-O 安裝 CNI 插件
接下來,你需要安裝 CNI(容器網絡接口(Container Network Interface))以及 CNI 插件。請記住,環回和橋接配置已啟用并且足以使用 CRI-O 運行 容器莢(Pod):
因此,要安裝 CNI 插件,請運行以下命令:
-
$ sudo apt install containernetworking-plugins -y
安裝后,編輯 CRI-O 配置文件:
-
$ sudo nano /etc/crio/crio.conf
取消注釋network_dir
和plugin_dirs
部分,并在plugin_dirs
下添加/usr/lib/cni/
。
保存更改并退出配置文件。
接下來,重啟 CRIO 服務:
-
$ sudo systemctl restart crio
步驟 5:安裝 CRI-O 工具
此外,你還需要安裝cri-tools
包,它提供了crictl
命令行程序,用于交互和管理容器和 pod。
為此,請運行以下命令:
-
$ sudo apt install -y cri-tools
安裝后,確認crictl
的版本和RunTimeVersion
如下:
-
$ sudo crictl --runtime-endpoint unix:///var/run/crio/crio.sock version
一定要檢查 CRI-O 是否準備好使用以下命令部署容器莢:
-
$ sudo crictl info
crictl
命令提供自動補全功能,讓你可以通過按TAB
鍵自動補全命令。要啟用命令補全,請運行以下命令:
-
$ sudo su -
-
-
# crictl completion > /etc/bash_completion.d/crictl
然后重新加載當前的 Bash 會話:
-
# source ~/.bashrc
要使用自動補全功能,你需要注銷或啟動新的終端會話。然后只需鍵入crictl
命令并按TAB
鍵即可查看所有選項。
-
$ crictl
步驟 6:使用 crictl 程序創建容器莢
至此,CRI-O 已完全安裝和配置并準備好啟動容器莢。在本節中,我們將在容器莢中創建一個 Apache Web 服務器并確認它是否正在處理請求。
首先,我們將使用容器莢配置文件設置一個沙箱或隔離環境,如下所示:
-
$ sudo nano apache_sandbox.json
然后我們將以下配置添加到文件中:
-
{
-
"metadata": {
-
"name": "apache-sandbox",
-
"namespace": "default",
-
"attempt": 1,
-
"uid": "hdishd83djaidwnduwk28bcsb"
-
},
-
"linux": {
-
},
-
"log_directory": "/tmp"
-
}
保存并退出。接下來使用以下命令創建容器莢。這會打印出很長的字母數字,它是容器莢 ID。
-
$ sudo crictl runp apache_sandbox.json
要確認容器莢已創建,請運行命令:
-
$ sudo crictl pods
要檢索有關創建的容器莢的更多信息,請運行以下命令:
-
$ sudo crictl inspectp --output table 05ba2f0704f22
這將打印出 ID、名稱、UID、命名空間、創建日期、內部 IP 等詳細信息。
步驟 7:在容器莢中創建容器
這部分中,我們將在容器莢中創建一個 Apache Web 服務器容器。因此,使用crictl
程序從 Docker Hub 拉取 Apache Web 服務器鏡像:
-
$ sudo crictl pull httpd
你可以如圖所示驗證拉取的鏡像:
-
$ sudo crictl images
接下來,我們將為 Apache Web 服務器定義一個容器配置文件:
-
$ sudo nano container_apache.json
復制并粘貼以下代碼:
-
{
-
"metadata": {
-
"name": "apache"
-
},
-
"image":{
-
"image": "httpd"
-
},
-
"log_path":"apache.0.log",
-
"linux": {
-
}
-
}
保存并退出配置文件。
最后,要將容器連接到之前創建的沙盒容器莢,請運行以下命令:
-
$ sudo crictl create 05ba2f0704f22 container_apache.json apache_sandbox.json
這會向終端輸出一長串字母數字 ID。請記下此 ID。
最后,使用 ID 啟動 Apache Web 服務器容器,如下所示:
-
$ sudo crictl start 37f4d26510965452aa918f04d629f5332a1cd398d4912298c796942e22f964a7
要檢查容器狀態,請運行以下命令:
-
$ sudo crictl ps
要驗證 Apache Web 服務器是否正在運行,請使用curl
命令和容器莢的內部 ID 向 Web 服務器發送 HTTP 請求:
-
$ curl -I 10.85.0.2
以下輸出確認 Web 服務器正在運行:
結論
這就是全部的指南。我們已經在 Ubuntu 22.04 上成功安裝了 CRI-O,并繼續創建容器莢和容器。歡迎你提出意見和反饋。
via:
作者: 選題: 譯者: 校對:
本文由 原創編譯, 榮譽推出
LCTT 譯者 :geekpi
翻譯: 1903.5 篇
貢獻: 3447 天
2013-10-25
2023-04-03
https://linux.cn/lctt/geekpi
歡迎遵照 CC-BY-SA 協議規定轉載,
如需轉載,請在文章下留言 “ 轉載:公眾號名稱”,
我們將為您添加白名單,授權“ 轉載文章時可以修改”。