Kubernetes CSI External snapshotter - understanding its components

314 Views Asked by At

We have the AWS EBS CSI Driver installed on our Kubernetes cluster and its functioning perfectly. I was asked to install/enable the External Snapshotter functionality so we can make easy backup and restores. I followed the steps here https://github.com/kubernetes-sigs/aws-ebs-csi-driver/tree/master/examples/kubernetes/snapshot, and while all the Kubernetes resources seemed to be intact, no snapshot was made in AWS. Same for following this post - https://adil.medium.com/how-to-create-ebs-volume-snapshots-on-eks-e827b12b85c3, nothing. I didn't even get any errors!

I decided to dig into the actual source code and see whats going on so I can determine the actual issue. I was looking here https://github.com/kubernetes-csi/external-snapshotter/tree/master/deploy/kubernetes and was a bit confused:

What exactly is the difference between the purpose of the csi-snapshotter and the snapshot-controller? At a high level, how does each work and do you need both for a snapshot to work?

1

There are 1 best solutions below

0
Madhukar Khodave On

If you use aws-ebs-csi-driver helm chart, then try enabling snapshotter - https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/charts/aws-ebs-csi-driver/values.yaml#L67#L69 & make sure you have correct IAM policy used for node role.