kubernetes学习笔记19:volumnsnapshot和pod volumn claim
k8s通过csi snapshot controller来实现存储快照功能,可以快速restore,可以快速复制以及迁移等操作。他设计理念跟PVC和pv很像,volumnsnapshot相当于PVC,volumnsnapshotclass相当于storageclass集群管理员,volumnsnapshotcontent相当于pv。
通过volumnsnapshot声明,,并指定volumnsnapshotclass对象,然后有集群组件动态生成快照和存储快照对象volumnsnapshotcontent对象。
怎么使用呢,PVC扩展字段spec.datasource可以指定volumnsnapshot对象,从而根据PVC对象生成新的pv对象,将存储快照数据恢复到新的pv对象中,这就是restore用法。
拓扑,是k8s集群中为管理node划分的一种位置关系,可以通过node的labels信息里面填写某一个node属于某一个拓扑,有三种常用:region云存储时候用到,available zone可用区,hostname单机维度,拓普域为node范围。
存储拓扑区域调度,将pv和PVC的binding操作和动态创建pv的操作做了delay,delay到pod调度结果出来之后再做这两个操作。
限制静态pv,添加一个volumnbindingmode延迟绑定,provisioner值是NO-provisioner,也就是告诉k8s它不会主动动态创建pv对象。动态限制pv,指定bindingmode和allowedtopologies,第二个字段有两层含义动态创建pv的时间,pv必须在这个可用区域可以访问,另一个含义就是调度器在发现使用它的PVC正好对应的storageclass的时候,调度pod要选择位于可用区的nodes。
总之就是在创建存储的要能被可用区访问,然后调度node的时候,node在可用区域内。