日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用P2P加速

更新時(shí)間:

P2P加速功能可以提升鏡像拉取速度,減少應(yīng)用部署時(shí)間。當(dāng)大規(guī)模容器集群批量下載鏡像時(shí),您可以使用P2P加速功能提升鏡像拉取速度。本文介紹如何使用P2P加速功能提升鏡像拉取速度。

背景信息

當(dāng)大規(guī)模容器集群批量下載鏡像時(shí),容器鏡像存儲(chǔ)的網(wǎng)絡(luò)帶寬會(huì)成為性能瓶頸,導(dǎo)致鏡像拉取緩慢。P2P加速功能可以利用您計(jì)算節(jié)點(diǎn)的帶寬資源,進(jìn)行節(jié)點(diǎn)之間的鏡像分發(fā),以減少對(duì)容器鏡像存儲(chǔ)的壓力,可以大幅提升鏡像拉取速度,減少應(yīng)用部署時(shí)間。經(jīng)過(guò)測(cè)試,1000節(jié)點(diǎn)規(guī)模下拉取1 GB大小的鏡像,相比普通鏡像拉取方式(以帶寬為10 Gbps為例),P2P加速方式可以減少95%以上的鏡像拉取時(shí)間。此外,新版的P2P加速方案相較于舊版的P2P有30%~50%的性能提升,且新版的P2P方案默認(rèn)支持按需加載容器鏡像使用P2P加速,具體操作,請(qǐng)參見(jiàn)按需加載容器鏡像

您可以在以下場(chǎng)景使用P2P加速功能。

  • ACK集群

  • IDC或其他云廠商集群

前提條件

安裝P2P加速套件。

使用限制

開啟P2P加速后,P2P加速套件會(huì)將您的容器鏡像地址通過(guò)Webhook替換為P2P的鏡像地址,例如,您的原始鏡像地址為test****vpc.cn-hangzhou.cr.aliyuncs.com/docker-builder/nginx:latest,替換后的P2P加速鏡像地址為test****vpc.distributed.cn-hangzhou.cr.aliyuncs.com:65001/docker-builder/nginx:latest

同時(shí),Webhook會(huì)幫您自動(dòng)生成一個(gè)用于加速鏡像地址的鏡像拉取密鑰(基于原始鏡像的鏡像拉取密鑰復(fù)制生成),由于該P(yáng)2P鏡像拉取密鑰的創(chuàng)建和P2P鏡像地址的替換是異步邏輯,因此建議您在下發(fā)工作負(fù)載前優(yōu)先下發(fā)容器鏡像拉取需要的鏡像拉取密鑰,或手動(dòng)創(chuàng)建一個(gè)用于P2P鏡像拉?。╠omain為test-registry-vpc.distributed.cn-hangzhou.cr.aliyuncs.com:65001)的鏡像拉取密鑰,然后再下發(fā)工作負(fù)載,避免由于鏡像地址的替換而導(dǎo)致鏡像拉取失敗。

啟用P2P加速

您可以通過(guò)添加標(biāo)簽的方式啟用P2P加速,可以為應(yīng)用負(fù)載添加P2P加速標(biāo)簽,例如Pod、Deployment等。也可以為ACK集群的命名空間設(shè)置P2P加速標(biāo)簽。為命名空間設(shè)置P2P加速標(biāo)簽后,該命名空間內(nèi)的所有符合加速條件的應(yīng)用負(fù)載都會(huì)啟用P2P加速,無(wú)需再修改應(yīng)用負(fù)載的YAML文件。根據(jù)實(shí)際情況選擇任一方式添加P2P加速標(biāo)簽。

說(shuō)明

標(biāo)簽的名稱為k8s.aliyun.com/image-accelerate-mode,值為p2p。

  • 為應(yīng)用負(fù)載添加P2P加速標(biāo)簽。

    以下以Deployment為例設(shè)置標(biāo)簽。執(zhí)行以下命令,為Deployment設(shè)置標(biāo)簽。

    kubectl edit deploy <Deployment名稱>

    在Deployment文件中添加標(biāo)簽k8s.aliyun.com/image-accelerate-mode: p2p

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test
      labels:
        app: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            # enable P2P
            k8s.aliyun.com/image-accelerate-mode: p2p
            app: nginx
        spec:
          # your ACR instacne image pull secret
          imagePullSecrets:
          - name: test-registry
          containers:
          # your ACR instacne image
          - image: test-registry-vpc.cn-hangzhou.cr.aliyuncs.com/docker-builder/nginx:latest
            name: test
            command: ["sleep", "3600"]
  • 為命名空間添加P2P加速標(biāo)簽

    • 通過(guò)控制臺(tái)添加P2P加速標(biāo)簽。

      1. 登錄容器服務(wù)管理控制臺(tái)。

      2. 在控制臺(tái)左側(cè)導(dǎo)航欄中,單擊集群。

      3. 集群列表頁(yè)面中,單擊目標(biāo)集群名稱或者目標(biāo)集群右側(cè)操作列下的詳情。

      4. 在集群管理頁(yè)面單擊命名空間與配額

      5. 命名空間頁(yè)面單擊目標(biāo)命名空間操作列的編輯

      6. 編輯命名空間對(duì)話框中設(shè)置標(biāo)簽變量名稱k8s.aliyun.com/image-accelerate-mode,標(biāo)簽變量值p2p,然后單擊確定。

    • 通過(guò)命令行添加P2P加速標(biāo)簽。

      kubectl label namespaces <YOUR-NAMESPACE> k8s.aliyun.com/image-accelerate-mode=p2p

驗(yàn)證P2P加速

啟用P2P加速后,P2P組件會(huì)自動(dòng)為Pod注入P2P相關(guān)annotation、P2P加速鏡像地址以及對(duì)應(yīng)的鏡像拉取憑證。

重要

P2P鏡像拉取憑證與您原先配置的非P2P鏡像地址拉取憑證僅鏡像倉(cāng)庫(kù)域名不一樣,其他憑證信息一致。因此,若您原先鏡像拉取憑證用戶信息配置錯(cuò)誤,也會(huì)導(dǎo)致P2P鏡像拉取失敗。

執(zhí)行以下命令,查看Pod。

kubectl get po <Pod的名稱> -oyaml

預(yù)期輸出:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    # inject p2p-annotations automatically
    k8s.aliyun.com/image-accelerate-mode: p2p
    k8s.aliyun.com/p2p-config: '...'
spec:
  containers:
   # inject image to p2p endpoint
   - image: test-registry-vpc.distributed.cn-hangzhou.cr.aliyuncs.com:65001/docker-builder/nginx:latest
  imagePullSecrets:
  - name: test-registry
  # inject image pull secret for p2p endpoint
  - name: acr-credential-test-registry-p2p

可以看到,Pod已注入P2P相關(guān)annotation、P2P加速鏡像地址以及對(duì)應(yīng)的鏡像拉取憑證,說(shuō)明啟用P2P加速成功。

(可選)啟用客戶端指標(biāo)采集

P2P Metrics說(shuō)明

打開Metrics

安裝P2P時(shí),打開Metrics配置。

p2p:

  v2:
    # Component for P2P v2
    image: registry-vpc.__ACK_REGION_ID__.aliyuncs.com/acs/dadi-agent
    imageTag: v0.1.2-72276d4-aliyun

    # Concurrency limit number of layers downloading by each node proxy
    proxyConcurrencyLimit: 128

    # The server port to communicate with P2P nodes
    p2pPort: 65002

    cache:
      # Disk cache capacity in bytes, default 4GB
      capacity: 4294967296
      # Set to 1 if you are using high-performance disks on your ECS, e.g. ESSD PL2/PL3
      aioEnable: 0
    exporter:
      # Set to true if you want to collect component metrics
      enable: false
      port: 65003

    # limit for downstream throughput
    throttleLimitMB: 512

訪問(wèn)方式

P2P YAML中關(guān)于exporter字段定義了Metrics的端口。

ExporterConfig:
  enable: true # 是否開啟
  port: 65006  # 監(jiān)聽(tīng)端口
  standaloneExporterPort: true # 是否采用獨(dú)立端口暴露,如果為false,則通過(guò)http服務(wù)端口吐出

curl 127.0.0.1:$port/metrics可以得到Metrics結(jié)果如下。

# HELP DADIP2P_Alive 
# TYPE DADIP2P_Alive gauge
DADIP2P_Alive{node="192.168.69.172:65005",mode="agent"} 1.000000 1692156721833

# HELP DADIP2P_Read_Throughtput Bytes / sec
# TYPE DADIP2P_Read_Throughtput gauge
DADIP2P_Read_Throughtput{node="192.168.69.172:65005",type="pread",mode="agent"} 0.000000 1692156721833
DADIP2P_Read_Throughtput{node="192.168.69.172:65005",type="download",mode="agent"} 0.000000 1692156721833
DADIP2P_Read_Throughtput{node="192.168.69.172:65005",type="peer",mode="agent"} 0.000000 1692156721833
DADIP2P_Read_Throughtput{node="192.168.69.172:65005",type="disk",mode="agent"} 0.000000 1692156721833
DADIP2P_Read_Throughtput{node="192.168.69.172:65005",type="http",mode="agent"} 0.000000 1692156721833

# HELP DADIP2P_QPS 
# TYPE DADIP2P_QPS gauge
DADIP2P_QPS{node="192.168.69.172:65005",type="pread",mode="agent"} 0.000000 1692156721833
DADIP2P_QPS{node="192.168.69.172:65005",type="download",mode="agent"} 0.000000 1692156721833
DADIP2P_QPS{node="192.168.69.172:65005",type="peer",mode="agent"} 0.000000 1692156721833
DADIP2P_QPS{node="192.168.69.172:65005",type="disk",mode="agent"} 0.000000 1692156721833
DADIP2P_QPS{node="192.168.69.172:65005",type="http",mode="agent"} 0.000000 1692156721833

# HELP DADIP2P_MaxLatency us
# TYPE DADIP2P_MaxLatency gauge
DADIP2P_MaxLatency{node="192.168.69.172:65005",type="pread",mode="agent"} 0.000000 1692156721833
DADIP2P_MaxLatency{node="192.168.69.172:65005",type="download",mode="agent"} 0.000000 1692156721833
DADIP2P_MaxLatency{node="192.168.69.172:65005",type="peer",mode="agent"} 0.000000 1692156721833
DADIP2P_MaxLatency{node="192.168.69.172:65005",type="disk",mode="agent"} 0.000000 1692156721833
DADIP2P_MaxLatency{node="192.168.69.172:65005",type="http",mode="agent"} 0.000000 1692156721833

# HELP DADIP2P_Count Bytes
# TYPE DADIP2P_Count gauge
DADIP2P_Count{node="192.168.69.172:65005",type="pread",mode="agent"} 0.000000 1692156721833
DADIP2P_Count{node="192.168.69.172:65005",type="download",mode="agent"} 0.000000 1692156721833
DADIP2P_Count{node="192.168.69.172:65005",type="peer",mode="agent"} 0.000000 1692156721833
DADIP2P_Count{node="192.168.69.172:65005",type="disk",mode="agent"} 0.000000 1692156721833
DADIP2P_Count{node="192.168.69.172:65005",type="http",mode="agent"} 0.000000 1692156721833

# HELP DADIP2P_Cache 
# TYPE DADIP2P_Cache gauge
DADIP2P_Cache{node="192.168.69.172:65005",type="allocated",mode="agent"} 4294967296.000000 1692156721833
DADIP2P_Cache{node="192.168.69.172:65005",type="used",mode="agent"} 4294971392.000000 1692156721833

# HELP DADIP2P_Label 
# TYPE DADIP2P_Label gauge

指標(biāo)說(shuō)明

指標(biāo)名

  • DADIP2P_Alive:服務(wù)是否存活。

  • DADIP2P_Read_Throughtput:P2P服務(wù)吞吐,單位:byte/s。

  • DADIP2P_QPS:QPS。

  • DADIP2P_MaxLatency:延遲統(tǒng)計(jì),單位:us。

  • DADIP2P_Count:流量統(tǒng)計(jì),單位:bytes。

  • DADIP2P_Cache:?jiǎn)螜C(jī)Cache用量,單位:bytes。

Tag

  • node:P2P Agent/Root的服務(wù)IP和端口。

  • type:指標(biāo)類型。

    • pread:處理下游請(qǐng)求。

    • download:回源。

    • peer:P2P網(wǎng)絡(luò)分發(fā)。

    • disk:處理磁盤。

    • http:處理HTTP請(qǐng)求。

    • allocated:緩存分配空間。

    • used:緩存使用空間。

指標(biāo)示例

DADIP2P_Count{node="11.238.108.XXX:9877",type="http",mode="agent"} 4248808352.000000 1692157615810
Agent服務(wù)累計(jì)處理HTTP請(qǐng)求流量:4248808352字節(jié)。

DADIP2P_Cache{node="11.238.108.XXX:9877",type="used",mode="agent"} 2147487744.000000 1692157615810
當(dāng)前Agent緩存用量:2147487744字節(jié)。

審計(jì)日志

開啟審計(jì)日志

修改p2p configmapaudit字段為true

DeployConfig:
  mode: agent
  logDir: /dadi-p2p/log
  logAudit: true
  logAuditMode: stdout # 輸出到控制臺(tái), file為輸出到日志目錄/dadi-p2p/log/audit.log

審計(jì)日志格式

格式如下,其含義為:從接收到請(qǐng)求至結(jié)果返回的處理耗時(shí),單位:us。

2022/08/30 15:44:52|AUDIT|th=00007FBA247C5280|download[pathname=/https://cri-pi840la*****-registry.oss-cn-hangzhou.aliyuncs.com/docker/registry/v2/blobs/sha256/dd/dd65726c224b09836aeb6ecebd6baf58c96be727ba86da14e62835569896008a/data][offset=125829120][size=2097152][latency=267172]
....
2022/08/30 15:44:55|AUDIT|th=00007FBA2EFEAEC0|http:pread[pathname=/https://cri-pi840lacia*****-registry.oss-cn-hangzhou.aliyuncs.com/docker/registry/v2/blobs/sha256/dd/dd65726c224b09836aeb6ecebd6baf58c96be727ba86da14e62835569896008a/data][offset=127467520][size=65536][latency=21]

主要字段為:時(shí)間、 AUDIT、線程指針、操作碼[pathname=][size=][latency=]。

其中AUDIT和線程指針一般不用關(guān)心,size為單次請(qǐng)求大小,若為負(fù)數(shù)則表示異常;latency為單次請(qǐng)求延遲,單位:us。

常見(jiàn)操作碼如下:

  • http:pread:表示HTTP Proxy處理下游數(shù)據(jù)請(qǐng)求。

  • rpc:stat:表示P2P Agent獲取文件長(zhǎng)度。

  • rpc:pread:表示P2P Agent處理下游數(shù)據(jù)請(qǐng)求。

  • download:表示P2P Agent從上游下載數(shù)據(jù)。

  • filewrite:表示P2P Agent寫入當(dāng)前數(shù)據(jù)分片到緩存。

  • fileread:表示P2P Agent從緩存讀取數(shù)據(jù)分片。

日志示例

download[pathname=mytest][offset=0][size=65536][latency=26461]
  ## P2P Agent從上游下載mytest文件[0,65536)這段數(shù)據(jù)的延遲為26461us
rpc:pread[pathname=mytest][offset=0][size=65536][latency=2]
  ## P2P Agent向下游返回mytest文件[0,65536)這段數(shù)據(jù)的延遲為2us
http:pread[pathname=mytest][offset=0][size=65536][latency=26461]
  ## 代理向從上游下載mytest文件[0,65536)這段數(shù)據(jù)的延遲為26461us

(可選)關(guān)閉按需加載鏡像使用P2P加速

說(shuō)明

以下是集群內(nèi)修改單節(jié)點(diǎn)配置的參考步驟。您需關(guān)注節(jié)點(diǎn)的后續(xù)運(yùn)維操作,是否會(huì)覆蓋此配置。

  1. 登錄容器服務(wù)管理控制臺(tái)
  2. 在左側(cè)導(dǎo)航欄,選擇集群。

  3. 集群列表頁(yè)面,單擊目標(biāo)集群的名稱。

  4. 在左側(cè)導(dǎo)航欄,選擇節(jié)點(diǎn)管理 > 節(jié)點(diǎn)。

  5. 在節(jié)點(diǎn)頁(yè)面,單擊目標(biāo)節(jié)點(diǎn)IP地址下的實(shí)例ID。

  6. 在實(shí)例詳情頁(yè)面,使用遠(yuǎn)程連接,登錄節(jié)點(diǎn)。

  7. 使用vi命令編輯/etc/overlaybd/overlaybd.json文件中的p2pConfig,將enable改為false。

    {
         "p2pConfig": {
            "enable": false,
            "address": "https://localhost:6****/accelerator"
        },
    ... ...
    }
  8. 執(zhí)行如下命令,重新按需加載的組件。

    service overlaybd-tcmu restart

附錄

P2P 加速效果參考

不同規(guī)格鏡像拉取

測(cè)試鏡像規(guī)格如下

  • 4 GB(512 MB * 8層)

  • 10 GB(10 GB * 1層)

  • 20 GB(4 GB * 5層,10 GB * 2層,512 MB * 40層, 20 GB * 1層,2 GB * 10層)

測(cè)試環(huán)境如下

  • ACK集群:1000節(jié)點(diǎn)

  • ECS規(guī)格:4核8 GB內(nèi)存

  • 云盤規(guī)格:200 GB ESSD PL1

  • P2P Agent規(guī)格:1核1 GB內(nèi)存,緩存4 GB

測(cè)試場(chǎng)景

1000 節(jié)點(diǎn)拉取相同鏡像(含鏡像下載后解壓完成)

測(cè)試結(jié)果(P95耗時(shí))

鏡像規(guī)格

耗時(shí)

回源(Bucket)峰值吞吐(Gbps)

512 MB * 8層

116秒

2

10 GB * 1層

6分20秒

1.2

4 GB * 5層

9分15秒

5.1

10 GB * 2層

9分50秒

6.7

512 MB * 40層

7分55秒

3.8

20 GB * 1層

11分

2.5

2 GB * 10層

8分13秒

3.2