全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

使用P2P加速

最近更新时间:2024-09-02 19:18:06

本文主要包括在容器服务中使用 P2P 加速的场景说明、操作流程和注意事项。

场景说明

在容器化业务场景中,当应用程序镜像动辄数GB乃至数十GB以上时,节点下载镜像往往需要耗费较长的时间。由于容器镜像仓库采用集中式管理,集群内的所有节点都必须从该仓库中拉取所需镜像。在集群规模庞大且需应对高并发弹性需求时,若多个节点同时向镜像仓库发起拉取请求,那么仓库的网络带宽极易成为性能的瓶颈,进而导致镜像拉取速度的下降。采用P2P加速技术,可以有效利用节点间的内网带宽进行镜像分发,从而减轻对容器镜像仓库的拉取压力,提升整体部署效率。

架构简介

整个架构主体分三块,分别是金山云控制台、KCR集群以及用户容器集群。

​启用P2P镜像加速方案前,用户集群访问镜像仓库的方式为:镜像仓库KCR部署端安装PrivateLink服务端,用户集群KCE侧安装PrivateLink客户端,用户集群侧可以通过这种方式访问到位于不同VPC的镜像仓库服务。

​启用P2P镜像加速方案后,用户集群对镜像的拉取请求,会先到达P2P加速方案部署在节点上的Dfdaemon组件,由此触发P2P下载任务;镜像P2P下载在大规模用户集群中能发挥较大的作用,加快镜像拉取效率,具有减少公网流量,增加内网使用效率的优势。

前提条件

  • 已创建容器服务(KCE)集群。详细操作,请参见 创建集群

  • 已创建容器镜像服务(KCR)实例。详细操作,请参见 实例管理

  • 已创建虚拟私有网络(VPC),用于设置 P2P 加速的可访问范围。详细操作,请参见 创建虚拟私有网络

    注意:目前P2P加速功能仅在西北4(海东)地域支持。

操作步骤

步骤一:开启 P2P 加速

  1. 登录 容器镜像服务控制台

  2. 在顶部导航栏,选择目标地域。

  3. 在左侧导航栏单击 实例列表,然后在 实例列表 区域中找到需要开启 P2P 加速的目标容器镜像服务实例,单击后进入该实例。

  4. 在实例页面左侧导航栏选择 分发加速 > P2P 加速

  5. P2P 加速 页面,单击 配置VPC范围,配置 P2P 加速参数。

  6. 选择好对应的VPC范围,单击 确定,开启 P2P 加速功能。

参数

说明

VPC 范围

选择 P2P 加速功能的私有网络,此私有网络范围内的容器服务集群节点,可使用该容器镜像服务实例的 P2P 加速功能。

注意:配置后影响可访问的集群范围,可能会导致部分集群无法访问,请确认后配置。另外,若所选VPC的P2P加速功能处于配置状态(开启中/关闭中),则您当前无法对该VPC进行删除操作。

步骤二:安装 P2P 加速

  1. 登录 容器服务控制台

  2. 在顶部导航栏,选择目标地域。

  3. 在左侧导航栏单击 集群

  4. 在集群列表,单击需要使用 P2P 加速的目标集群名称。

  5. 在集群管理页面的左侧导航栏中,选择 组件管理

  6. 单击 p2p-accelerator组件名称或未安装状态,在组件实例页签点击安装

  7. 根据系统提示,配置 P2P 加速功能。

  8. 单击 确定,安装完成组件。在组件实例列表中可查看组件有关信息。

  9. 组件完成安装后,去对应的namesapce下查看名为p2p-accelerator的daemonset是否已就绪。

参数

说明

命名空间

用户选择集群支持的命名空间。

所属项目

用户选择镜像仓库实例的所属项目。

镜像仓库实例

选择上方 步骤一 中开启 P2P 加速的镜像仓库实例。

注意:在KCR控制台中开启某VPC的镜像加速,进入指定VPC的集群内安装P2P组件后,若删除镜像仓库实例中对应内网解析/关闭内网解析,则对应VPC的P2P加速将直接关闭,将无法在集群中拉取该镜像仓库镜像。

参数

根据提示配置有关参数。

注意:

  1. 安装组件时指定dfdaemon.config.proxy.registryMirror.url需正确,否则P2P组件pod无法正常启动。

  2. dfdaemon.config.proxy.registryMirror.url该项配置表明希望p2p代理的镜像仓库地址,一般为KCR仓库的内网访问地址。

常用参数说明:

配置

说明

备注

默认值

dfdaemon.mountDataDirAsHostPath

是否自定义存储路径,若不自定义则默认使用emptydir存储镜像数据,随pod删除释放;如果需要持久化,配合dfdaemon.config.dataDir使用

没有特别的要求,可不修改

false

dfdaemon.config.dataDir

指定存储路径,如果dfdaemon.mountDataDirAsHostPath为true的话,会在宿主机的该路径下创建目录;方便使用时适配持久化挂载。

没有特别的要求,可不修改

"/var/lib/dragonfly"

dfdaemon.config.download.totalRateLimit

单个dfdaemon组件的限速

一般使用默认值,如果集群规模较大,且担心其他业务的网络通信受影响,可以适当调小。

2000Mi

dfdaemon.config.upload.rateLimit

dfdaemon之间上传数据的限速

一般使用默认值。同上。

1000Mi

dfdaemon.config.storage.taskExpireTime

一次下载任务的过期时间(镜像数据在底层保留多久)

一般使用默认值,如果希望任务保留时间长一点,可调大。

6h

dfdaemon.config.storage.diskGCThreshold

存储清理的界限值(如果磁盘整体容量低于这个界限了,dfdaemon就会清理过去的下载任务来释放空间)

根据需要进行修改(如果磁盘容量较大,可以调整到高一点得界限值)

50Gi

dfdaemon.config.proxy.registryMirror.url

一般情况下,该链接的域名和kcr仓库的内网域名应该保持一致

按照实际情况填写

https://hub.kce.ksyun.com

注意:当用户开启某VPC的P2P加速功能,并进入指定VPC的集群内安装P2P组件后,若后续在KCR控制台关闭了该VPC的P2P加速功能后重新开启,将导致该VPC下集群的P2P加速功能不可用。针对此状况,用户需要在指定VPC的集群内重新安装P2P组件才可使P2P加速功能重新生效。

步骤三:使用 P2P 加速

yaml文件示例:

  • 拉取镜像为 tensorflow

  • KCR实例的内网域名为 lijin-vpc.ksyunkcr.com

不使用p2p加速时,提交的yaml文件:
apiVersion: apps/v1
kind: DaemonSet
metadata:
  namespace: ns-test
  name: tensor-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      dnsPolicy: ClusterFirst
      tolerations:
      - operator: "Exists"
      containers:
      - name: nginx
        image: lijin-vpc.ksyunkcr.com/wangqu/tensorflow:latest
        ports:
        - containerPort: 80
        imagePullPolicy: Always

使用p2p加速时,提交的yaml文件:
apiVersion: apps/v1
kind: DaemonSet
metadata:
  namespace: ns-test
  name: p2p-tensor-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      dnsPolicy: ClusterFirst
      tolerations:
      - operator: "Exists"
      containers:
      - name: nginx
        image: p2p-lijin-vpc.ksyunkcr.com/wangqu/tensorflow:latest
        ports:
        - containerPort: 80
        imagePullPolicy: Always

注意:

  1. 拉取镜像时,需保证节点存储容量>镜像大小,否则镜像拉取失败。若需使用数据盘存储,则需保证数据盘挂载至指定路径。

  2. 使用镜像加速,注意需要在原仓库域名前加上p2p-的前缀,否则未生效加速功能。

相关操作

修改VPC范围

登录KCR控制台,开启 P2P 加速后,您还可以单击配置 VPC 范围,从而修改当前实例下已开启P2P加速功能的私有网络范围,或者删除全部VPC以关闭 P2P 加速功能。

注意:修改 P2P 加速的私有网络范围,会影响可访问和使用该 P2P 加速功能的容器服务集群范围。请确认后再操作。

卸载p2p-accelerator组件

如果在KCR控制台关闭了P2P加速功能,会影响已使用该功能的容器服务集群,且集群中的 p2p-accelerator 不再生效,需要用户自行卸载。

在已安装p2p-accelerator组件的前提下,登录KCE控制台,进入目标集群,在集群管理页面的左侧导航栏中,选择 组件管理,进入p2p-accelerator组件实例页签点击删除,在出现删除实例的提示弹窗后点击确定,成功卸载p2p-accelerator组件。

注意:卸载p2p-accelerator组件会影响KCR中P2P加速功能将不可用,请谨慎操作。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈