Kubernetes v 1.18部署StorageClass存储动态供应与statefulset有状态应用

本文详细介绍了如何在Kubernetes v1.18中利用StorageClass实现动态存储卷供应,以及如何通过NFS provisioner配置存储类。通过部署StatefulSet有状态应用进行验证,展示了数据持久化的功能。在完成验证后,还讲解了如何删除StatefulSet应用并回收PV。
摘要由CSDN通过智能技术生成

动态存储卷供应使用StorageClass进行实现,其允许存储卷按需被创建。如果没有动态存储供应,Kubernetes集群的管理员将不得不通过手工的方式类创建新的存储卷; 通过动态存储卷,Kubernetes将能够按照用户的需要,自动创建其需要的存储.部署storageclass首先得有一个存储的供应者(provisioner),如AWS EBS、AzureFile、AzureDisk、CephFS、Cinder、FC、iSCSI、NFS等等,本实验基于NFS provisioner实现。

1、配置NFS服务

在管理节点(10.0.0.1)上部署NFS服务,也可以用独立的服务器部署NFS服务端,共享的数据目录为/home/pvdata/share(777权限);

[root@k8s-node01 storageclass]# cat /etc/exports
/home/pvdata/share *(rw,sync,insecure,no_subtree_check,no_root_squash) #PV动态供应
[root@k8s-node01 nginx]#exportfs -r   #nfs配置生效
[root@k8s-node01 nginx]#exportfs   #查看NFS共享目录

2、创建nfs-provisioner

[root@k8s-node01 storageclass]# cat serviceaccount.yaml   #配置nfs-provisioner 的SA账号
apiVersion: v1
kind: ServiceAccount
metadata:
  name: nfs-provisioner
  
[root@k8s-node01 storageclass]# kubectl apply -f serviceaccount.yaml   #执行该文件
[root@k8s-node01 storageclass]# cat service-rbac.yaml   #对sa账号做rbac授权
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: nfs-provisioner-runner
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "create", "delete"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get", "list", "watch", "update"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["create", "update", "patch"]
  - apiGroups: [""]
    resources: ["services", "endpoints"]
    verbs: ["get"]
  - apiGroups: ["extensions"]
    resources: [
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值