k8s-pv

基础概念就不总结了,直接搞起

1、安装

1、关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

2、安装配置 nfs
 yum -y install nfs-utils rpcbind

3、配置 nfs,nfs 的默认配置文件在 /etc/exports 文件下#更多配置自己查吧
#vi /etc/exports
/data/k8s  *(rw,sync,no_root_squash)

4、启动服务 nfs,先启动 rpcbind,然后启动 nfs 服务
#rpc:
systemctl start rpcbind.service
systemctl enable rpcbind
systemctl status rpcbind
#nfs
systemctl start nfs.service
systemctl enable nfs
systemctl status nfs

2、创建pv

cat  pv1-demo.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name:  pv1
spec:
  capacity: 
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: /data/k8s
    server: 10.151.30.57

3、直接使用 kubectl 创建即可 

#kubectl create -f pv1-demo.yaml
persistentvolume "pv1" created
# kubectl get pv
NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM               STORAGECLASS   REASON    AGE
pv1       1Gi        RWO            Recycle          Available     

 4、访问模式、回收策略、状态

ReadWriteOnce(RWO):读写权限,但是只能被单个节点挂载
ReadOnlyMany(ROX):只读权限,可以被多个节点挂载
ReadWriteMany(RWX):读写权限,可以被多个节点挂载
Retain(保留)- 保留数据,需要管理员手工清理数据
Recycle(回收)- 清除 PV 中的数据,效果相当于执行 rm -rf /thevoluem/*
Delete(删除)- 与 PV 相连的后端存储完成 volume 的删除操作,当然这常见于云服务商的存储服务,比如 ASW EBS。
不过需要注意的是,目前只有 NFS 和 HostPath 两种类型支持回收策略。当然一般来说还是设置为 Retain 这种策略保险一点。
一个 PV 的生命周期中,可能会处于4中不同的阶段:

Available(可用):表示可用状态,还未被任何 PVC 绑定
Bound(已绑定):表示 PVC 已经被 PVC 绑定
Released(已释放):PVC 被删除,但是资源还未被集群重新声明
Failed(失败): 表示该 PV 的自动回收失败
原文地址:https://www.cnblogs.com/zhaojingyu/p/12201161.html