[Kubernetes] Port Forwarding
Updated:
개요
- 하나 이상의 로컬 포트를 파드로 전달
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