存储类管理

优质
小牛编辑
134浏览
2023-12-01

Kubernetes集群管理员通过提供不同的存储类,可以满足用户不同的服务质量级别、备份策略和任意策略要求的存储需求。动态存储卷供应使用StorageClass进行实现,其允许存储卷按需被创建。

如果没有动态存储供应,Kubernetes集群的管理员将不得不通过手工的方式类创建新的存储卷。

通过动态存储卷,Kubernetes将能够按照用户的需要,自动创建其需要的存储。

供应者

创建存储类之前必须得有 "provisioner",每个平台所使用的存储方案可能都会不一样。您可根据自己方式安装相应的Provisioner。

官方文档:https://kubernetes.io/docs/concepts/storage/storage-classes/

Volume PluginInternal ProvisionerConfig Example
AWSElasticBlockStoreAWS EBS
AzureFileAzure File
AzureDiskAzure Disk
CephFS--
CinderOpenStack Cinder
FC--
Flexvolume--
Flocker-
GCEPersistentDiskGCE PD
GlusterfsGlusterfs
iSCSI--
QuobyteQuobyte
NFS--
RBDCeph RBD
VsphereVolumevSphere
PortworxVolumePortworx Volume
ScaleIOScaleIO
StorageOSStorageOS
Local-Local

官方提供了以上方案,而这里我们方便演示使用最简单的NFS方案。

安装NFS

安装服务端

$ sudo yum install nfs-utils

开机启动

$ sudo systemctl enable rpcbind
$ sudo systemctl enable nfs

启动NFS

$ sudo systemctl start rpcbind
$ sudo systemctl start nfs

配置共享目录

$ sudo mkdir /opt/data
$ sudo chmod 755 /opt/data

打开文件:

$ sudo vi /etc/exports

添加以下配置:

/opt/data/ *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)

重启:

$ sudo systemctl restart nfs

安装Provisioner

修改install/kubernetes/storage/provisioner.yaml的IP地址及路径后执行以下命令:

$ kubectl apply -f install/kubernetes/storage/provisioner.yaml
$ kubectl apply -f install/kubernetes/storage/rbac.yaml
$ kubectl apply -f install/kubernetes/storage/serviceaccount.yaml

创建存储类

“配置与存储”->“存储类”菜单点开。

在列表页面点击“新建”按钮,在弹出来的对话框中输入以下信息:

  • 名称: 规则 ^[a-z0-9]([-a-z0-9])?([a-z0-9]([-a-z0-9]*[a-z0-9])?)*$可以有"."

  • Provisioner:供应者服务名

    这里我创建了一个名为“kpl-nfs-client-provisioner”的供应者。如果您可使用NFS的方式存储方案可以参考以上方案

  • ReclaimPolicy:回收策略 更改 PersistentVolume 的回收策略

    • Recycle
    • Delete
    • Retain
  • VolumeBindingMode: Volume Binding Mode

    • Immediate
    • WaitForFirstConsumer

存储类详情

创始完成存储类之后点击创建的存储类可查看详情,若有PVC及pv关联会在在这里显示:

image-20190823162311096