K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
Kubernetes CSI Snapshot(下篇)
1、卷配置程序可以识别数据源并能够直接从数据源创建卷(例如,将快照还原到卷或克隆卷)。
2、卷配置程序无法识别数据源,并创建空存储卷。另一个外部组件(数据填充程序)可以监视卷创建并可以将数据填充/导入到已配置的卷。只有在将数据填充到卷后,PVC才可以被使用。
考虑到可以有许多不同类型的数据源用于将数据填充到卷中,因此我们建议在PersistentVolumeClaimSpec中添加一个通用的“DataSource”字段来表示不同类型的数据源。
对于需要外部数据填充程序的其他类型的数据源,卷创建和数据填充是两个单独的步骤。 只有在数据准备就绪时,才能将PVC / PV标记为就绪(绑定),用户可以开始使用它们。我们正在制定一个单独的提案,使用“Pod Ready ++”(https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md)中的类似想法来解决这个问题。
注意:为了使用此数据源功能,用户/管理员需要更新到可以识别快照数据源的新external provisioner。否则,将忽略数据源并创建空存储卷。
步骤一:下载kubernetes 1.12版本,修改hack/local-up-cluster.sh脚本,如下:
第26行修改如下,允许以特权形式启动container。
第131行添加下列,开启VolumeSnapshotDataSource特性开关。
然后我们就可以启动local-up集群。
步骤二:部署external-provisioner、external-snapshotter、external-attacher、driver-registrar、hostpathplugin等sidecar容器。部署脚本包含serviceaccount、clusterrole等所需要的全部资源。
查看csi-pod,容器全部处于运行状态。
步骤三:创建storageClass,以及pvc,查看pvc以及创建的pv状态,均已处于bound状态。
步骤四:创建pod,使用pv,同时往pv中写入数据。
步骤五:创建volumeSnapshotClass,然后对csi-pvc创建snapshot
查看创建的volumeSnapshotContent具体信息。
验证snapshot是否创建成功。
步骤六:创建csi-restore-pvc,添加我们此前创建的snapshot为数据源。
查看pvc,pv状态
查看pv详细信息,volumeHandle为93119a08-b754-11e8-97ca-0242ac110003,
验证pv数据是否预填充,我们可以看到创建出来的pv,已有数据填充。
相关服务请访问:https://support.huaweicloud.com/cce/index.html?utm_content=cce_helpcenter_2019
- 点赞
- 收藏
- 关注作者
评论(0)