アプリケーションのデプロイ
Istioを調査するには、さまざまなIstio機能を示すために使用される4つの独立したマイクロサービスで構成されたサンプルBookinfoアプリケーションをインストールします。
このガイドでは、Bookinfoアプリケーションをデプロイし、イングレスゲートウェイを使用してproductpage
サービスを公開します。
Bookinfoアプリケーションのデプロイ
アプリケーションのデプロイから始めます。
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/platform/kube/bookinfo.yaml
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/platform/kube/bookinfo-versions.yaml
アプリケーションが実行されていることを確認するには、ポッドのステータスを確認します。
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
details-v1-cf74bb974-nw94k 1/1 Running 0 42s
productpage-v1-87d54dd59-wl7qf 1/1 Running 0 42s
ratings-v1-7c4bbf97db-rwkw5 1/1 Running 0 42s
reviews-v1-5fd6d4f8f8-66j45 1/1 Running 0 42s
reviews-v2-6f9b55c5db-6ts96 1/1 Running 0 42s
reviews-v3-7d99fd7978-dm6mx 1/1 Running 0 42s
クラスタの外からproductpage
サービスにアクセスするには、イングレスゲートウェイを設定する必要があります。
イングレスゲートウェイのデプロイと設定
Kubernetes Gateway APIを使用して、bookinfo-gateway
というゲートウェイをデプロイします。
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/gateway-api/bookinfo-gateway.yaml
デフォルトでは、IstioはゲートウェイにLoadBalancer
サービスを作成します。このゲートウェイにはトンネル経由でアクセスするため、ロードバランサーは必要ありません。ゲートウェイにアノテーションを付けることで、サービスの種類をClusterIP
に変更してください。
$ kubectl annotate gateway bookinfo-gateway networking.istio.io/service-type=ClusterIP --namespace=default
ゲートウェイのステータスを確認するには、以下のコマンドを実行します。
$ kubectl get gateway
NAME CLASS ADDRESS PROGRAMMED AGE
bookinfo-gateway istio bookinfo-gateway-istio.default.svc.cluster.local True 42s
アプリケーションへのアクセス
先ほどプロビジョニングしたゲートウェイを通じて、Bookinfoのproductpage
サービスに接続します。ゲートウェイにアクセスするには、kubectl port-forward
コマンドを使用する必要があります。
$ kubectl port-forward svc/bookinfo-gateway-istio 8080:80
ブラウザを開き、https://#:8080/productpage
に移動して、Bookinfoアプリケーションを表示します。
ページを更新すると、リクエストがreviews
サービスの異なるバージョンに分散されるため、本のレビューと評価が変化していることがわかります。
次のステップ
次のセクションへ進むと、アプリケーションをメッシュに追加し、アプリケーション間の通信を保護および可視化する方法を学習できます。