들어가며
- 포트포워딩을 사용하여, kubernetes 클러스터에서 실행 중인 어플리케이션에 접근 하는 방법에 대해 알아보겠습니다.
Pod의 Port를 Forwarding하기
kubectl port-forwarding 명령어는 pod를 선택해 port forwarding하는 것을 허용합니다.
현재 mongoDB 어플리케이션이 배포되어 있습니다.
kubectl get po NAME READY STATUS RESTARTS AGE mongo-68d579f669-mczp8 1/1 Running 0 10m
mongoDB의 서비스도 배포되어 있습니다.
kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE mongo ClusterIP 10.110.21.10 <none> 27017/TCP 11m
MongoDB 서버가 Pod에서 실행 중이고 포트 27017에서 수신 대기 중인지 확인합니다.
kubectl get pod mongo-68d579f669-mczp8 --template='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}' 27017
local port를 pod의 port로 전달합니다.
kubectl port-forward mongo-68d579f669-mczp8 28015:27017 Forwarding from 127.0.0.1:28015 -> 27017 Forwarding from [::1]:28015 -> 27017 kubectl port-forward deployment/mongo 28015:27017 kubectl port-forward replicaset/mongo-mongo-68d579f669 28015:27017 kubectl port-forward service/mongo 28015:27017
kubectl port-forward 명령어는 반환되지 않으니, 다른 터미널을 열어 진행합니다.
mongoDB 명령 인터페이스를 시작합니다.
mongosh --port 28015
mongoDB 명령 프롬프트에서 호출을 시도하여 반환을 확인합니다.
db.runCommand( { ping: 1 } ) { ok: 1 }
마무리
- pod-portforward 연결을 설정하면, 로컬 워크스테이션을 사용하여 pod에서 실행 중인 어플리케이션 debug할 수 있습니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.