샘플 애플리케이션 배포하기
샘플 애플리케이션 배포하기 (Deploy a sample application)
Istio를 탐색하기 위해, 다양한 Istio 기능을 시연하는 데 사용되는 네 개의 개별 마이크로서비스로 구성된 샘플 Bookinfo 애플리케이션을 설치할 거예요.
출처: Istio 문서
본문
이 가이드의 일부로, Bookinfo 애플리케이션을 배포하고 인그레스 게이트웨이를 사용해 productpage 서비스를 노출할 거예요.
Bookinfo 애플리케이션 배포하기 (Deploy the Bookinfo application)
애플리케이션 배포부터 시작하세요:
$ kubectl apply -f @samples/bookinfo/platform/kube/bookinfo.yaml@
$ kubectl apply -f @samples/bookinfo/platform/kube/bookinfo-versions.yaml@
애플리케이션이 실행 중인지 확인하려면 파드의 상태를 확인하세요:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
details-v1-cf74bb974-nw94k 1/1 Running 0 42s
productpage-v1-87d54dd59-wl7qf 1/1 Running 0 42s
ratings-v1-7c4bbf97db-rwkw5 1/1 Running 0 42s
reviews-v1-5fd6d4f8f8-66j45 1/1 Running 0 42s
reviews-v2-6f9b55c5db-6ts96 1/1 Running 0 42s
reviews-v3-7d99fd7978-dm6mx 1/1 Running 0 42s
클러스터 밖에서 productpage 서비스에 접근하려면 인그레스 게이트웨이를 구성해야 해요.
인그레스 게이트웨이 배포·구성하기 (Deploy and configure the ingress gateway)
쿠버네티스 Gateway API를 사용해 bookinfo-gateway라는 게이트웨이를 배포할 거예요:
$ kubectl apply -f @samples/bookinfo/gateway-api/bookinfo-gateway.yaml@
기본적으로 Istio는 게이트웨이에 LoadBalancer 서비스를 만들어요. 터널로 이 게이트웨이에 접근할 것이므로 로드 밸런서는 필요 없어요. 게이트웨이에 어노테이션을 붙여 서비스 타입을 ClusterIP로 바꾸세요:
$ kubectl annotate gateway bookinfo-gateway networking.istio.io/service-type=ClusterIP --namespace=default
게이트웨이의 상태를 확인하려면 다음을 실행하세요:
$ kubectl get gateway
NAME CLASS ADDRESS PROGRAMMED AGE
bookinfo-gateway istio bookinfo-gateway-istio.default.svc.cluster.local True 42s
계속하기 전에 게이트웨이가 programmed로 표시될 때까지 기다리세요.
애플리케이션 접근하기 (Access the application)
방금 준비한 게이트웨이를 통해 Bookinfo productpage 서비스에 연결할 거예요. 게이트웨이에 접근하려면 kubectl port-forward 명령을 사용해야 해요:
$ kubectl port-forward svc/bookinfo-gateway-istio 8080:80
브라우저를 열고 http://localhost:8080/productpage로 이동해 Bookinfo 애플리케이션을 확인하세요.
페이지를 새로고침하면, 요청이 reviews 서비스의 서로 다른 버전들에 분산되면서 책 평점 표시가 바뀌는 것을 볼 수 있어요.
다음 단계 (Next steps)
애플리케이션을 메시에 추가하고 애플리케이션 간 통신을 보호하고 시각화하는 방법을 배우려면 다음 섹션으로 계속하세요.