|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
SUSE Storage与CDI导入
本文档解释了如何使用 容器化数据导入器(CDI)将原始或QCOW2映像导入SUSE Storage。它描述了通过使用CSI卷克隆创建可重用的*黄金映像*并从中配置多个工作负载的工作流程。
概述
在需要预填充磁盘映像的Kubernetes环境中,CDI使得将外部映像导入SUSE Storage支持的持久卷声明(PVC)成为可能。这些PVC作为可重用的黄金映像,用于配置后续的工作负载。
从技术上讲,黄金映像充当*基础映像PVC*。SUSE Storage通过使用CSI卷克隆来实现这一点,为每个新声明创建一个*完整的独立副本*。这种方法确保了数据的完全隔离。每个工作负载接收自己的可写卷,原始黄金映像在运行时保持不变,并且与克隆独立。
工作流程
-
导入:CDI从外部源(HTTP、S3或容器注册表)拉取映像,并填充一个SUSE Storage支持的PVC。
-
保护:该PVC充当黄金映像。建议将此PVC视为*只读*或不可变,以确保未来克隆的一致性。
-
克隆:工作负载创建新的PVC,引用基础映像作为它们的`dataSource`。SUSE Storage将数据从基础映像复制到新卷。
创建基础映像PVC
DataVolume清单指定源映像和Longhorn存储类。例如,以下清单通过HTTP导入QCOW2映像:
apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
name: golden-base-image
spec:
source:
http:
url: "https://example.com/images/base-image.qcow2"
pvc:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: longhorn
创建后,CDI处理映像导入和转换。结果是一个SUSE Storage支持的PVC,作为基础映像。建议将此PVC视为不可变,并避免工作负载直接写入。
克隆基础映像
在SUSE Storage中克隆基础映像PVC是以完整复制模式进行的。这为每个克隆的PVC创建了一个完整的独立基础映像副本。因此,每个工作负载都有自己的隔离卷,并且不依赖于基础映像进行运行时操作。
以下示例展示了如何创建克隆PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: cloned-pvc-1
spec:
dataSource:
name: golden-base-image
kind: PersistentVolumeClaim
apiGroup: ""
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: longhorn
您可以从同一基础映像创建多个克隆。每个克隆都是一个完整的独立副本,确保工作负载的隔离。