언제 사용할까?
결론: Kubernetes Cluster가 Private네트워크로 구성된 환경에서, 개발PC에서 MicroService를 검증 할 때
- MSA on Kubernetes에서 개발자의 마이크로서비스 어플리케이션을 검증할 경우, 개발PC는 자원이 한정적이므로, 모든 마이크로서비스를 실행하고 테스트 하기 어렵습니다.
- 이때, 개발자는 개발중인 마이크로어플리케이션만을 실행하고, 다른 마이크로서비스와의 연동은 Kubernetes Cluster 개발환경의 Pod와 연결하여 검증할 수 있습니다.
- Pod를 서비스로 노출하여, 사용할 수도 있겠으나, 보안정책이 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