如何在 Ubuntu 22.04 上安裝 CRI-O 容器運行時
CRI-O 是 Kubernetes 的開源輕量級容器運行時。它是使用 開放容器組織Open Container Initiative(OCI)兼容運行時的 Kubernetes 容器運行時接口Container Runtime Interface(CRI)的實現(xiàn)。在運行 Kubernetes 時,它是 Docker 的完美替代品。
在本指南中,我們將逐步演示如何在 Ubuntu 22.04 LTS 上安裝 CRI-O。
先決條件
在開始之前,這是你需要的:
- 具有 SSH 訪問權限的 Ubuntu 22.04 實例
- 在實例上配置的 sudo 用戶
- 快速穩(wěn)定的互聯(lián)網連接
有了這個,讓我們開始吧。
步驟 1:更新系統(tǒng)并安裝依賴
立即登錄你的服務器實例,并按如下方式更新包列表:
更新本地包索引后,按如下方式安裝依賴項:
步驟 2:添加 CRI-O 存儲庫
要安裝 CRI-O,我們需要在 Ubuntu 上添加或啟用它的倉庫。但首先,你需要根據(jù)操作系統(tǒng)和要安裝的 CRI-O 版本定義變量。
因此,定義如下變量:
完成后,運行以下命令集以添加 CRI-O Kubic 倉庫:
此后,為 CRI-O 倉庫導入 GPG 密鑰:
這會產生如下輸出:
再次更新包索引,使系統(tǒng)與新添加的 CRI-O Kubic 倉庫同步:
步驟 3:在 Ubuntu 22.04 上安裝 CRI-O
添加倉庫后,使用 APT 包管理器安裝 CRI-O 和運行時客戶端:
安裝后,啟動并啟用 CRI-O 守護程序:
接下來,驗證 CRI-O 服務是否正在運行:
你應該看到以下輸出,表明 CRI-O 服務正在按預期運行:
步驟 4:為 CRI-O 安裝 CNI 插件
接下來,你需要安裝 CNI(容器網絡接口Container Network Interface)以及 CNI 插件。請記住,環(huán)回和橋接配置已啟用并且足以使用 CRI-O 運行 容器莢Pod:
因此,要安裝 CNI 插件,請運行以下命令:
安裝后,編輯 CRI-O 配置文件:
取消注釋 ??network_dir?
? 和 ??plugin_dirs?
? 部分,并在 ??plugin_dirs?
? 下添加 ??/usr/lib/cni/?
?。
保存更改并退出配置文件。
接下來,重啟 CRIO 服務:
步驟 5:安裝 CRI-O 工具
此外,你還需要安裝 ??cri-tools?
? 包,它提供了 ??crictl?
? 命令行程序,用于交互和管理容器和 pod。
為此,請運行以下命令:
安裝后,確認 ??crictl?
? 的版本和 ??RunTimeVersion?
? 如下:
一定要檢查 CRI-O 是否準備好使用以下命令部署容器莢:
??crictl?
? 命令提供自動補全功能,讓你可以通過按 ??TAB?
? 鍵自動補全命令。要啟用命令補全,請運行以下命令:
然后重新加載當前的 Bash 會話:
要使用自動補全功能,你需要注銷或啟動新的終端會話。然后只需鍵入 ??crictl?
? 命令并按 ??TAB?
? 鍵即可查看所有選項。
步驟 6:使用 crictl 程序創(chuàng)建容器莢
至此,CRI-O 已完全安裝和配置并準備好啟動容器莢。在本節(jié)中,我們將在容器莢中創(chuàng)建一個 Apache Web 服務器并確認它是否正在處理請求。
首先,我們將使用容器莢配置文件設置一個沙箱或隔離環(huán)境,如下所示:
然后我們將以下配置添加到文件中:
保存并退出。接下來使用以下命令創(chuàng)建容器莢。這會打印出很長的字母數(shù)字,它是容器莢 ID。
要確認容器莢已創(chuàng)建,請運行命令:
要檢索有關創(chuàng)建的容器莢的更多信息,請運行以下命令:
這將打印出 ID、名稱、UID、命名空間、創(chuàng)建日期、內部 IP 等詳細信息。
步驟 7:在容器莢中創(chuàng)建容器
這部分中,我們將在容器莢中創(chuàng)建一個 Apache Web 服務器容器。因此,使用 ??crictl?
? 程序從 Docker Hub 拉取 Apache Web 服務器鏡像:
你可以如圖所示驗證拉取的鏡像:
接下來,我們將為 Apache Web 服務器定義一個容器配置文件:
復制并粘貼以下代碼:
保存并退出配置文件。
最后,要將容器連接到之前創(chuàng)建的沙盒容器莢,請運行以下命令:
這會向終端輸出一長串字母數(shù)字 ID。請記下此 ID。
最后,使用 ID 啟動 Apache Web 服務器容器,如下所示:
要檢查容器狀態(tài),請運行以下命令:
要驗證 Apache Web 服務器是否正在運行,請使用 ??curl?
? 命令和容器莢的內部 ID 向 Web 服務器發(fā)送 HTTP 請求:
以下輸出確認 Web 服務器正在運行:
結論
這就是全部的指南。我們已經在 Ubuntu 22.04 上成功安裝了 CRI-O,并繼續(xù)創(chuàng)建容器莢和容器。歡迎你提出意見和反饋。