Cloud Native/K8s

k8s 실전: 파일 및 네트워크 조작과 운영

lys4321 2026. 2. 24. 00:44

kubectl cp <출발지> <도착지> [옵션]

  • 로컬과 Pod(내 컨테이너) 같에 파일과 디렉토리를 복사하는 명령어
  • 이 명령어는 tar 파일을 STDIN, STDOUT 방식으로 이동을 시키는 명령어
  • 로컬에서 Pod로 복사 시
    • 로컬경로 Pod:경로 순서
  • Pod에서 로컬로 복사 시
    • Pod:경로 로컬경로 순서
  • 내부 동작 예시
    • 클라이언트에서 tar 파일을 생성
    • kubectl exex 로 컨테이너 안에서 tar xf - 실행
    • STDIN으로 데이터를 전달
    • 파일이 복사 됨
      => 컨테이너에 tar 명령어를 실행해야 하므로 설지가 되어야 함
      또한 RBAC 권한과 exec API 가 허용이 되어야 함
  • Pod에 지정을 하려면 [네임스페이스] Pod명:경로로 입력
  • 주로 사용되는 목록
    • --container
      • 컨테이너 지정
    • --no-preserve
      • 기본값은 false이며 이때는 보존
      • 파일권한이나 owner preserve 보존 여부를 설정
    • --retries
      • 재시도 횟수 설정

kubectl proxy [옵션]

  • 로컬머신에서 k8s API 서버로 안전하게 접근할 수 있도록 프록시 서버를 만드는 명령어
  • 인증/권한은 은 현재 kubectl context(계정)의 인증정보를 사용
  • kubectl proxy sms API 서버의 프록시 게이트웨이
    • 보통 개발환경에서 사용
  • 주로 사용되는 옵션
    • --accept-hosts
      • 허용할 host를 regex로 지정
      • 기본값은 localhost만 허용
      • 외부 IP는 기본적으로 막힘(보안을 위하여)
    • --accept-paths
      • 적용할 path를 regrex로 지정
    • --reject-paths
      • XSS/XSRF 위험 방지를 위해 exex/attach 관련 API는 막아둔 상태
      • 특정 path를 막는다
    • --reject-methods
      • HTTP 메소드를 막기 위해 사용
    • --address
      • proxy를 어디 IP 로 열지 설정하는 곳
      • 기본은 localhost이며 이 상태에선 외부에서 접근 불가
      • 외부 접근을 허용하려 할 시엔, IP주소 입력
        • 근데 이거는 절대 하면 안됨
    • api-prefix
      • proxy가 API를 제공하는 루트 경로
    • --www, --www-prefix
      • 정적 파일을 서빙하는 옵션
    • keepalive
      • 연결지속 시간 설정
      • 기본은 disabled
    • --disabled-filter
      • 요청 필터링(보안)을 관리함
      • false 시 비활성화
      • true 시, XSRF 공격에 노출
    • --port
      • 기본 포트 설정
    • --unix-socket
      • 소켓 파일로 접근 가능
      • HTTP 대신 소켓 통신 사용 시 해당 옵션 사용