K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
admin
2023-04-06 18:03:23
0

目标
目前在Kuberentes中,卷插件仅支持配置空的存储卷。随着新的存储功能(包括卷快照和卷克隆)的提出,因此需要支持配置卷时数据填充以。例如,可以从快照源创建卷,也可以从其他卷源克隆卷。根据创建卷的来源,有两种情况:
1、卷配置程序可以识别数据源并能够直接从数据源创建卷(例如,将快照还原到卷或克隆卷)。

2、卷配置程序无法识别数据源,并创建空存储卷。另一个外部组件(数据填充程序)可以监视卷创建并可以将数据填充/导入到已配置的卷。只有在将数据填充到卷后,PVC才可以被使用。

考虑到可以有许多不同类型的数据源用于将数据填充到卷中,因此我们建议在PersistentVolumeClaimSpec中添加一个通用的“DataSource”字段来表示不同类型的数据源。

PVC API 变化
我们将在PVC中添加DataSource字段,以表示预先填充到预配置卷的数据源。对于DataSource字段,我们定义一个新类型“TypedLocalObjectReference”。它类似于具有附加Kind字段的“LocalObjectReference”类型,以便支持多种数据源类型。在alpha版本中,此数据源应和PVC位于同一命名空间。此数据源受限于PVC的同一名称空间。
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
设计细节
在第一个alpha版本中,我们仅支持来自Snapshot的数据源。因此,DataSource中的Kind必须是“VolumeSnapshot”。在这种情况下,provisioner 应该在一个步骤中完成配置卷并填充数据。目前我们还不需要外部数据填充程序。
对于需要外部数据填充程序的其他类型的数据源,卷创建和数据填充是两个单独的步骤。 只有在数据准备就绪时,才能将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版本启动的local-up环境,使用csi-hostpath作为测试插件,来演示snapshot的创建以及从snapshot还原数据卷。示例所使用的yaml可在https://github.com/wackxu/csi-snapshot-test找到。
步骤一:下载kubernetes 1.12版本,修改hack/local-up-cluster.sh脚本,如下:

第26行修改如下,允许以特权形式启动container。
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
第131行添加下列,开启VolumeSnapshotDataSource特性开关。
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
然后我们就可以启动local-up集群。

步骤二:部署external-provisioner、external-snapshotter、external-attacher、driver-registrar、hostpathplugin等sidecar容器。部署脚本包含serviceaccount、clusterrole等所需要的全部资源。
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
查看csi-pod,容器全部处于运行状态。
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
步骤三:创建storageClass,以及pvc,查看pvc以及创建的pv状态,均已处于bound状态。
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
步骤四:创建pod,使用pv,同时往pv中写入数据。
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
步骤五:创建volumeSnapshotClass,然后对csi-pvc创建snapshot
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
查看创建的volumeSnapshotContent具体信息。
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
验证snapshot是否创建成功。
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
步骤六:创建csi-restore-pvc,添加我们此前创建的snapshot为数据源。
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
查看pvc,pv状态
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
查看pv详细信息,volumeHandle为93119a08-b754-11e8-97ca-0242ac110003,
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
验证pv数据是否预填充,我们可以看到创建出来的pv,已有数据填充。
K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
相关服务请访问:https://support.huaweicloud.com/cce/index.html?utm_content=cce_helpcenter_2019

相关内容

热门资讯

交付巴基斯坦的“麒麟”级潜艇战... ‍‍近日,在国防部举行的例行消息发布中有媒体提到,中方为巴基斯坦建造的“麒麟”级常规动力潜艇首艇已经...
伊朗官员:伊美就浓缩铀处置方式... 当地时间11日,总台记者获悉,一名伊朗官员称,伊朗与美国之间的谈判在浓缩铀的处置、暂停铀浓缩活动期限...
沈阳添新地标!超级IP“巨虎东... 万众期待,神兽归沈! 5月10日,沈阳专属超级文旅IP“巨虎东东”圆满完成交付唤醒仪式,正式启程奔赴...
虹软科技:暗光增强等算法已应用... 来源:市场投研资讯 (来源:财闻) 公司前瞻把握AI眼镜作为新一代AI交互入口的战略机遇,凭借深厚的...
全球脑机接口企业已突破800家... 从冰冷的科技设备变为有温度的生命助手 脑机接口“黄金时代”正在到来 5月10日,全国脑机接口科技与...
总面积超2000平方米,上海张... IT之家 5 月 11 日消息,据央视财经,上海张江 AI 应用商店今起正式开门迎客,从能教你弹吉他...
伊朗议长:伊武装部队已做好准备... 当地时间11日,伊朗议会议长卡利巴夫在社交平台上发布消息称,伊朗武装部队已做好准备应对任何侵略行为。...
特朗普声称考虑让委内瑞拉成为美... 据英国《独立报》5月11日报道,美国总统特朗普在接受福克斯新闻采访时表示,正认真考虑采取行动,将委内...
长沙全球研发中心城市建设成型起... 长沙全力建设全球研发中心城市,在全球创新坐标系中稳步进位。 2025年,长沙跃居全球科技集群百强榜第...
【微特稿】AI会取代哪些职业?... 【新华社微特稿】当前,人们日益担忧人工智能(AI)将影响就业市场。美国近期一项研究显示,多个人工智能...