본문 바로가기
IT_Engineer/DevOps_Cloud

[K8S] Kubernetes pod to local 파일 복사

by 좋은데이피치 2021. 1. 7.

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

최근댓글

최근글