问题
I have a container running inside Kubernetes cluster (within POD) along side many other containers (in their own PODs) and my container is a common container. Now, I want to pull (copy) the files from other containers to my common container. I investigated for some options and found that kubectl copy can be used. But, for that, I need to include kubectl command line tool inside my common container. I'm not sure if this is right approach. So, I thought of using Java Kubernetes APIs to do the same. Is there equivalent Kubernetes REST API for Kubectl copy command ? I gone through the kubernetes APIs and could not find any such API ..
Thanks
回答1:
That's because kubectl cp is implemented via tar, so what is actually happening is kubectl exec $pod -- tar -cf - /the/container/file | tar -xf -
, which is what I would expect your Java API would need to do, as well.
However, you may -- depending on your needs -- be able to get away with how I used to do it before kubectl cp
arrived: kubectl exec $pod -- /bin/cat /the/container/file > local-file
which in your circumstance may be a ton easier since I would expect the API would materialize those bytes as an InputStream
, saving you the need to get into the tar-format-parsing business
来源:https://stackoverflow.com/questions/49421365/kubernetes-java-api-for-kubectl-copy-command