概述
鏡像 P2P 加速功能利用集群節點的帶寬資源,在節點之間進行鏡像分發,減少對容器鏡像服務的壓力,可以大幅提升鏡像拉取速度,減少應用部署時間。
前置條件
安裝 cube-p2p-acceleration 插件。
集群所使用的容器運行時為 containerd,且 containerd版本不低于1.6。
已創建容器鏡像服務企業版實例。
使用步驟
安裝插件
安裝 cube-p2p-acceleration插件,目前有兩種方式:
登陸云容器引擎控制臺,在 "插件" - "插件市場" 中找到 cube-p2p-acceleration插件并安裝。
使用helm部署,參考命令:
helm install RELEASE_NAME --set key=vaule //registry-vpc-crs-xxx.daliqc.cn/plugins/cube-p2p-acceleration:1.0.0 --namespace kube-system
重點推薦方式1。
配置參數
crsRegistries參數配置用戶使用的容器鏡像服務的內網實例地址,可配置多個,注意需要指定https協議。
注意
需要將樣例修改為實際的實例地址,若實例地址配置不正確,則P2P加速插件無法加速對應的鏡像拉取過程。
crsRegistries:
- "//registry-vpc-crs-xxx.daliqc.cn"
- "//xxx-registry-vpc-xxx.crs.daliqc.cn" persistence參數配置數據存儲。
persistence.nodeNames指定集群中若干節點的名稱用于進行本地數據存儲,建議設置5個。
persistence.directoryPath指定節點本地的數據存儲目錄路徑,每個節點目錄空間不小于8G。
注意
需要將樣例修改為實際的節點名稱,否則會導致插件安裝失敗。
若指定節點發生故障,會影響P2P加速插件功能。
persistence:
nodeNames:
- "ccse-nodename1"
- "ccse-nodename2"
- "ccse-nodename3"
- "ccse-nodename4"
- "ccse-nodename5"
directoryPath: /p2p-dataP2P加速插件默認會占用每個節點的65001和40901端口進行請求代理和健康檢查,可通過 proxyPort 和 healthCheckPort 參數修改對應端口。
# 代理端口
proxyPort: 65001
# 健康檢查端口
healthCheckPort: 40901加速驗證
P2P加速插件安裝后,當集群中的工作負載拉取對應容器鏡像倉庫的鏡像時會默認進行加速。當工作負載成功拉取鏡像后,可登錄其所在節點中名稱包含 cube-p2p-acceleration-dfdaemon 的容器組,通過以下命令查看日志:
grep "peer task done" /var/log/dragonfly/daemon/core.log有形如以下的日志輸出則說明鏡像拉取成功被P2P插件加速:
{
"level":"info",
"ts":"2023-04-10 07:31:02.897",
"caller":"peer/peertask_conductor.go:1330",
"msg":"peer task done, cost: 6483ms",
"peer":"10.244.0.5-1-be485ea5-6d54-4f56-8f56-bdbe76ec8469",
"task":"0fe34e3fcb64d49b09fe7c759f47a373b7590fe4dbe1da6d9c732eee516e4cb4",
"component":"PeerTask",
"trace":"daa2ffd1021779dfbd3162ead765e0ba"
}否則,需要檢查插件安裝時容器鏡像服務實例的地址是否輸入正確,并重新進行插件安裝。
卸載
建議通過云容器引擎插件控制臺卸載本插件。如需通過 Helm 卸載此應用,可以參考如下命令:
$ helm uninstall RELEASE_NAME --namespace kube-system卸載P2P加速插件后,插件相關服務會被自動刪除。此外,還需要通過控制臺或手動刪除插件遺留的以下持久卷聲明和持久卷:
# 5個持久卷聲明
data-cube-p2p-acceleration-mysql-0
redis-data-cube-p2p-acceleration-redis-master-0
redis-data-cube-p2p-acceleration-redis-replicas-0
redis-data-cube-p2p-acceleration-redis-replicas-1
redis-data-cube-p2p-acceleration-redis-replicas-2
# 5個持久卷
p2p-local-pv-0
p2p-local-pv-1
p2p-local-pv-2
p2p-local-pv-3
p2p-local-pv-4若不刪除,則會影響插件的再次安裝。