k8s动态PV

当发布PVC之后可以生成PV,还可以再共享服务器上直接绑定和使用PV

动态PV需要两个组件:

  1. 存储卷插件,k8s本身支持的动态PV创建不包括NFS,需要声明和安装一个外插件

Provisioner:存储分配器。动态创建PV,然后根据PVC的请求自动绑定和使用。

2,StorageClass:来定义PV的属性,存储类型,大小,回收策略。

用NFS来实动态PV,NFS支持的方式NFS-client, Provisioner来适配NFS-client

服务节点

ServiceAccount

NFS PRovisioner: 是一个插件,没有权限是无法在集群当中获取k8s的消息,插件要有权限能够监听apiserver,获取get,list(获取集群的列表资源)create Delete。

Rbac: Role-based AccEss Control

定义定义角色在进群当中使用的权限。

部署插件:

NFS-privisioner deployment来创建插件 pod

1.20 之后有一个新的机制

SelfLink:api的资源对象之一,表示资源对象在集群当中自身的一个链接,self-link是一个唯一标识符号,可以用于标识k8s集群当中美个资源对象。

Self link的值是一个URL,指向该资源对象的k8s api的路径。

更好的实现资源对象的查找和引用。

Feature-gates:在不破坏现有规则以及功能基础上引入新功能或者修改功能的机制。

禁用不影响之前的规则。

部署NFS-provisioner的插件:

NFS的provisioner的客户端以pod的方式运行在集群当中,监听k8s集群当中PV的请求。动态的创建于NFS服务器相关的PV。

容器中使用的配置,在provisioner当中定义好环境变量传给容器。Storageclass的名称,NFS服务器的地址,以及NFS的目录。

Provisioner的作用:创建PV

WaitForFirstConsumer:第一个使用者出现之后再绑定PV

ALLOWVOLUMEEXPANSLON:true表示可以在运行时对PV进行扩容。

动态PV的默认策略是删除Delete。

总结:动态PV

Provisioner插件-----支持NFS

Stroageclass:定义PV的属性

动态PV的默认策略是删除。动态没有回收。

动态PV删除PVC之后的状态,released

  1. 创建账号,给卷插件能够在集群内部通信,获取资源,监听事件,创建 删除 更新PV
  2. 创建卷插件pod,卷插件的pod创建PV
  3. Storageclass:给PV赋予属性(PVC被删除之后PV的状态,以及回收策略)
  4. 创建PVC---完成
相关推荐
孙克旭_18 分钟前
k8s基础组件与创建资源
运维·docker·容器·kubernetes
孙克旭_1 小时前
云原生基础之Containerd容器运行时
运维·云原生
分布式存储与RustFS1 小时前
RustFS 自建对象存储实战目录:110 篇按场景分类(持续更新)
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
java_logo15 小时前
Docker 部署 EmulatorJS:轻松搭建浏览器复古游戏平台
游戏·docker·容器·复古游戏·轩辕镜像·emulatorjs·红白机
吴声子夜歌16 小时前
Kubernetes权威指南——网络原理(一)
网络·容器·kubernetes
方便面不加香菜17 小时前
Docker Container --容器及容器的操作案例详解
运维·docker·容器
无言听风雨丶20 小时前
Kubernetes Service Mesh 与 mTLS 实战:从网络可达走向零信任服务通信
网络·kubernetes·service_mesh
weirong1 天前
跟原生 HPA 做对照压测:五轮里前四轮全废,最后一个结论也被我自己降级
kubernetes
无人生还别怕1 天前
如何搭建docker仓库(轻量级)registry
linux·运维·docker·云原生·容器·registry·openanolisos
分布式存储与RustFS1 天前
Hudi 表想摆脱 HDFS 绑定?用 Spark + Hudi 直接写进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准