本地盘是实例所在物理机上的本地硬盘设备,具有低时延、高随机IOPS、高吞吐量和高性价比的优势。本文介绍如何指定ECS本地盘规格创建ECI Pod,并将本地盘挂载到ECI Pod上。
配置说明
您可以在Pod metadata中添加Annotation(如k8s.aliyun.com/eci-use-specs: ecs.i2g.2xlarge)来指定本地盘规格。挂载本地盘时,通过将EmptyDir Volume的medium设置为LocalRaid0的方式,可以自动把本地盘组成RAID 0,并挂载到Pod的指定路径上。
Annotation请添加在Pod的metadata下,例如:创建Deployment时,Annotation需添加在spec>template>metadata下。
仅支持在创建ECI Pod时添加ECI相关Annotation来生效ECI功能,更新ECI Pod时添加或者修改ECI相关Annotation均不会生效。
创建ECI Pod时,支持指定的ECS本地盘规格族如下:
大数据型实例规格族d1,例如:ecs.d1.2xlarge。
大数据网络增强型实例规格族d1ne,例如:ecs.d1ne.2xlarge。
本地SSD型实例规格族i2,例如:ecs.i2.xlarge。
本地SSD型实例规格族i2g,例如:ecs.i2g.2xlarge。
GPU计算型实例规格族gn5,例如:ecs.gn5-c4g1.xlarge。
说明gn5为GPU规格,除了本地盘相关参数外,您还需要指定GPU相关参数。
关于ECS规格的详细信息,请参见:
配置示例
-
准备YAML文件。
vim localdis.yamllocaldis.yaml的内容示例如下,示例中通过设置
k8s.aliyun.com/eci-use-specs: ecs.i2g.2xlarge指定ECI Pod的规格为ecs.i2g.2xlarge,该规格带有一块本地盘,可以通过EmptyDir Volume的方式挂载到ECI Pod上。apiVersion: apps/v1 kind: Deployment metadata: name: localdisk-test labels: app: test spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: name: nginx-test labels: app: nginx alibabacloud.com/eci: "true" annotations: k8s.aliyun.com/eci-use-specs: ecs.i2g.2xlarge #指定支持的ECS本地盘规格 spec: containers: - name: nginx image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2 ports: - containerPort: 80 volumeMounts: - name: localdisk mountPath: /localdisk-test volumes: - name: localdisk emptyDir: medium: LocalRaid0 -
部署Deployment。
kubectl create -f localdis.yaml -
查看结果。
创建完成后查看Pod信息,可以看到本地盘已生成RAID 0(
/dev/md0),且已挂载到指定的/localdisk-test路径。xxx:~$ kubectl get pod NAME READY STATUS RESTARTS AGE localdisk-test-5f8c979c48-j4bkj 1/1 Running 0 76s xxx:~$ kubectl exec -it localdisk-test-5f8c979c48-j4bkj -- bash root@localdisk-test-5f8c979c48-j4bkj:/# df -h Filesystem Size Used Avail Use% Mounted on overlay 30G 4.1G 26G 14% / tmpfs 64M 0 64M 0% /dev tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/md0 879G 77M 835G 1% /localdisk-test /dev/vda4 30G 4.1G 26G 14% /etc/hosts overlay 8.8G 4.9G 3.5G 59% /etc/hostname shm 64M 0 64M 0% /dev/shm tmpfs 32G 12K 32G 1% /run/secrets/kubernetes.io/serviceaccount tmpfs 16G 0 16G 0% /proc/acpi tmpfs 16G 0 16G 0% /sys/firmware