增加臨時存儲空間大小
ECI Pod(即ECI實例)默認(rèn)提供30 GiB的免費的臨時存儲空間,如果該存儲空間大小無法滿足您的需求,您可以自定義增加臨時存儲空間大小。
背景信息
每個ECI實例默認(rèn)提供30 GiB的臨時存儲空間(免費),如下圖所示。
ECI實例啟動所使用的容器鏡像會占用該30 GiB空間。容器鏡像需要占用的空間大小至少為容器鏡像大小*2,具體大小視鏡像的壓縮率決定。
如果您的存儲需求大于30 GiB,可以自定義增加臨時存儲空間大小。新增加的臨時存儲空間會按容量大小和使用時長收取費用。更多信息,請參見臨時存儲空間計費。
配置說明
Kubernetes場景下,支持通過以下方式自定義增加臨時存儲空間大?。?/p>
方式一為limit語義,創(chuàng)建的臨時存儲空間大小是準(zhǔn)確的。
方式二為request語義,創(chuàng)建臨時存儲空間時,可能還需要考慮鏡像緩存因素,即實際創(chuàng)建的臨時存儲空間大小可能和request聲明的不一致。更多信息,請參見臨時存儲空間與鏡像緩存的關(guān)系。
兩種方式均可以設(shè)置臨時存儲空間大小,但是語義有所差異:
如果同時使用兩種方式,則取兩者配置的較大值生效。
方式一:添加Annotation
在ECI Pod添加k8s.aliyun.com/eci-extra-ephemeral-storage
的Annotation可以為其增加臨時存儲空間大小,設(shè)置的值即為增加的臨時存儲空間大小。
Annotation請?zhí)砑釉赑od的metadata下,例如:創(chuàng)建Deployment時,Annotation需添加在spec>template>metadata下。
僅支持在創(chuàng)建ECI Pod時添加ECI相關(guān)Annotation來生效ECI功能,更新ECI Pod時添加或者修改ECI相關(guān)Annotation均不會生效。
方式二:設(shè)置容器的resource
在容器的resource中可以聲明ephemeral-storage相關(guān)request,如果聲明的ephemeral-storage大小不超30 GiB,則不會增加臨時存儲空間;如果超出了30 GiB,則超出的部分即為增加的臨時存儲空間大小。
配置示例
準(zhǔn)備YAML文件。
假設(shè)您要創(chuàng)建的ECI Pod需要增加20 GiB的臨時存儲空間,對應(yīng)的YAML文件命名為extra-storage.yaml,YAML示例如下:
示例一:添加Annotation
apiVersion: v1 kind: Pod metadata: name: test annotations: k8s.aliyun.com/eci-extra-ephemeral-storage: "20Gi" # 自定義設(shè)置要增加的臨時存儲空間大小 spec: containers: - name: nginx image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2 imagePullPolicy: IfNotPresent restartPolicy: Always
示例二:設(shè)置容器的resource
apiVersion: v1 kind: Pod metadata: name: test spec: containers: - name: nginx image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2 imagePullPolicy: IfNotPresent resources: requests: ephemeral-storage: 50Gi # 超出30 GiB的部分為增加的臨時存儲空間 restartPolicy: Always
創(chuàng)建Pod。
kubectl apply -f extra-storage.yaml
查看臨時存儲空間是否生效。
查看增加的臨時存儲空間大小。
kubectl describe pod test | grep k8s.aliyun.com/eci-extra-ephemeral-storage
返回結(jié)果如下,已增加20 GiB的臨時存儲空間。
k8s.aliyun.com/eci-extra-ephemeral-storage: 20Gi
通過exec命令進(jìn)入容器,然后執(zhí)行df -h命令查看容器的文件系統(tǒng)分區(qū)是否擴容成功。
kubectl exec -it test -- sh
df -h
返回結(jié)果如下,實際可用空間(overlay )為增加的20 GiB加上默認(rèn)可用的30 GiB,共50 GiB。
Filesystem Size Used Avail Use% Mounted on overlay 50G 2.1G 48G 5% / tmpfs 64M 0 64M 0% /dev tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/vda4 50G 2.1G 48G 5% /etc/hosts shm 64M 0 64M 0% /dev/shm tmpfs 4.0G 12K 4.0G 1% /run/secrets/kubernetes.io/serviceaccount tmpfs 1.9G 0 1.9G 0% /proc/acpi tmpfs 1.9G 0 1.9G 0% /sys/firmware
臨時存儲空間與鏡像緩存的關(guān)系
根據(jù)鏡像緩存的創(chuàng)建方式的不同,生成的臨時存儲空間存在差異。
自動創(chuàng)建的鏡像緩存基于系統(tǒng)盤實現(xiàn)。創(chuàng)建ECI實例時,如果使用的鏡像緩存為自動創(chuàng)建的,則臨時存儲空間會在系統(tǒng)盤。此時,系統(tǒng)盤分區(qū)(/dev/vda5)大小即為臨時存儲空間大小,如下圖所示。
手動創(chuàng)建的鏡像緩存基于數(shù)據(jù)盤實現(xiàn)。創(chuàng)建ECI實例時,如果使用的鏡像緩存為手動創(chuàng)建的,則臨時存儲空間會在數(shù)據(jù)盤。此時,系統(tǒng)盤分區(qū)(/dev/vda5)大小保持默認(rèn)的30 GiB,且不會被使用。如下圖所示。