`kubectl cp` to a pod is failing because of Permission Denied

8/31/2019

When I try to copy a small file to a Kubernetes pod, it fails with the following error:

:~ $kubectl cp /tmp/a default/resolver-proxy-69dc786fcf-5rplg:/usr/local/bin/ --no-preserve=true
    tar: a: Cannot open: Permission denied
    tar: Exiting with failure status due to previous errors
    command terminated with exit code 2

Could someone please help me how to fix this? I am running Kubernetes on minikube.

I also see another Postgres Pod in a Error state because of similar error:

:~ $kubectl logs postgres-7676967946-7lp9g postgres
tar: /var/lib/postgresql/data: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
-- UnderWood
copy-paste
google-kubernetes-engine
kubectl
kubernetes
minikube

1 Answer

8/31/2019

For kubectl cp try copying first to /tmp folder and then mv the file to the path required by shifting to root user

kubectl cp /tmp/a default/resolver-proxy-69dc786fcf-5rplg:/tmp/

then exec into the pod and change to root and copy to the path required.

For the second issue exec into the pod and fix the permissions by running the below command. Postgres need to be able to read and write to the Postgres path.

chown -R postgres:postgres /var/lib/postgresql/

-- Tummala Dhanvi
Source: StackOverflow