pv和pvc存储卷
存储卷:
emptyDir:容器内部,随着pod销毁,emptyDir也会消失,不能做数据持久化
hostPath:持久化存储数据可以和节点上目录做挂载,pod被销毁了数据还在
NfS:一台机器,提供pod内容器所有的挂载点
pv和pvc:
pvc就是pod发起的挂载 的请求
pv:持久化存储的目录,ReadwriteMan、ReadOnlyMany、ReadWriteOnce
只有NFS支持ReadWriteOnce、ReadOnlyMany 、readwriteMany
hostPath只支持ReadWriteOnce
ISCI:不支持ReadWriteMany
py的回收策略:Retain、released需要人工设置,调整回Available
Reycle回收,自动调整回Available,Delete:删除
静态pv和pvc
运维负责pv:创建好持久化存储卷,生命好读写和挂载类型,以及可以提供的存储空间
pvc开发做,要和开发沟通好,你期望的读写和挂载类型,以及存储空间。
当发布后pvc之后可以自动生成pv,还可以共享服务器上直接生成挂载目录
pvc直接绑定和使用pv
动态pv需要两个组件:
1、卷插件,k8s本身支持的动态pv创建不包括NFS,需要声明和安装一个外部插件
Provisioner:存储分配器。可以动态创建pv,然后根据pvc的请求自动绑定和使用
2、StorageClass:卷插件来定义pv的属性,包括存储类型,大小回收策略等等
还是用NFS实现动态pv,NFS支持的方式是NFS-client,provisioner来适配nfs-client
nfs-clent-provisioner卷插件
serviceAccount
NFS PRovosoner:是一个,没有权限是无法在集群当中获取k8s的消息,插件要有权限能够监听apiserver,获取get,list(获取集群的列表资源) create delete
kind ServiceAccount
rbac:Role-based ACCESS CONTROL #定义校色在集群当中可以使用的权限
角色、权限都已经创建完毕
部署插件:NFS-privisioner deployment来创建插件 pod
1.20之后又一个新的机制
selfLink:API的做i元对象之一,表示资源对象在集中当中自身的一个连接,self-link是一个唯一表示符号,可以用于表示k8s集群当中每个资源的对象<