使用前提:
Kubernetes集群中正确部署了virtual-kubelet(serverless Kubernetes默认集成)。
ECI可以使用FlexVolume挂载云盘,既支持已有的待挂载状态的云盘,也支持指定云盘大小来自动创建并挂载。
以下yaml展示挂载已有的待挂载状态的云盘,将以下内容保存为flexvolume_disk1.yaml:
apiVersion: v1
kind: Pod
metadata:
name: test-flexvolume-disk1
spec:
# ACK场景下可以通过nodeName指定调度到ECI
# nodeName: virtual-node-eci-0
containers:
- image: nginx:latest
name: test-container
volumeMounts:
- mountPath: /cache-test
name: cache-volume
volumes:
- name: cache-volume
flexVolume:
driver: alicloud/disk
fsType: ext4
options:
volumeId: "d-2zehdahrwoa7srga8eqw"
performanceLevel: "PL2"
然后使用kubectl,依次执行以下命令创建实例:
输入以下命令:
kubectl create -f flexvolume_disk1.yaml
系统输出类似如下结果:
pod/test-flexvolume-disk1 created
输入以下命令:
kubectl get pod test-flexvolume-disk1
系统输出类似如下结果:
NAME READY STATUS RESTARTS AGE test-flexvolume-disk1 1/1 Running 0 45s
输入以下命令:
kubectl exec -it test-flexvolume-disk1 bash
系统输出类似如下结果:
root@default-test-flexvolume-disk1:/# ls bin boot cache-test dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@default-test-flexvolume-disk1:/# ls cache-test/ lost+found
以下yaml展示指定云盘大小来自动创建并挂载,将以下内容保存为flexvolume_disk2.yaml:
apiVersion: v1
kind: Pod
metadata:
name: test-flexvolume-disk2
spec:
# ACK场景下可以通过nodeName指定调度到ECI
# nodeName: virtual-node-eci-0
containers:
- image: nginx:latest
name: test-container
volumeMounts:
- mountPath: /cache-test
name: cache-volume
volumes:
- name: cache-volume
flexVolume:
driver: alicloud/disk
fsType: ext4
options:
volumeType: "alicloud-disk-essd"
volumeSize: "100Gi"
performanceLevel: "PL2"
然后使用kubectl,依次执行以下命令创建实例:
输入以下命令:
kubectl create -f flexvolume_disk2.yaml
系统输出类似如下结果:
pod/test-flexvolume-disk2 created
输入以下命令:
kubectl get pod test-flexvolume-disk2
系统输出类似如下结果:
NAME READY STATUS RESTARTS AGE test-flexvolume-disk2 1/1 Running 0 45s
输入以下命令:
kubectl exec -it test-flexvolume-disk2 bash
系统输出类似如下结果:
root@default-test-flexvolume-disk2:/# ls bin boot cache-test dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@default-test-flexvolume-disk2:/# ls cache-test/ lost+found
Options参数说明
名称 | 类型 | 必选 | 示例值 | 描述 |
---|---|---|---|---|
volumeId | String | 否 | d-2zebuamrpar7xnjf**** | 已有实例ID |
volumeSize | Integer | 否 | 200 | 单盘容量(GiB),取值范围为:20~32768。动态创建云盘必填参数。 |
performanceLevel | String | 否 | PL1 | 性能等级。更多信息,请参见云盘性能。动态创建云盘可选参数,默认值:PL1。 |
deleteWithInstance | Boolean | 否 | false | 是否随实例释放,动态创建云盘可选参数,默认值为:false。 |
encrypted | Boolean | 否 | false | 是否加密云盘,动态创建云盘可选参数,默认值:false。更多信息,请参见加密云盘 。 |
kmsKeyId | String | 否 | 2ea91e17-****-4b4f-a3ea-0e382cc8199f | 云盘使用的KMS密钥ID。动态创建云盘可选参数。 |
数据盘加密
随ECI实例创建的数据盘支持加密。
参数说明
名称 | 数据类型 | 示例值 | 描述 |
---|---|---|---|
encrypted | Boolean | true | 是否加密云盘,默认值:false。 |
kmsKeyId | String | 2ea91e17-****-4b4f-a3ea-0e382cc8199f | 云盘使用的KMS密钥ID。 |
apiVersion: v1
kind: Pod
metadata:
name: my-nginx
namespace: default
spec:
restartPolicy: Never
containers:
- image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:alpine
imagePullPolicy: IfNotPresent
name: nginx
volumeMounts:
- name: dzf-disk
mountPath: /data
nodeName: virtual-node-eci-0
volumes:
- name: dzf-disk
flexVolume:
driver: "alicloud/disk"
fsType: "ext4"
options:
volumeSize: "20Gi"
encrypted: "true"
kmsKeyId: "2ea91e17-6de6-4b4f-a3ea-0e382cc8199f"