k8s无脑系列(七)- NFS存储(动态存储)

本文介绍了在Kubernetes环境中使用NFS动态存储的原因,详细讲解了StorageClass、Provisioner、PV和PVC等概念。通过创建StorageClass、配置NFS Provisioner和Persistent Volume Claim,实现NFS存储的自动化分配和管理。同时,文中还提到了校验系统运行的步骤以及NFS-Provisioner镜像的工作原理。
摘要由CSDN通过智能技术生成

k8s无脑系列(七)- NFS存储(动态存储)

1. 为什么需要动态存储

大概其的说一说,不一定对。总之一开始就觉得是个好东西。用到了,自然能体会到好处。

  1. 为每一个需要存储的资源编写pv,pvc很繁琐。

  2. 相同类型的请求有很多,急需快速可控的方案来实现动态申请。pvc申请,自动绑定pv

  3. 需要可以精细控制的存储回收重利用。既要保证容量,又要保证数据安全

2. 了解StorageClass

2.1 基础术语

  • pv - Persistent Volume(持久化存储卷)
  • pvc - Persistent Volume Claim(持久化存储卷请求)
  • pvp - Persistent Volume Provisioner(持久化存储卷供应者)
  • cluster role 集群操作角色,直接翻译role为角色,引申含义是角色具备哪些权限

2.1 原理

原理图

  1. 管理员创建Provisioner(供应者),负责为外部请求提供pv(持久化存储卷)实例

  2. StorageClass代替pvc(持久存储卷请求)向绑定的Provistioner发出pv(持久化存储卷)实例的请求

  3. Pod绑定的pvc通过pvc获取pv实例进行存储

3. 前期准备

物料 内容 备注
nfs服务 192.168.56.4 一台
存储目录 /data/nfs/db-svc-dynamic-volume 用于存放数据
k8s集群 无脑系列有介绍 版本1.16.4

3.1 Yaml涉及的概念

名称 解释 备注
StorageClass k8s API Doc
ServiceAccount 服务账户
Role/ClusterRole 角色/集群角色
RoleBinding/ClusterRoleBinding 角色与账户绑定

3.2 先定义服务账户权限

定义一个服务账户,该账户负责向集群申请资源。
定义“集群角色”,“角色”并与服务账户绑定。所以,yaml中才会分五部分。分别是

  1. service account
  2. cluster role
  3. cluster role 与 service account绑定
  4. role
  5. role 与 service account 绑定

nfs-storage-rbac.yaml


apiVersion: v1
# 定义服务账户
kind: ServiceAccount
metadata:
  # 名字要知命达意,这个账户专门为数据库服务
  # {用途}-svc-{卷类型}-account
  name: db-svc-nfs-account 
  namespace: default
---
# 定义集群角色声明该角色的权限列表,可以看出全是存储相关
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  # 与 db-svc-nfs-account 相呼应
  name: db-svc-nfs-cluster-role
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "create", "delete"]
  - apiGroups: [""]
    resources
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值