概述
镜像 P2P 加速功能利用集群节点的带宽资源,在节点之间进行镜像分发,减少对容器镜像服务的压力,可以大幅提升镜像拉取速度,减少应用部署时间。
前提条件
- 安装
cube-p2p-acceleration
插件。 - 集群所使用的容器运行时为
containerd
,且containerd
版本不低于1.6。 - 已创建容器镜像服务企业版实例。
使用步骤
安装插件
安装 cube-p2p-acceleration
插件,目前有两种方式:
-
登陆云容器引擎控制台,在 插件-插件市场 中找到
cube-p2p-acceleration
插件并安装。 -
使用helm部署,参考命令:
`helm install RELEASE_NAME --set key=vaule https://registry-vpc-crs-xxx.ctyun.cn/plugins/cube-p2p-acceleration:1.0.0 --namespace kube-system
重点推荐方式1。
配置参数
crsRegistries
参数配置用户使用的容器镜像服务的内网实例地址,可配置多个,注意需要指定https协议。
注意需要将样例修改为实际的实例地址,若实例地址配置不正确,则P2P加速插件无法加速对应的镜像拉取过程。
crsRegistries:
- "https://registry-vpc-crs-xxx.ctyun.cn"
- "https://xxx-registry-vpc-xxx.crs.ctyun.cn"
persistence
参数配置数据存储。
persistence.nodeNames
指定集群中若干节点的名称用于进行本地数据存储,建议设置5个。
persistence.directoryPath
指定节点本地的数据存储目录路径,每个节点目录空间不小于8G。
注意需要将样例修改为实际的节点名称,否则会导致插件安装失败。
若指定节点发生故障,会影响P2P加速插件功能。
persistence:
nodeNames:
- "ccse-nodename1"
- "ccse-nodename2"
- "ccse-nodename3"
- "ccse-nodename4"
- "ccse-nodename5"
directoryPath: /p2p-data
P2P加速插件默认会占用每个节点的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
若不删除,则会影响插件的再次安装。