Conversation
|
🤖 Beep beep! I’m a robot speaking on behalf of @ahmetb. 🤖 Thanks for submitting your kubectl plugin to Krew! In the meanwhile, here are a few tips to make your plugin manifest better:
Thanks for your patience! |
|
/assign ahmetb |
|
/lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ahmetb, hashmap-kz The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Hello! The new plugin page: https://github.com/hashmap-kz/kubectl-syncpod/tree/master
Motivation
There are plenty of tools with seemingly similar functionality at first glance.
Some of them mount PVCs locally, others transfer data between PVCs, perform backups, etc.
However, I was surprised to find that none of them can efficiently transfer files to and from a PVC—especially in a fast and concurrent manner.
Of course, there's always the manual approach: running a debug Pod or building a custom image with the necessary tools—but that's a long and cumbersome way to get things done.
Currently, I'm developing a tool for PostgreSQL WAL archiving, and I ran into a roadblock when I needed to transfer a large amount of data inside a PVC.
If the volume is hostPath-based, it's relatively straightforward—you can simply copy the required files onto the target node. But with CSI-backed volumes, where the PVC is mounted as a block device, things become more complex.
In my case, I have three primary storage classes: hostPath, Ceph RBD, and NFS.
Most of my PostgreSQL instances use RBD volumes, so without a lot of shell magic, you can’t just "copy something in" directly.
I've tested this tool with
Ceph RBD,distroless-basedimages, and hostPath PVCs.It performs much faster than
kubectl cporkubectl exec. With those, I gave up waiting for even a 100 GiB copy to finish—and that's a relatively small amount of data.Perhaps someone will find it useful too.
Best regards!