|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
创建卷
创建空卷
- UI
-
标题部分
-
设置卷
Name。 -
(可选)为卷提供一个
Description。
基础选项卡
-
在
New中选择Source。 -
选择现有的
StorageClass。 -
配置卷的
Size。
-
如果所选 StorageClass 的副本数量为
1且卷已附加到虚拟机,则该虚拟机被视为 不可迁移。 -
创建卷时,它会将所选
StorageClass的相关参数复制到自身。如果您稍后更改StorageClass的参数,则不会写回到卷。
超大卷
在 SUSE Virtualization v1.5.0 中,使用 SUSE Storage v1.8.1,超大卷(例如,999999 Gi 大小)被标记为 未准备好,并且无法删除。
要解决此问题,请执行以下步骤:
-
暂时去除 PVC webhook 规则。
RULE_INDEX=$(kubectl get \ validatingwebhookconfiguration longhorn-webhook-validator -o json \ | jq '.webhooks[0].rules | map(.resources[0] == "persistentvolumeclaims") | index(true)') if [ -n "$RULE_INDEX" -a "$RULE_INDEX" != "null" ]; then kubectl patch validatingwebhookconfiguration longhorn-webhook-validator \ --type='json' \ -p="[{'op': 'remove', 'path': '/webhooks/0/rules/$RULE_INDEX'}]" fi -
等待相关 PVC 被删除。
-
恢复 PVC webhook 规则以重新启用验证。
kubectl patch validatingwebhookconfiguration longhorn-webhook-validator \ --type='json' \ -p='[{"op": "add", "path": "/webhooks/0/rules/-", "value": {"apiGroups":[""],"apiVersions":["v1"],"operations":["UPDATE"],"resources":["persistentvolumeclaims"],"scope":"Namespaced"}}]'
该问题将在 SUSE Storage v1.8.2 中解决,可能会包含在 SUSE Virtualization v1.5.1 中。
-
- API
-
apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: volume.beta.kubernetes.io/storage-provisioner: driver.longhorn.io volume.kubernetes.io/storage-provisioner: driver.longhorn.io name: my-vol namespace: default spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi volumeMode: Block volumeName: pvc-my-vol
|
创建新卷时,请勿使用 |
- Terraform
-
要在 SUSE Virtualization 上使用 Terraform 创建一个空卷,使用 Harvester Terraform Provider,请定义一个
harvester_volume资源块:resource "harvester_volume" "empty-volume" { name = "empty-volume" namespace = "default" size = "10Gi" }
创建映像卷
-
UI
-
API
-
Terraform
标题部分
-
设置卷
Name。 -
(可选)为卷提供一个
Description。
基础选项卡
-
在
VM Image中选择Source。 -
选择现有的
Image。 -
配置卷的
Size。从虚拟机映像创建卷时,请确保卷的大小大于或等于映像的大小。如果配置的卷大小小于底层映像的大小,卷可能会损坏。这对于 qcow2 映像尤其重要,因为虚拟大小通常大于物理大小。默认情况下,SUSE Virtualization 将卷大小设置为映像的虚拟大小。
创建一个卷,使用来自名称空间 default 的映像 image-8rb2z 的内容进行初始化:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
harvesterhci.io/imageId: default/image-8rb2z
volume.beta.kubernetes.io/storage-provisioner: driver.longhorn.io
volume.kubernetes.io/storage-provisioner: driver.longhorn.io
name: foobar
namespace: default
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
storageClassName: longhorn-image-8rb2z
volumeMode: Block
volumeName: pvc-foobar
要在 SUSE Virtualization 上使用 Terraform 创建一个卷并用映像的内容进行初始化,请定义一个 harvester_volume 资源块并设置 image 属性:
resource "harvester_volume" "opensuse154-image-disk" {
name = "opensuse154-image-disk"
namespace = "default"
size = "10Gi"
image = harvester_image.opensuse154.id
}