我需要rsync文件树到kubernetes集群中的特定窗格。 似乎应该有可能的,如果只有一个人可以说服rsync的kubectl行为有点像rsh。 就像是:
rsync --rsh='kubectl exec -i podname -- ' -r foo x:/tmp
…除了这会遇到x的问题,因为rsync假定需要一个主机名:
exec: "x": executable file not found in $PATH
我似乎无法find一种方法来帮助rsync构buildrsh命令。 有没有办法做到这一点? 或者其他一些通过pipe道可以实现相对高效的文件传输的方法?
(我知道gcloud compute copy-files ,但它只能用于节点?)
最后,我写了一个Python脚本来充当tar文件的接收者。 你可以这样做:
tar cf - . | kubectl exec shinken -i catcher -v /etc/shinken/custom_configs
请注意,这只适用于群集节点为kubernetes 1.1或更高版本的情况。
不支持,但添加支持,您可以+1,甚至有助于: https : //github.com/kubernetes/kubernetes/issues/18007#issuecomment-164797262
如果容器上有tar二进制文件,则可以使用新的cp命令传输文件。 https://kubernetes.io/docs/user-guide/kubectl/v1.7/#cp
虽然可能不如rsync高效。