k8s篇-应用持久化存储2(存储快照与拓扑调度)

本文详细介绍了Kubernetes(K8s)中的存储快照功能,包括创建、恢复原理以及使用示例,阐述了VolumeSnapshot和VolumeSnapshotContent的概念。同时,文章解析了存储拓扑调度的背景、处理流程,以及如何通过Topology实现存储资源的合理调度,确保Pod与PV在相同拓扑域。内容涵盖了LocalPV的静态拓扑限制和动态PV的拓扑限制配置。

一、存储快照

快照功能:可以对线上的数据进行快速的复制、迁移等,及对重要数据误操作之后进行快速恢复。K8s中通过CSI Snapshotter controller来实现存储快照的功能。

Snapshot原理:创建snapshot过程,与pvc&pv设计类似

 PVC ------------------> StorageClass -------------> PV
 VolumeSnapshot -------> VolumeSnapshotClass ------> VolumeSnapshotContent
|______________________|___________________________|______________________|
|          User        |      Cluster Admin        |   Dynamic Generate   |

当用户需要存储快照的功能时,通过VolumeSnapshot来声明,并指定相应的VolumeSnapshotClass,之后由集群中的相关组件动态生成存储快照,及其对应的VolumeSnapshotContent。

Restore原理:有了snapshot后,如何将快照数据快速恢复过来

                         (1)
.—————————————————.   .---------> VolumeSnapshot ----> VolumeSnapshotContent
| PVC (dataSource)|==='
'—————————————————'   |  (2)
                      '---------> PV
                        restore

先在PVC对象的 spec.dataSource 中指定一个VolumeSnapshot。当提交PVC后,k8s会根据StorageClass定义动态创建一个新PV,然后k8s会找到dataSource所指向的存储快照数据,并将这些快照数据恢复到新PV中。最后Pod再指定这个PVC,就可以使用新PV的快照数据。

1、Volume Snapshot/Restore使用示例

第一步:创建一个VolumeSnapshotClass对象

apiVersion: snapshot.storage.k8s.io/v1alpha1
kind: VolumeSnapshotClass
metadata: 
  name: disk-snapshotclass
snapshotter: diskplugin.csi.alibabacloud.com

snapshotter:指定真正创建存储快照时所使用的Volume插件,这个Volume插件是要提前部署好的

第二步:创建一个VolumeSnapshot

apiVersion: snapshot.storage.k8s.io/v1alpha1
kind: VolumeSnapshot
metadata:
  name: disk-snapshot
spec:
  snapshotClassName: disk-snapshotclass
  source:
    name: disk-pvc
    kind: PersistentVolumeClaim

source:指定要做快照的数据源。提交这个VolumeSnapshot对象后,k8s会找到这个名为disk-pvc的PVC对应的PV存储,对这个PV存储做一次快照。

第三步:用存储快照恢复数据,即将快照数据恢复到新PV上

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: restore-pvc
  namespace: simple
spec: 
  dataSource:
    name
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值