-
Kubernetes(K8S): kubeclt cp 와 tar 다중 파일 복사공부합시다!/Kubernetes 2023. 1. 7. 00:16728x90
안녕하세요! ㅎㅎ
K8S환경에서도 docker와 동일하게 local host와 Pod, Pod와 local host사이의 파일 복사가 가능합니다.
물론 tar를 이용해서 다중 파일 복사도 가능합니다.
모두 docker와 동일합니다.
2023.01.06 - [공부합시다!/Container] - Docker: 다중 파일 복사
2022.05.27 - [공부합시다!/Container] - Docker : cp 파일 및 디렉토리 복사
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'공부합시다! > Kubernetes' 카테고리의 다른 글
Kubernetes (K8S): pull rate limit 해결 - Containerd Local Repository (0) 2023.06.22 Kubernetes (K8S): pull rate limit 해결 - Secret Base (0) 2023.03.31 Kubernetes(K8S): Helm + Prometheus + Grafana (0) 2023.01.06 Kubernetes(K8S): DaemonSet & StatefulSet (0) 2023.01.04 Kubernetes(K8S): Job & CronJob (0) 2023.01.03