ECI支援秒級啟動,按需擴容。對於短時間啟動並執行Job任務,使用ECI來運行可以避免資源閑置浪費,在滿足業務需求的同時有效降低資源使用成本,提升叢集的彈效能力和資源使用率。
使用情境
Kubernetes叢集的節點資源配置不足會導致Pod無法及時運行,購買過多的節點又會導致資源的閑置浪費。如果您的業務有明顯的波峰穀特徵,推薦您使用ECI作為彈性資源集區。ECI支援秒級啟動,按需擴容,能夠很好地提升叢集的彈效能力。使用ECI來應對突發流量和運行Job任務,您無需提前預估業務流量或預留閑置資源,在滿足業務需求的同時能夠有效降低使用和營運成本。

前提條件
叢集中已安裝ack-virtual-node組件。具體操作,請參見部署ack-virtual-node組件。
操作樣本
建立一個Namespace用於測試,並為其添加
alibabacloud.com/eci=true標籤。說明為Namespace添加此標籤後,該Namespace下的Pod均將調度到虛擬節點,以ECI運行。本文以該方式為例進行說明,更多關於ECI調度的資訊,請參見調度Pod至虛擬節點。
kubectl create ns vk kubectl label namespace vk alibabacloud.com/eci=true在測試的Namespace下建立Job。
修改以下YAML,儲存為job.yaml檔案。
apiVersion: batch/v1 kind: Job metadata: name: pi namespace: vk # 指定添加了特定Label的Namespace,將Pod調度到ECI spec: template: spec: containers: - name: pi image: registry.cn-shanghai.aliyuncs.com/eci_open/perl:5.32 command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] resources: requests: cpu: 16 memory: 32Gi restartPolicy: Never backoffLimit: 4建立Job。
kubectl -n vk apply -f job.yaml
查看Job對應Pod的運行情況。
kubectl -n vk get pod -o wide預期返回如下,可以看到Job已經運行結束(狀態為Completed),所在節點為虛擬節點(節點首碼為
virtual-kubelet)。NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pi-zw2lc 0/1 Completed 0 15m 192.168.XX.XX virtual-kubelet-cn-shanghai-b <none> <none>查看Job對應Pod的詳細資料。
kubectl -n vk describe pod <pod-name>在返回的Events中,從StopCharge事件可以看到對應的ECI Pod已經運行結束,停止計費。
說明ECI Pod按需收費,當Pod執行完成後會停止計費。更多資訊,請參見ECI執行個體計費和ECI Pod生命週期。
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning ImageCacheMissed 16m EciService [eci.imagecache]Missed image cache. Normal Pulling 16m kubelet Pulling image "registry.cn--shanghai.aliyuncs.com/eci_open/perl:5.32" Normal Pulled 15m kubelet Successfully pulled image "registry.cn-shanghai.aliyuncs.com/eci_open/perl:5.32" in 12.951s (12.951s including waiting). Image size: 336066994 bytes. Normal Created 15m kubelet Created container: pi Normal Started 15m kubelet Started container pi Normal StopCharge 15m EciService [eci.containergroup]The charge of current ECI instance has been stopped, but the related resources are still being cleaned.因此,基於ECI運行Job任務可以節省計算成本,減輕叢集營運負擔,您無需關心叢集的計算資源是否充足,也無需關心節點的擴容和縮容問題。
相關文檔
您也可以結合使用搶佔式ECI執行個體來節約執行個體使用成本,請參見使用搶佔式ECI執行個體運行Job任務。