Kubernetes(K8S): kubeclt cp 와 tar 다중 파일 복사
안녕하세요! ㅎㅎ
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 모두 동일한 옵션을 사용합니다.
잘 익혀두시길....