쿠버네티스를 사용하다보면 서비스를 포트포워딩을 통해서 외부에 노출시켜야 할 경우가 많다.
하지만, 매번 kubectl port-forward 명령어를 치기도 불편하고, 가장 큰 문제는 Backgroud 실행이 아닌 foreground 실행만 지원한다는 것이다.
또한, 실행하는 것도 timeout 이슈가 발생한다.
https://stackoverflow.com/questions/47484312/kubectl-port-forwarding-timeout-issue
그래서 서비스를 위한 실행 종료하는 스크립트를 만들어 실행한다.
1. Foreground 무한 실행 스크립트
#start-forwarding.sh
#sleep 1을 추가하여 CPU사용량 줄이기
while true :
do
kubectl port-forward service/nginx2 --address 0.0.0.0 80:80
sleep 1
done
실행은 ./start-forwarding.sh
종료는 Ctrl + C
2. Background 실행 스크립트
#start-forwarding-bg.sh
nohup kubectl port-forward service/nginx2 --address 0.0.0.0 80:80 &
실행은 ./start-forwarding.sh
3. 종료 스크립트
#!/bin/sh
PID=`ps -ef | grep 'port-forward service/nginx2' | grep -v "grep" | awk '{print$2}'`
echo "kill .. $PID"
kill -9 $PID
2. 에 대한 종료만 3으로 가능하며, 1번의 실행경우 Ctrl + C로 종료해야 한다.