Anthos Service Mesh への Online Boutique のサンプル アプリケーションのデプロイ

このガイドでは、Anthos Service Mesh のデモのために、Online Boutique のサンプル アプリケーションをデプロイする方法について説明します。

前提条件

このガイドでは、次の準備ができていることを前提としています。

サンプルのダウンロードとデプロイ

  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