Linux中國

如何在 Ubuntu 22.04 上安裝 CRI-O 容器運行時

CRI-O 是 Kubernetes 的開源輕量級容器運行時。它是使用 開放容器組織 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_dirplugin_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: https://www.linuxtechi.com/install-crio-container-runtime-on-ubuntu/

作者:James Kiarie 選題:lkxed 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國