버전 1.9

Online Boutique 샘플 애플리케이션 배포

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

사이드카 자동 삽입 사용 설정

샘플 애플리케이션에 대해 사이드카 자동 삽입(자동 삽입)을 사용 설정하려면 버전 라벨을 샘플 네임스페이스에 추가해야 합니다. 추가하는 라벨은 Anthos Service Mesh Google 관리 제어 영역(미리보기 상태)을 배포했는지 또는 고객 관리 제어 영역을 설치했는지 여부에 따라 달라집니다. 버전 라벨은 사이드카 인젝터 웹훅에서 삽입된 사이드카를 특정 제어영역 버전과 연결하는 데 사용됩니다.

고객 관리

  1. 애플리케이션의 네임스페이스를 만듭니다.

    kubectl create namespace demo
    
  2. 다음 명령어를 사용하여 istiod에서 라벨을 찾습니다.

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

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

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

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

  3. demo 네임스페이스에 버전 라벨을 적용합니다. 다음 명령어에서 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 라벨 삭제가 포함됩니다.

Google 관리

  1. 애플리케이션의 네임스페이스를 만듭니다.

    kubectl create namespace demo
    
  2. demo 네임스페이스에 asm-managed 버전 라벨을 적용합니다.

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

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

샘플 다운로드 및 배포

이제 자동 삽입이 demo 네임스페이스에 사용 설정되었으므로, BookInfo 애플리케이션의 서비스를 배포하면 사이드카 프록시가 각 서비스와 함께 삽입됩니다.

  1. 아직 설치하지 않았다면 kpt를 설치합니다.

    gcloud components install kpt
    
  2. kpt를 사용하여 샘플을 다운로드합니다.

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/microservices-demo.git/release \
    online-boutique
    
  3. 클러스터에 샘플을 배포합니다.

    kubectl apply -n demo -f online-boutique
    
  4. frontend-external 서비스의 외부 IP 주소를 찾습니다.

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

    http://EXTERNAL_IP/
    

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

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

kubectl delete namespaces demo