在ACK或ACK Serverless集群中使用P2P加速
您可以在ACK或ACK Serverless集群中使用P2P加速功能提升鏡像拉取速度,減少應(yīng)用部署時(shí)間。本文介紹如何在ACK和ACK Serverless集群中使用P2P加速功能。
前提條件
已創(chuàng)建容器鏡像服務(wù)企業(yè)版實(shí)例,且您創(chuàng)建的企業(yè)版實(shí)例必須為標(biāo)準(zhǔn)版或高級版。具體操作,請參見創(chuàng)建企業(yè)版實(shí)例。
若通過VPC網(wǎng)絡(luò)訪問企業(yè)版實(shí)例,請確認(rèn)已在容器鏡像服務(wù)企業(yè)版實(shí)例中配置ACK集群對應(yīng)的專有網(wǎng)絡(luò),更多信息,請參見配置專有網(wǎng)絡(luò)的訪問控制。若通過公網(wǎng)網(wǎng)絡(luò)訪問企業(yè)版實(shí)例,請確保已開啟公網(wǎng)訪問并添加白名單,更多信息,請參見配置公網(wǎng)的訪問控制。
步驟一:授予ACR資源的讀權(quán)限
如果您使用的是ACK Serverless集群,需要為您的P2P組件授予訪問ACR資源的讀權(quán)限。
如果您使用的是托管版和專有版集群,無需配置訪問ACR資源的權(quán)限,默認(rèn)已開通。
創(chuàng)建RAM角色。
創(chuàng)建RAM角色時(shí)設(shè)置角色類型為普通服務(wù)角色,受信服務(wù)為云服務(wù)器。具體操作,請參見創(chuàng)建可信實(shí)體為阿里云服務(wù)的RAM角色。
設(shè)置RAM角色權(quán)限策略。
授予RAM角色AliyunContainerRegistryReadOnlyAccess權(quán)限策略。具體操作,請參見為RAM角色授權(quán)。
步驟二:獲取企業(yè)版實(shí)例ID
在頂部菜單欄,選擇所需地域。
在左側(cè)導(dǎo)航欄,選擇實(shí)例列表。
在實(shí)例列表頁面單擊目標(biāo)企業(yè)版實(shí)例。
在概覽頁面左上角查看容器鏡像實(shí)例ID。
步驟三:安裝P2P組件
在控制臺左側(cè)導(dǎo)航欄中,選擇 。
在應(yīng)用目錄頁面搜索ack-acr-acceleration-p2p,找到ack-acr-acceleration-p2p,然后單擊ack-acr-acceleration-p2p。
在目標(biāo)頁面,單擊一鍵部署。
在創(chuàng)建面板中,選擇集群和命名空間,然后單擊下一步。
在參數(shù)配置頁面,設(shè)置registryInstances參數(shù)為上文獲取的容器鏡像實(shí)例ID。
如果有多個(gè)容器鏡像實(shí)例,則設(shè)置registryInstances參數(shù)時(shí),中間用英文逗號(,)連接。
說明默認(rèn)占用節(jié)點(diǎn)上的65001端口,如果有沖突,請根據(jù)實(shí)際情況修改。
p2p: ... # Port of P2P Agent in host network port: 65001 # Id of ACR registry instances, support multi, e.g. "cri-xxx,cri-yyy" registryInstances: <ACR instance Id>
可選:設(shè)置controller.ramRole參數(shù)為上文創(chuàng)建的服務(wù)角色名稱。
說明僅ACK Serverless集群需要設(shè)置controller.ramRole參數(shù),其他集群可以直接跳過該步驟。
controller: ... # Ask cluster setting, in order to accessing ACR OpenAPI(Get*, List*) for ECS ramRole: <your ram role name>
可選:使用ratelimit參數(shù)配置節(jié)點(diǎn)上P2P組件的總帶寬限制(包括下行和上行帶寬),默認(rèn)512 MB/s,根據(jù)您的節(jié)點(diǎn)帶寬適當(dāng)調(diào)整。
p2p: # Total net rate limit (MBytes/s) for uploading and downloading ratelimit: "512M"
在創(chuàng)建面板選擇集群,然后單擊創(chuàng)建。
步驟四:啟用P2P加速
您可以通過添加標(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加速,無需再修改應(yīng)用負(fù)載的YAML文件。根據(jù)實(shí)際情況選擇任一方式添加P2P加速標(biāo)簽。
標(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)簽
通過控制臺添加P2P加速標(biāo)簽。
在控制臺左側(cè)導(dǎo)航欄中,單擊集群。
在集群列表頁面中,單擊目標(biāo)集群名稱或者目標(biāo)集群右側(cè)操作列下的詳情。
在集群管理頁面單擊命名空間與配額。
在命名空間頁面單擊目標(biāo)命名空間操作列的編輯。
在編輯命名空間對話框中設(shè)置標(biāo)簽的變量名稱為
k8s.aliyun.com/image-accelerate-mode
,標(biāo)簽的變量值為p2p
,然后單擊確定。
通過命令行添加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加速鏡像地址以及對應(yīng)的鏡像拉取憑證。
P2P鏡像拉取憑證與您原先配置的非P2P鏡像地址拉取憑證僅鏡像倉庫域名不一樣,其他憑證信息一致。因此,若您原先鏡像拉取憑證用戶信息配置錯(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加速鏡像地址以及對應(yīng)的鏡像拉取憑證,說明啟用P2P加速成功。