阿里云首页 弹性容器实例

挂载云盘(FlexVolume)

本文介绍如何通过FlexVolume为ECI实例挂载阿里云云盘类型的Volume。

前提条件

K8s集群中已正确部署Virtual kubelet(VK)。

说明

阿里云ASK集群已默认集成VK,其它集群需要您自行部署VK。更多信息,请参见对接概述

配置说明

阿里云云盘是数据块级别的块存储产品,具有低时延、高性能、持久性、高可靠等特点。更多信息,请参见云盘概述

通过FlexVolume挂载云盘时,即支持挂载已有的待挂载云盘,也支持创建并自动挂载新云盘。Pod的YAML示例如下:

apiVersion: v1
kind: Pod
metadata:
  name: test-flexvolume-disk
spec:
  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-2zehdahrwoa7srga****"

上述示例中,在options中指定了已有云盘,您也可以在options中声明云盘大小、类型等新建云盘。options的参数说明如下:

名称

类型

示例值

描述

volumeId

String

d-2zebuamrpar7xnjf****

已有云盘ID,该云盘必须处于待挂载状态。

volumeSize

Integer

200

云盘大小,单位为GiB。取值范围为20~32768。

创建云盘时的必填参数。

performanceLevel

String

PL1

云盘性能等级,更多信息,请参见块存储性能

创建云盘时的可选参数。

deleteWithInstance

Boolean

false

是否随实例释放,默认为false。

创建云盘时的可选参数。

encrypted

Boolean

false

是否加密云盘,默认为false。更多信息,请参见加密概述

创建云盘时的可选参数。

kmsKeyId

String

2ea91e17-6de6-4b4f-a3ea-0e382cc8****

加密云盘时,云盘使用的KMS密钥ID。

创建云盘时的可选参数。

配置示例

  1. 准备YAML配置文件。

    vim flexvolume_disk.yaml

    flexvolume_disk.yaml的内容可参考以下示例:

    • 示例一:指定已有云盘

      apiVersion: v1
      kind: Pod
      metadata:
        name: test-flexvolume-disk
        labels: 
          alibabacloud.com/eci: "true"
      spec:
        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-2zehdahrwoa7srga****"
    • 示例二:新建云盘

      apiVersion: v1
      kind: Pod
      metadata:
        name: test-flexvolume-disk
        labels: 
          alibabacloud.com/eci: "true" 
      spec:
        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"
    • 示例三:新建加密云盘

      apiVersion: v1
      kind: Pod
      metadata:
        name: test-flexvolume-disk2
        labels: 
          alibabacloud.com/eci: "true" 
      spec:
        containers:
        - image: nginx:latest
          name: test-container
          volumeMounts:
          - mountPath: /cache-test
            name: cache-volume
        volumes:
        - name: dzf-disk
          flexVolume:
            driver: "alicloud/disk"
            fsType: "ext4"
            options:
              volumeSize: "20Gi"
              encrypted: "true"
              kmsKeyId: "2ea91e17-6de6-4b4f-a3ea-0e382cc8****"
  2. 部署Pod。

    kubectl create -f flexvolume_disk.yaml
  3. 查看挂载结果。

    使用ls命令查看Pod内的文件目录,已生成云盘对应的挂载目录/cache-test

    挂载云盘
首页 弹性容器实例 存储 Kubernetes存储 挂载云盘(FlexVolume)