공부합시다!/Kubernetes

Kubernetes(K8S): kubeclt cp 와 tar 다중 파일 복사

간서치 2023. 1. 7. 00:16
728x90

안녕하세요! ㅎㅎ

K8S환경에서도 docker와 동일하게 local host와 Pod, Pod와 local host사이의 파일 복사가 가능합니다.

물론 tar를 이용해서 다중 파일 복사도 가능합니다.

모두 docker와 동일합니다.

2023.01.06 - [공부합시다!/Container] - Docker: 다중 파일 복사

2022.05.27 - [공부합시다!/Container] - Docker : cp 파일 및 디렉토리 복사

 

Docker : cp 파일 및 디렉토리 복사

드디어 밀린 포스팅들을 작성하네요! 포스팅하는 날짜는 6월 3일 입니다. 사람은 거짓말 하고 살면 안돼요! 그럼 눈빛과 낯빛에 어둠이 드리워 집니다. 환했던 사람이 어두워 지는 건 바로 이 거

virtualtech.tistory.com

 

1.  local host -> pod

2 . pod -> local host

3. 다중 파일 pod -> localhost

4. 다중 파일 localhost -> pod

순으로 진행하겠습니다.

 

 

1.  local host -> pod

 1.1. 복사에 사용할 # vi index.html 작성

# vi index.html

<html>
<body>
<h1>K8S-COPY-TEST</h1>
</body>
</html>

 

 1.2. nginx최신 이미지를 이용하여 nginx-cp 이름의 Pod 생성

 1.3. cluster IP 확인

 1.4. curl clustetIP  이용하여 index.html 파일 확인

 1.5. kubectl cp 명령어를 이용하여 index.html 파일 교체

 1.6. curl clustetIP  이용하여 index.html 파일 확인

# kubectl run nginx-cp --image nginx --port 80
# kubectl get pods -o wide
# curl 192.168.166.129
# kubectl cp index.html nginx-cp:/usr/share/nginx/html/
# curl 192.168.166.129

2 . pod -> local host

 2.1. nginx-cp Pod의 index.html 파일을 localhost의 /root디렉토리의 index1.html로 복사

 2.2. index1.html 파일 확인

# kubectl cp nginx-cp:/usr/share/nginx/html/index.html ./index1.html
# ls ./
# cat index1.html

 

3. 다중 파일 pod -> localhost

 3.1. /root 디렉토리에 mysql 디렉토리 생성

 3.2. mysql:5.7 이미지를 이용해서 mysql-cp라는 Container 생성

 3.3. container의 /var/lib/mysql 디렉토리의 모든 파일을 mysql 이름의 tar 파일 생성 후  localhost의 ./mysql 디렉토리 복사

 3.4. 복사한 파일 확인

# mkdir ./mysql
# kubectl run mysql-cp --image mysql:5.7 --env MYSQL_ROOT_PASSWORD=It12345@ --port 3306
# kubectl get pods -o wide
# kubectl exec mysql-cp -- tar Ccf /var/lib/mysql - . | tar Cxf ./mysql -
# ls ./mysql

 

4. 다중 파일 localhost -> pod

 4.1. ./mysql의 파일은 tar로 Archive 후 mysql-cp Pod의 /tmp 디렉토리로 복사

 4.2. mysql-cp Pod의 /tmp/mysql 디렉토리의 복사한 파일 확인

# tar Ccf ./mysql/ - mysql | kubectl exec -i nginx-cp -- tar Cxf /tmp -
# kubectl exec nginx-cp -- ls /tmp
# kubectl exec nginx-cp -- sl /tmp/mysql

 

docker와 Kubernetes 모두 동일한 옵션을 사용합니다.

잘 익혀두시길....

728x90