[Kubernetes] Kubernetes에서 Pod 간 직접 데이터 전송하는 방법

2025. 4. 5. 23:22·개발 (Development)/Kubernetes

Kubernetes에서 Pod 간에 데이터를 옮기는 가장 일반적인 방법은 공유 볼륨(PVC)을 사용하는 것입니다. 하지만 상황에 따라 중간 저장 없이 Pod에서 다른 Pod로 직접 데이터를 옮겨야 할 때도 있습니다. 이번 글에서는 같은 네임스페이스 내 Pod끼리 직접 데이터를 주고받는 실용적인 방법들을 소개합니다.

1. kubectl cp는 실제로는 "직접"이 아니다

많이 알려진 kubectl cp는 다음과 같은 방식으로 사용됩니다.

kubectl cp pod-a:/app/data/file.txt ./file.txt
kubectl cp ./file.txt pod-b:/app/data/

하지만 이 방식은 실제로는 로컬 PC를 거칩니다. 즉, Pod A → 로컬 → Pod B의 흐름이기 때문에 '직접' 옮긴다고 보기 어렵고, 자동화나 실시간 처리에도 적합하지 않습니다.

2. 진짜 직접 전송하려면? 네트워크를 활용하자

같은 네임스페이스에 있는 Pod들은 기본적으로 서로 DNS로 통신이 가능합니다. 이를 활용하면 한 Pod에서 다른 Pod로 HTTP, scp, curl 등을 통해 데이터를 직접 전송할 수 있습니다.

방법 1. Python HTTP 서버 + curl로 파일 전송

가장 간단하면서도 실용적인 방법입니다.

Pod B에서 Python HTTP 서버 열기

Pod B에 접속해서 다음 명령어를 실행합니다.

python3 -m http.server 8080 --directory /data

이렇게 하면 /data 디렉토리에 대해 HTTP 파일 서버가 열립니다.

Pod A에서 파일 전송

Pod A에 접속해서 curl 명령어로 파일을 전송합니다.

curl -T /path/to/file.txt http://pod-b:8080/file.txt

여기서 pod-b는 Pod B의 이름이거나, 서비스 이름을 사용할 수도 있습니다.

방법 2. SSH 서버 + scp 명령어

Pod B에 SSH 서버가 설치되어 있다면 scp 명령어로도 전송이 가능합니다.

scp file.txt user@pod-b:/data/

다만 Kubernetes 환경에서 SSH를 설정하는 것은 번거롭고 보안 관리도 필요하기 때문에 일반적으로는 잘 사용되지 않습니다.

방법 3. 파일 업로드 API (Flask 등)

Pod B에 Flask나 Express 같은 간단한 웹 서버를 띄워서 파일 업로드 API를 제공하고, Pod A에서 curl -F를 사용해 전송하는 방식도 가능합니다.

curl -X POST -F "file=@file.txt" http://pod-b:8080/upload

이 방식은 조금 더 유연하고 복잡한 처리가 필요할 때 유용합니다.

결론

Pod 간 데이터를 직접 옮기는 방법은 생각보다 간단하지만, 전송 대상 Pod에 HTTP 서버든 SSH든 어떤 방식이든 수신할 준비가 되어 있어야 합니다. 실무에서는 보통 아래와 같은 기준으로 방법을 선택하면 좋습니다.

상황 추천 방법
일회성 복사 kubectl cp (단, 로컬 거침)
빠르게 직접 전송하고 싶음 Python HTTP 서버 + curl
보안 필요 or 인증된 전송 scp (SSH 설정 필요)
API 기반 처리 원할 때 Flask 등으로 업로드 서버 구성
반응형

'개발 (Development) > Kubernetes' 카테고리의 다른 글

[Kubernetes] Kubernetes에서 컨테이너와 파드는 무엇이 다를까?  (0) 2025.07.13
[Kubernetes] Kubernetes Pod 간 Connection reset 오류, 원인과 해결 방법  (2) 2025.07.13
[Kubernetes] Kubernetes 클러스터 구조 확인 방법  (0) 2025.04.06
'개발 (Development)/Kubernetes' 카테고리의 다른 글
  • [Kubernetes] Kubernetes에서 컨테이너와 파드는 무엇이 다를까?
  • [Kubernetes] Kubernetes Pod 간 Connection reset 오류, 원인과 해결 방법
  • [Kubernetes] Kubernetes 클러스터 구조 확인 방법
LoopThinker
LoopThinker
모르는 것을 알아가고, 아는 것을 더 깊게 파고드는 공간
  • LoopThinker
    CodeMemoir
    LoopThinker
  • 전체
    오늘
    어제
    • 분류 전체보기 (235) N
      • 개발 (Development) (168) N
        • Algorithm (1)
        • Angular (1)
        • AWS (7)
        • DeepSeek (2)
        • Docker (7)
        • Git (3)
        • Java (34)
        • JavaScript (4)
        • Kafka (5)
        • Kubernetes (4)
        • Linux (7)
        • PostgreSQL (38)
        • Python (33) N
        • React (3)
        • TypeScript (3)
        • Vue.js (5)
        • General (11)
      • 데이터 분석 (Data Analysis) (1)
      • 알고리즘 문제 풀이 (Problem Solving.. (27)
      • 자격증 (Certifications) (24)
        • ADsP (14)
        • 정보처리기사 (4)
        • Linux Master (5)
        • SQLD (1)
      • 기술 동향 (Tech Trends) (12)
      • 기타 (Others) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    리눅스 마스터 2급 2차
    자바
    Vue.js
    오답노트
    Kafka
    ADsP
    deepseek
    백준자바
    리눅스 마스터 2급
    Linux master
    JPA
    JSON
    데이터분석
    PostgreSQL
    Kubernetes
    javascript
    pandas
    백준알고리즘
    docker
    Linux
    java
    백준
    DevOps
    MyBatis
    파이썬
    백준온라인저지
    python
    springboot
    timescaledb
    AWS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LoopThinker
[Kubernetes] Kubernetes에서 Pod 간 직접 데이터 전송하는 방법
상단으로

티스토리툴바