Updated:

1 minute read

개요

  • 하나 이상의 로컬 포트를 파드로 전달
  • kubectl port-forward를 이용
  • usage
    • kubectl port-forward TYPE/NAME [options] [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N]
    • options
      • --address=[localhost]
        • 수신 대기할 주소(쉼표로 구분)
      • --pod-running-timeout=1m0s
        • 하나 이상의 파드가 실행될 때까지 대기하는 시간
  • 기준과 일치하는 파드가 여러 개 있는 경우 파드가 자동으로 선택
  • 선택한 파드가 종료되면 세션이 종료


예시

  • 로컬에서 포트 5000에서 수신 대기하고 파드의 포트 5000으로 전달
    • kubectl port-forward pod/mypod 5000
  • 로컬에서 포트 6000에서 수신 대기하고 파드의 포트 5000으로 전달
    • kubectl port-forward pod/mypod 6000:5000
  • 로컬에서 포트 5000 및 6000에서 수신 대기하고 파드의 포트 5000 및 6000으로 전달
    • kubectl port-forward pod/mypod 5000 6000
  • 로컬에서 포트 5000에서 수신 대기하고 deployment에서 선택한 파드의 포트 5000으로 전달
    • kubectl port-forward deployment/mydeployment 5000
  • 로컬에서 포트 6000에서 수신 대기하고 service에서 선택한 파드에서 “tls-webhook”이라는 service 포트의 targetPort로 전달
    • kubectl port-forward service/myservice 6000:tls-webhook
    • 이름(tls-webhook) 대신 포트 번호를 직접 주어도 되지만 포트는 얼마든지 변경이 가능하므로 이름을 사용하는 것을 권장
    • 이름이 변경되는 것은 의미가 달라지는 것이므로 새로 설정
         # kubectl get svc istio-eastwestgateway -n istio-system -o yaml
         ...
           - name: tls-webhook
             nodePort: 32670
             port: 15017
             protocol: TCP
             targetPort: 15017
         ...
              
         # kubectl port-forward service/istio-eastwestgateway -n istio-system --address=0.0.0.0 6000:tls-istiod
         Forwarding from 0.0.0.0:6000 -> 15012
      
  • 모든 주소의 포트 6000에서 수신 대기하고 파드의 포트 5000으로 전달
    • kubectl port-forward --address 0.0.0.0 pod/mypod 6000:5000
  • localhost 및 선택된 IP의 포트 6000에서 수신 대기하고 파드의 포트 5000으로 전달
    • kubectl port-forward --address localhost,10.19.21.23 pod/mypod 6000:5000
  • 로컬에서 임의의 포트에서 수신 대기하고 파드의 포트 5000으로 전달
    • kubectl port-forward pod/mypod :5000