Anthos Service Mesh에 Online Boutique 샘플 애플리케이션 배포

이 가이드에서는 Anthos Boutique 샘플 애플리케이션을 설치하여 Anthos Service Mesh를 보여주는 방법을 설명합니다.

기본 요건

이 가이드에서는 다음 작업을 이미 완료했다고 가정합니다.

샘플 다운로드 및 배포

  1. kpt를 사용하여 샘플을 다운로드합니다.

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/microservices-demo.git/release \
    online-boutique
    
  2. 애플리케이션의 네임스페이스를 만듭니다.

    kubectl create namespace demo
    
  3. 자동 사이드카 삽입을 사용 설정합니다(자동 삽입). 다음 명령어를 사용하여 istiod 서비스에서 이후 단계에 사용할 버전 라벨 값을 포함하는 라벨을 찾습니다.

    kubectl -n istio-system get pods -l app=istiod --show-labels
    

    출력은 다음과 유사합니다.

    NAME                                READY   STATUS    RESTARTS   AGE   LABELS
    istiod-asm-186-8-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-186-8,istio=istiod,pod-template-hash=5788d57586
    istiod-asm-186-8-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-186-8,istio=istiod,pod-template-hash=5788d57586

    출력의 LABELS 열 아래에서 istio.io/rev= 프리픽스 다음에 있는 istiod 버전 라벨의 값을 확인합니다. 이 예시에서 값은 asm-186-8입니다.

  4. 네임스페이스에 버전 라벨을 적용합니다. 다음 명령어에서 REVISION은 이전 단계에서 확인한 istiod 버전 라벨의 값입니다.

    kubectl label namespace demo istio-injection- istio.io/rev=REVISION --overwrite
    

    출력에서 "istio-injection not found" 메시지는 무시해도 됩니다. 즉, 네임스페이스에 이전에 istio-injection 라벨이 사용되지 않았으며, Anthos Service Mesh를 새로 설치하거나 새로 배포해야 합니다. 네임스페이스에 istio-injection 및 버전 라벨이 모두 포함된 경우 자동 삽입이 실패하기 때문에 Anthos Service Mesh 문서에서 모든 kubectl label 명령어에는 istio-injection 라벨 삭제가 포함됩니다.

  5. 클러스터에 샘플을 배포합니다.

    kubectl apply -n demo -f online-boutique
    
  6. 애플리케이션의 외부 IP 주소를 찾습니다.

    kubectl get service frontend-external -n demo
    
  7. 브라우저에서 애플리케이션을 방문하여 설치를 확인합니다.

    http://EXTERNAL_IP/
    

GKE의 경우 Google Cloud 콘솔에서 Anthos Service Mesh 관측 가능성 기능을 탐색할 수 있습니다. 토폴로지 그래프가 메시에 서비스를 표시하는 데 최대 10분이 걸릴 수 있습니다.

탐색이 완료되면 Online Boutique 샘플을 삭제합니다.

kubectl delete namespaces demo