vmware-tanzu / velero-plugin-for-vsphere

Plugin to support Velero on vSphere
Other
58 stars 50 forks source link

Clarification: Velero Plugin for vSphere support for vSphere CSI Driver deployed s a process with multiple replicas in a Kubernetes multi-node control plane setup #546

Closed yafithl closed 9 months ago

yafithl commented 11 months ago

According to the Docs:

“Velero Plugin for vSphere does not support vSphere CSI Driver deployed as a process with multiple replicas in a Kubernetes multi-node control plane setup”

My K8S Setup:

user@s9-master0:~$ kubectl get pods -n vmware-system-csi NAME READY STATUS RESTARTS AGE vsphere-csi-controller-769fbf47db-87wk8 7/7 Running 2 (5d23h ago) 10d vsphere-csi-controller-769fbf47db-gchlh 7/7 Running 7 (3d22h ago) 10d vsphere-csi-controller-769fbf47db-r2qnv 7/7 Running 3 (4d20h ago) 10d vsphere-csi-node-5hm4l 3/3 Running 2 (10d ago) 10d vsphere-csi-node-f9b4l 3/3 Running 1 (10d ago) 10d vsphere-csi-node-fszkn 3/3 Running 1 (10d ago) 10d vsphere-csi-node-grhnt 3/3 Running 1 (10d ago) 10d vsphere-csi-node-qzptp 3/3 Running 4 (10d ago) 10d vsphere-csi-node-rbqrz 3/3 Running 5 (10d ago) 10d vsphere-csi-node-xd5lk 3/3 Running 1 (10d ago) 10d

user@s9-master0:~$ kubectl get nodes NAME STATUS ROLES AGE VERSION s9-master0 Ready control-plane 10d v1.26.1 s9-master1 Ready control-plane 10d v1.26.1 s9-master2 Ready control-plane 10d v1.26.1

What does it mean "vSphere CSI Driver deployed as a process with multiple replicas in a Kubernetes multi-node control plane setup"?

Can I use this plugin in my K8S setup env?

It seems to me that vSphere CSI Driver is deployed with multiple replicas/node in almost every production environment. So if it is a common use case, how can someone use this plugin?

xing-yang commented 11 months ago

It means Velero vSphere Plugin supports vSphere CSI Driver deployed as multiple pods, but not as non-pod processes in K8s.

yafithl commented 11 months ago

I'm not sure your answer is clear 😃

Can I use this plugin in my environment?

vSphere CSI Driver is deployed with multiple replicas (of pods) in multi-node control plane setup, as follow:

user@s9-master0:~$ kubectl get pods -n vmware-system-csi NAME READY STATUS RESTARTS AGE vsphere-csi-controller-769fbf47db-87wk8 7/7 Running 2 (5d23h ago) 10d vsphere-csi-controller-769fbf47db-gchlh 7/7 Running 7 (3d22h ago) 10d vsphere-csi-controller-769fbf47db-r2qnv 7/7 Running 3 (4d20h ago) 10d vsphere-csi-node-5hm4l 3/3 Running 2 (10d ago) 10d vsphere-csi-node-f9b4l 3/3 Running 1 (10d ago) 10d vsphere-csi-node-fszkn 3/3 Running 1 (10d ago) 10d vsphere-csi-node-grhnt 3/3 Running 1 (10d ago) 10d vsphere-csi-node-qzptp 3/3 Running 4 (10d ago) 10d vsphere-csi-node-rbqrz 3/3 Running 5 (10d ago) 10d vsphere-csi-node-xd5lk 3/3 Running 1 (10d ago) 10d

user@s9-master0:~$ kubectl get nodes NAME STATUS ROLES AGE VERSION s9-master0 Ready control-plane 10d v1.26.1 s9-master1 Ready control-plane 10d v1.26.1 s9-master2 Ready control-plane 10d v1.26.1

yafithl commented 11 months ago

I am planning to use Velero Plugin for vSphere Version 1.4.0. Is it planned to be deprecated soon?

xing-yang commented 11 months ago

It should work. 1.4.0 is not deprecated yet, but it is pretty old. Can you use a newer version?

yafithl commented 11 months ago

No I can't. I have vSphere 6.7. According to the following table:

https://github.com/vmware-tanzu/velero-plugin-for-vsphere/blob/main/docs/vanilla.md

The following versions should work together:

Velero Plugin for vSphere Version: 1.4.0 vSphere Version: 6.7U3 P06 - 7.0U3 Kubernetes Version: 1.20-1.23 vSphere CSI Driver Version: 2.6.1

But according to the table below: https://docs.vmware.com/en/VMware-vSphere-Container-Storage-Plug-in/2.0/vmware-vsphere-csp-getting-started/GUID-D4AAD99E-9128-40CE-B89C-AD451DA8379D.html#GUID-E59B13F5-6F49-4619-9877-DF710C365A1E

Volume snapshot support works on Minimum Required vSphere Container Storage Plug-in Version: 2.5.0 which works only on "Minimum required vSphere version is 7.0 Update 3".

Isn't Volume Snapshotter is mandatory? If it is, according to the second table it should work only on vSphere version is 7.0 Update .

So how can I use this plugin with vSphere 6.7?

yafithl commented 10 months ago

?

xing-yang commented 10 months ago

Velero vSphere Plugin does not use Kubernetes Volume Snapshot. It uses vSphere API to take FCD snapshot directly because vSphere CSI driver didn't support Volume Snapshot back then when Velero vSphere Plugin was first released.

yafithl commented 10 months ago

Thanks for the answer! Now it makes sense... If that is the case, should I configure snapshot when I install Velero? For example: velero install --provider aws --bucket dev --secret-file ./minio.credentials --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://x.x.x.x:9000 --plugins velero/velero-plugin-for-aws:v1.4.1 --image velero/velero:v1.8.1 --use-volume-snapshots=true --snapshot-location-config region=”default”

Later, I installed the Vsphere plugin following the instruction below: https://github.com/vmware-tanzu/velero-plugin-for-vsphere/blob/main/docs/guest.md

yafithl commented 10 months ago

?

xing-yang commented 10 months ago

You need "--snapshot-location-config". You don't need "--use-volume-snapshots=true".

yafithl commented 9 months ago

An error occurs with that configuration - I opened a different ticket: https://github.com/vmware-tanzu/velero-plugin-for-vsphere/issues/549