I am not sure what you mean by "vanilla Kubernetes pvc". If you are referring to running on vanilla Kubernetes i.e. not on one of the hosted k8s offerings, then you still have multiple options to choose from:
- you could use shared filesystem as mentioned here Register a snapshot repository | Elasticsearch Guide [8.11] | Elastic for that you would need a persistent volume of a storage class that supports ReadWriteMany access type, e.g. NFS or some other network attached storage that supports that access mode and can be mounted into all of your Elasticsearch Pods. The important point here is that it is mounted to all your ES pods so that every ES node can write its part of the snapshot that excludes any local volumes types as an option.
- ignoring the PVC part for a moment you could also use the S3 Repository Plugin either against Amazon S3 or something that implements the S3 API like Minio for example which is typically easier than using a shared filesystem.