创建存储类型(StorageClass)

本文向您介绍如何创建一个存储类型(StorageClass)。

目前,AKS 支持以下两种类型的存储类型:

说明

目前敏捷 PaaS 底座环境下,AKS 未对接阿里云的 NAS 及云盘存储,若要使用存储功能,需要您安装第三方存储插件。

NAS 类型

重要

NAS 类型的 Storage Class 必须和 AKS 集群节点在相同地域。

AKS 定义的 NAS 类型的 Storage Class 如下:

apiVersion: storage.k8s.io/v1                                                                                                     
kind: StorageClass
metadata:
    name: csi-nas
provisioner: antcloud-csi
parameters:
    # region不要
    storage_type: "cloud_nas" # Allowed enum: cloud_disk, cloud_nas, cloud_oss

    # filesystem parameters
    nasType: "Capacity"         # Allowed enum: Capacity, Performance, Extreme *
    protocolType: "NFS"             # Allowed enum: NFS, SMB *
    fileSystemDescription: "balala" # 非必传

    # mountTarget parameters
    # accessGroupName: "classic-test" # 传默认访问组的名字* 去掉
    # networkType: Vpc                # Allowed enum: Vpc, Classic,暂时只支持Vpc* rmc做数据库查询
    # vSwitchId: "vsw-2zevmwkwyztjuoffgdiwl"  # 交换机ID, VPC网络下使用 *
    # vpcId: "vpc-2zesj9afh3y518k9oe86q" # VPC网络ID,VPC网络下使用 *

    # accessGroup parameters,现在方案中使用默认访问组,因此,这里参数可以不要

    serviceId: "1c7aff75-8b4f-4d2c-8dac-74af0b830d86-aliyun-nas-service-id"
    planId: "44dd37f1-77f9-42c5-91a5-743c007ba484-aliyun-nas-plan-id"
    accessModes: "ReadWriteMany"  # * 

reclaimPolicy: Retain # Allowed enum: Delete, Retain
volumeBindingMode: Immediate # Allowed enum: Immediate, WaitForFirstConsumery

参数说明

参数名

参数说明

是否必选

备注

provisioner

antcloud-csi

AKS 动态卷控制器名称,不可更改。

storage_type

后端存储类型(块存储,文件存储)

目前仅支持:

  • cloud_disk,表示阿里云盘

  • cloud_nas,表示阿里云 NAS。

nasType

NAS 类型

可选值:

protocolType

文件系统类型

目前仅支持 NFS

readOnly

是否只读

可选值:truefalse

serviceId

Service broker 必选参数

必须为:1c7aff75-8b4f-4d2c-8dac-74af0b830d86-aliyun-nas-service-id

planId

Service broker必选参数

必须为:44dd37f1-77f9-42c5-91a5-743c007ba484-aliyun-nas-plan-id

reclaimPolicy

回收策略

  • Retain: 保留后端存储,删除 PV/PVC 不会删除对应的后端存储如云盘。详情参考 Kubernetes 官网文档

  • Delete:当删除 PVC 时,自动删除 PV 和后端的存储。详情参考 Kubernetes 官网文档

volumeBindingMode

存储卷绑定策略

控制存储卷绑定和动态供应行为

  • Immediate:创建 PVC 后立即创建后端存储卷,并且立即绑定新创建的 PV 和 PVC。

  • WaitForFirstConsumer:当 PVC 被 Pod 使用时,才触发 PV 和后端存储的创建,同时实现 PVC/PV 的绑定,启用该配置后,Storage Class 中的 Zone 和 Region 将不再生效,而是使用 Pod 调度所在节点的 zone 和 region 创建文件系统,保证文件系统能被 Pod 挂载。

云盘(cloud_disk)类型

重要

云盘类型的 Storage Class 必须和 AKS 集群节点在相同地域及可用区。

AKS 定义的云盘类型的 Storage Class 如下:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
   name: csi-disk-ssd
provisioner: antcloud-csi
parameters:
    fsType: "ext4"
    storage_type: "cloud_disk" # Allowed enum: cloud_disk, cloud_nas, cloud_oss
    type: "cloud_ssd"
    serviceId: "8814fddf-5be7-4f8a-862c-f4a57c25a0b4-aliyun-disk-service-id"
    planId: "02b41c80-915f-43cd-a574-e9cd446f13ea-aliyun-disk-plan-id"
reclaimPolicy: Retain # Allowed enum: Delete, Retain
volumeBindingMode: WaitForFirstConsumer # Allowed enum: Immediate, WaitForFirstConsumer

参数说明

参数名

说明

是否必填

备注

provisioner

antcloud-csi

动态卷控制器名称,不可更改。

failure-domain.beta.kubernetes.io/region

地域

该字段当 volumeBindingMod=Immediate 时为必选,会被用来创建云盘。例如:CN-SHANGHAI,代表上海地域。

failure-domain.beta.kubernetes.io/zone

可用区

该字段当 volumeBindingMod=Immediate 时为必选,会被用来创建云盘。例如:CN-SHANGHAI-A,代表上海可用区 A。

fsType

分区格式

支持 ext4、ext3,默认 ext4。

storage_type

后端存储类型

  • cloud_disk,表示阿里云云盘

  • cloud_nas, 表示阿里云 NAS。

type

磁盘类型

可选值:cloud_ssd、cloud_efficiency、cloud。详情参考 云盘概述

readOnly

是否只读

可选值:true、false。

serviceId

Service broker必选参数

必须为:8814fddf-5be7-4f8a-862c-f4a57c25a0b4-aliyun-disk-service-id

planId

Service broker必选参数

必须为:02b41c80-915f-43cd-a574-e9cd446f13ea-aliyun-disk-plan-id

reclaimPolicy

回收策略

  • Retain: 保留后端存储,删除 PV/PVC 不会删除对应的后端存储如云盘。详情参考 Kubernetes 官网文档

  • Delete:当删除 PVC 时,自动删除 PV 和后端的存储。详情参考 Kubernetes 官网文档

volumeBindingMode

存储卷绑定策略

控制存储卷绑定和动态供应行为。

  • Immediate:创建 PVC 后立即创建后端存储卷,并且立即绑定新创建的 PV 和 PVC

  • WaitForFirstConsumer:当 PVC 被 pod 使用时,才触发 PV 和后端存储的创建,同时实现 PVC 和 PV 的绑定,启用该配置后,storage class 中的 zone 和 region 将不再被使用,而是使用 pod 调度所在节点的 zone 和 region 创建云盘,保证云盘能被 Pod 挂载。

前提条件

需 AKS 管理员权限。

操作步骤

  1. 登录容器应用服务控制台,在左侧导航栏单击 存储 > 存储类型

  2. 存储类型 页面,单击 创建存储类型。在输入框中输入 YAML 内容,单击 提交