このガイドでは、Anthos Service Mesh のデモのために、Online Boutique のサンプル アプリケーションをデプロイする方法について説明します。
前提条件
このガイドでは、次の準備ができていることを前提としています。
サンプルのダウンロードとデプロイ
kpt
を使用してサンプルをダウンロードします。kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ online-boutique
アプリケーションの名前空間を作成します。
kubectl create namespace demo
自動サイドカー インジェクション(自動挿入)を有効にします。次のコマンドを使用して、
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
です。リビジョン ラベルを名前空間に適用します。次のコマンドにおいて、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
ラベルの削除が含まれています。サンプルをクラスタにデプロイします。
kubectl apply -n demo -f online-boutique
アプリケーションの外部 IP アドレスを検索します。
kubectl get service frontend-external -n demo
ブラウザでアプリケーションに移動して、インストールを確認します。
http://EXTERNAL_IP/
GKE の場合、Google Cloud コンソールで Anthos Service Mesh のオブザーバビリティ機能を確認できます。トポロジグラフがメッシュに表示されるまで、最長で 10 分かかることがあります。
確認が終わったら、Online Boutique のサンプルを削除します。
kubectl delete namespaces demo