Bookinfo 배포

이 페이지에서는 Anthos Service Mesh에 샘플 애플리케이션을 배포하는 방법을 설명합니다. Anthos Service Mesh를 설치하지 않은 경우 설치 가이드 섹션을 참조하여 적합한 가이드를 선택하세요.

Anthos Service Mesh와 함께 몇 가지 샘플 애플리케이션이 설치됩니다. 이 가이드에서는 BookInfo 샘플을 배포하는 과정을 안내합니다. 모두 Anthos Service Mesh를 사용하여 관리되는 웹 제품 페이지, 도서 세부정보, 리뷰(여러 버전의 리뷰 서비스 사용), 평점을 제공하는 4가지 서비스로 구성된 간단한 샘플 Bookstore 애플리케이션입니다. 이 예시에서 사용된 소스 코드 및 다른 모든 파일은 samples/bookinfo의 Anthos Service Mesh 설치 디렉터리에서 찾을 수 있습니다.

애플리케이션 배포

다음 단계를 따라 각 서비스와 함께 사이드카 프록시가 삽입된 BookInfo 애플리케이션 서비스를 배포합니다.

  1. Anthos Service Mesh가 설치된 컴퓨터의 명령줄에서 Anthos Service Mesh 설치 디렉터리의 루트로 이동합니다.

  2. istio-injection=enabled를 사용하여 애플리케이션을 호스팅할 네임스페이스에 라벨을 지정합니다.

    kubectl label namespace default istio-injection=enabled
  3. kubectl을 사용하여 애플리케이션을 배포합니다.

    kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
  4. 다음 명령어를 실행하여 애플리케이션이 올바르게 배포되었는지 확인합니다.

    kubectl get services
    출력:
    NAME                       CLUSTER-IP   EXTERNAL-IP   PORT(S)              AGE
    details                    10.0.0.31    <none>        9080/TCP             6m
    kubernetes                 10.0.0.1     <none>        443/TCP              7d
    productpage                10.0.0.120   <none>        9080/TCP             6m
    ratings                    10.0.0.15    <none>        9080/TCP             6m
    reviews                    10.0.0.170   <none>        9080/TCP             6m

    kubectl get pod
    출력:
    NAME                                        READY     STATUS    RESTARTS   AGE
    details-v1-1520924117-48z17                 2/2       Running   0          6m
    productpage-v1-560495357-jk1lz              2/2       Running   0          6m
    ratings-v1-734492171-rnr5l                  2/2       Running   0          6m
    reviews-v1-874083890-f0qf0                  2/2       Running   0          6m
    reviews-v2-1343845940-b34q5                 2/2       Running   0          6m
    reviews-v3-1813607990-8ch52                 2/2       Running   0          6m
  5. 마지막으로 애플리케이션에 대해 인그레스 게이트웨이 라우팅을 정의합니다.

    kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
    

애플리케이션 배포 검증

BookInfo 애플리케이션이 작동하는지 확인하려면 인그레스 게이트웨이로 트래픽을 보내야 합니다.

  • VMware용 GKE에 Anthos Service Mesh를 설치한 경우 Anthos Service Mesh를 설치한 후에 구성한 인그레스 게이트웨이의 외부 IP 주소를 가져옵니다.

  • GKE에 Anthos Service Mesh를 설치한 경우 다음과 같이 인그레스 게이트웨이의 외부 IP 주소를 가져옵니다.

    kubectl get svc istio-ingressgateway -n istio-system
    
    출력:
    NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                                      AGE
    istio-ingressgateway   LoadBalancer   10.19.247.233   35.239.7.64   80:31380/TCP,443:31390/TCP,31400:31400/TCP   27m

    이 예시에서 인그레스 서비스의 IP 주소는 35.239.7.64입니다.

애플리케이션 시험 사용

  1. curl을 사용하여 BookInfo 앱이 실행되는지 확인합니다.

    curl -I http://EXTERNAL_IP/productpage

    응답에 200이 표시되면 애플리케이션이 Anthos Service Mesh와 함께 올바르게 작동되고 있음을 나타냅니다.

  2. BookInfo 웹페이지를 보려면 브라우저에 다음 주소를 입력합니다.

    http://EXTERNAL_IP/productpage

    페이지를 여러 번 새로고침하면 여러 버전의 리뷰가 제품 페이지에 라운드 로빈 스타일로 표시됩니다(빨간색 별, 검은색 별, 별 없음).

이제 트래픽을 생성하는 애플리케이션이 있으므로 Google Cloud console에서 Anthos Service Mesh 페이지를 탐색하여 측정항목과 기타 관측 가능성 기능을 확인할 수 있습니다.

다음 단계

Bookinfo 샘플 자세히 알아보기

삭제

Bookinfo 샘플의 실험이 끝나면 클러스터에서 삭제합니다.

  1. 다음 스크립트를 사용하여 Bookinfo를 제거합니다.

    samples/bookinfo/platform/kube/cleanup.sh
  2. 종료를 확인합니다.

    kubectl get services
    kubectl get pods

    Bookinfo Pod를 삭제해야 합니다.