如何使用 Kubernetes 的 VMware 内树驱动程序扩展 VMware 持久卷(PV/PVC)?
(使用 Rancher 2.5 与 VMware/vSphere 云提供商以及 Kubernetes 1.18)
我创建了一个具有以下 UI 选项的存储类:提供商:VMWare vSphere Volume和允许卷扩展:已启用。(我不得不重新编辑 SC 并再次单击“允许卷扩展:已启用”)
我创建了一个 PVC,启动了我的 pod,然后停止了 pod。然后我使用“调整大小”UI 来增加卷大小(在 Rancher > Cluster x > Project y > Resource > Workload > Volumes > menu button > Resize)卷现在具有:spec.resources.requests.storage: 20Gi
和status.capacity.storage: 10Gi
(参见下面的 yaml)
但我在事件中收到错误:
ExternalExpanding Ignoring the PVC: didn't find a plugin capable of expanding the volume; waiting for an external controller to process this PVC.
这容量扩展似乎需要外部调整器Kubernetes CSISidecar 容器。
存储类别为:
#kubectl get storageclass -o yaml testsc
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: testsc
parameters:
datastore: TESTDS
diskformat: thin
provisioner: kubernetes.io/vsphere-volume
reclaimPolicy: Delete
PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/vsphere-volume
volume.kubernetes.io/selected-node: testnode1
finalizers:
- kubernetes.io/pvc-protection
name: testpvc
namespace: test
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storageClassName: testsc
volumeMode: Filesystem
volumeName: pvc-31d5f008-724a-4da3-b7ab-9bd2c067753e
status:
accessModes:
- ReadWriteOnce
capacity:
storage: 10Gi
phase: Bound
答案1
Kubernetes 内嵌驱动程序似乎已被弃用,取而代之的是外部 CSI“司机”. 仅有少数 in-tree 驱动程序支持 体积膨胀,vsphere/vmware 没有列出。此外,
配置完成后如何调整动态卷的大小?
尚不支持调整现有动态卷的大小。有提案可用这里。vSphere Cloud Provider 不支持调整卷大小。请跟踪此问题。
扩展卷可能需要使用 CSI 驱动程序而不是 Kubernetes 的树内 Vsphere 驱动程序。
Rancher 现在记录如何迁移vsphere 卷迁移。
PS Vmware 的 Kubernetes Tanzu 似乎允许扩展持久卷文档... 可能在 VSAN 上,因为 bug70616状态:VMware vSphere VMFS 文件系统尚不支持 PVC 大小调整。