언제 사용할까?
결론: Kubernetes Cluster가 Private네트워크로 구성된 환경에서, 개발PC에서 MicroService를 검증 할 때
- MSA on Kubernetes에서 개발자의 마이크로서비스 어플리케이션을 검증할 경우, 개발PC는 자원이 한정적이므로, 모든 마이크로서비스를 실행하고 테스트 하기 어렵습니다.
- 이때, 개발자는 개발중인 마이크로어플리케이션만을 실행하고, 다른 마이크로서비스와의 연동은 Kubernetes Cluster 개발환경의 Pod와 연결하여 검증할 수 있습니다.
- Pod를 Public서비스로 노출하여, 사용할 수도 있겠으나, 보안정책이 Kubernetes Service를 PublicIP로 노출하지 못하는 경우
개발PC에서 AKS-POD 연결
Port-Forward를 이용한 개발PC에서 AKS-POD 연결 Command
sansae@win10pro-worksp:~$ az login
sansae@win10pro-worksp:~$ az aks get-credentials --resource-group ${RESOURCE_GROUP_NAME} --name ${AKS_CLUSTER_NAME}
sansae@win10pro-worksp:~$ kubectl get pod
NAME READY STATUS RESTARTS AGE
todo-796c54bf46-snsvn 1/1 Running 0 26h
sansae@win10pro-worksp:~$ kubectl get pod todo-796c54bf46-snsvn -o yaml | grep containerPort
k:{"containerPort":8080,"protocol":"TCP"}:
f:containerPort: {}
- containerPort: 8080
sansae@win10pro-worksp:~$ kubectl port-forward todo-796c54bf46-snsvn 8888:8080
Forwarding from 127.0.0.1:8888 -> 8080
Forwarding from [::1]:8888 -> 8080
Handling connection for 8888
Handling connection for 8888
개발PC의 Browser에서 http://localhost:8888 로 호출
예) 개발PC의 마이크로서비스에서 AKS-POD 호출URL설정
개발PC에서 AKS-DEPLOYMENT연결
Port-Forward를 이용한 개발PC에서 AKS-DEPLOYMENT 연결 Command
sansae@win10pro-worksp:~$ kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
todo 1/1 1 1 28h
sansae@win10pro-worksp:~$ kubectl get deploy todo -o yaml | grep containerPort
k:{"containerPort":8080,"protocol":"TCP"}:
f:containerPort: {}
- containerPort: 8080
sansae@win10pro-worksp:~$ kubectl port-forward deployment/todo 9000:8080
Forwarding from 127.0.0.1:9000 -> 8080
Forwarding from [::1]:9000 -> 8080

