- CKA/CKAD應試教程:從Docker到Kubernetes完全攻略
- 段超飛編著
- 969字
- 2025-03-17 18:51:23
1.3 安裝并配置Containerd(在vms101上)
【必知必會】安裝Containerd并配置加速器。
Docker是運行時,Containerd也是運行時。這里我們主要講Containerd的使用,前面看了Docker的結構,那么再來看一下Containerd的結構,如圖1-9所示。

圖1-9 Containerd的結構
當我們安裝好Containerd并啟動Containerd服務后,就是把服務器端Containerd運行起來了,這個服務器端提供了一個gRPC協議的接口/var/run/containerd/containerd.sock供客戶端連接。
如果要管理鏡像、管理容器,則需要一個客戶端工具,常見的客戶端工具包括nerdctl、crictl、ctr等,這些工具通過/var/run/containerd/containerd.sock接口連接到Containerd服務器端。
1.3.1 安裝Containerd
本小節的操作都是在vms101上進行的。
第1步 配置yum源。

第2步 安裝Containerd。

第3步 生成Containerd的配置文件。

第4步 配置加速器。
修改/etc/containerd/config.toml,按如下內容進行修改。
第一:搜索mirrors,把

改為

第二:搜索sandbox,把

改為

此文件也可以通過如下命令來下載。

第5步 啟動Containerd并設置開機啟動。

第6步 設置crictl客戶端連接到Containerd。
因為crictl是一個客戶端,它默認是不知道要連接到哪個服務器端的,所以執行crictl命令比如crictl ps命令時會報錯。

這是因為crictl不知道從哪里連接到服務器端,所以我們需要明確地告訴crictl要連接到哪個服務器端,故需要執行如下命令。

這時再次執行crictl命令就不會報錯了。
1.3.2 安裝Containerd客戶端nerdctl
因為Containerd是服務器端,為了能夠更好地使用Containerd,我們可以安裝第三方客戶端nerdctl。
1. 下載nerdctl和CNI網絡插件
到https://github.com/containerd/nerdctl/releases下載最新版的nerdctl,如圖1-10所示。
到https://github.com/containernetworking/plugins/releases下載CNI網絡插件,如圖1-11所示。

圖1-10 下載nerdctl

圖1-11 下載CNI網絡插件
第1步 安裝nerdctl。

第2步 安裝CNI網絡插件。

第3步 創建nerdctl所需要的配置文件。

配置文件里的address指定了nerdctl這個客戶端到哪里連接服務器端,namespace指定了nerdctl使用的命名空間是default,下面我們來了解一下命名空間的概念。
2. 了解Containerd里的命名空間
如同我們通過文件夾可以歸類很多不同的文件一樣,我們也可以通過命名空間歸類不同的容器和鏡像。在Containerd里有幾個不同的命名空間,crictl默認使用的是k8s.io命名空間,nerdctl默認使用的是default命名空間,如圖1-12所示。

圖1-12 Containerd里的命名空間
crictl拉取的鏡像都放在k8s.io命名空間里,nerdctl查看鏡像時查看的是default命名空間里的鏡像,所以nerdctl看不到crictl拉取的鏡像。如果要讓nerdctl也使用k8s.io命名空間,我們可以修改nerdctl的配置文件/etc/nerdctl/nerdctl.toml,把里面的namespace的值設置為k8s.io,或者通過修改變量export CONTAINERD_NAMESPACE=k8s.io來實現。
后面的練習里,nerdctl都是在default命名空間里做的,更建議拉取和查看鏡像使用crictl命令來做,對容器的管理用nerdctl來做。
第4步 設置nerdctl可以使用Tab鍵。
編輯/etc/profile,在第二行里添加source <(nerdctl completion bash),如圖1-13所示。

圖1-13 設置nerdctl可以使用Tab鍵
之后執行source /etc/profile命令讓修改生效。
在vms101上拉取BusyBox鏡像。

- Intel Galileo Essentials
- Visual FoxPro程序設計教程(第3版)
- TestNG Beginner's Guide
- MySQL 8 DBA基礎教程
- Python Game Programming By Example
- Learn Swift by Building Applications
- 青少年Python編程入門
- SQL Server 2016數據庫應用與開發
- Windows Phone 7.5:Building Location-aware Applications
- C++寶典
- Python項目實戰從入門到精通
- Java程序設計基礎(第6版)
- 從“1”開始3D編程
- Serverless從入門到進階:架構、原理與實踐
- PHP程序設計經典300例