Kubernetes pod 내 파일을 로컬로 복사하고 싶어서 열심히 찾아보았다.
(Kubernetes pod to local 파일 복사 / Kubernetes container to local)
그런데 K8S 버그?로 에러메시지가 게속 떠서 안 되고 있는 줄 알았는데,
잘 되고 있더라!!! ㅎㅎ 그래도 나처럼 또 헤매고 있을 누군가에게 도움이 되기 위해!
우선, kubectl cp -h 라고 치면 다음과 같이 나온다.
$ kubectl cp -h
# !!!Important Note!!!
# Requires that the 'tar' binary is present in your container
# image. If 'tar' is not present, 'kubectl cp' will fail.
# Copy /tmp/foo_dir local directory to /tmp/bar_dir in a remote pod in the default namespace
kubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir
# Copy /tmp/foo local file to /tmp/bar in a remote pod in a specific container
kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container>
# Copy /tmp/foo local file to /tmp/bar in a remote pod in namespace <some-namespace>
kubectl cp /tmp/foo <some-namespace>/<some-pod>:/tmp/bar
# Copy /tmp/foo from a remote pod to /tmp/bar locally
kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar
간단하게 정리하면,
1. 로컬에서 POD 안으로 복사
$ kubectl cp 디렉토리/파일이름 POD이름:디렉토리/파일이름
2. POD에서 로컬로 file 복사
$ kubectl cp namespace pod이름:디렉토리/파일이름 /옮길 디렉토리/파일이름
- namespace와 pod이름 사이에 /를 넣으면 에러가 나서 띄어쓰기로 썼는데, 혹시 안되면 / 한 번 넣어보기
- 그리고 경로는 절대경로로 주세요!
나는 2번 명령어를 사용했는데 자꾸,
이렇게 "tar: Removing leading '/' from member names" 라는 에러가 뜨길래 안된 줄 알았는데,
하고 ls -al 로 확인해보니 잘 들어와있었다. (쿠버네티스 버그라고 하던데. 예전 버전이라 최신 버전은 안뜰 수도 ㅎㅎ)
참고로 tar: Removing leading '/' from member names 에러는
kuberneterts가 절대경로를 보안상 안 좋게 생각해서 앞에 '/' 를 removing 한다는 건데,,
에러를 찾으면서 본거라 정확하지 않을 수도 있다.
모쪼록 모두 잘 해결해서 우리 모두 행복하길!!
728x90
'IT_Engineer > DevOps_Cloud' 카테고리의 다른 글
[Docker] Docker Hub에 생성한 레파지토리 삭제 (2) | 2022.02.22 |
---|---|
[K8S] Namespace Terminating 상태 (2) | 2021.01.13 |
[VM] Virtual Machine (가상머신) 에 대하여 (0) | 2020.12.14 |
[K8S] Kubernetes! 기초 용어 정리 (0) | 2020.12.09 |
[K8S] Windows WSL Minikube 및 Wordpress 설치 (1) | 2020.11.30 |