3.3. アプリケーションの例
Bookinfo のサンプルアプリケーションでは、OpenShift Container Platform での Red Hat OpenShift Service Mesh 1.0.10 のインストールをテストすることができます。
Red Hat では、Bookinfo アプリケーションをサポートしていません。
3.3.1. Bookinfo アプリケーション
アップストリームの Istio プロジェクトには Bookinfo というチュートリアルのサンプルがあり、これは各種の Istio 機能を示すために使用される 4 つの異なるマイクロサービスで構成されています。Bookinfo アプリケーションは、オンラインブックストアの単一カタログエントリーのように、書籍に関する情報を表示します。ページに表示される内容は、書籍の説明、書籍の詳細 (ISBN、ページ数その他の情報)、および書評です。
Bookinfo アプリケーションはこれらのマイクロサービスで構成されます。
-
productpage
マイクロサービスは、details
とreviews
マイクロサービスを呼び出して、ページを設定します。 -
details
マイクロサービスには書籍の情報が含まれています。 -
reviews
マイクロサービスには、書評が含まれます。これはratings
マイクロサービスも呼び出します。 -
ratings
マイクロサービスには、書評を伴う書籍のランキング情報が含まれます。
reviews マイクロサービスには、以下の 3 つのバージョンがあります。
-
バージョン v1 は、
ratings
サービスを呼び出しません。 -
バージョン v2 は、
ratings
サービスを呼び出して、各評価を 1 から 5 の黒い星で表示します。 -
バージョン v3 は、
ratings
サービスを呼び出して、各評価を 1 から 5 の赤い星で表示します。
3.3.2. Bookinfo アプリケーションのインストール
このチュートリアルでは、Bookinfo プロジェクトの作成、Bookinfo アプリケーションのデプロイ、および Service Mesh 1.0.10 を含む OpenShift Container Platform での Bookinfo の実行について説明します。
前提条件
- OpenShift Container Platform 4.1 以降がインストールされている。
- Red Hat OpenShift Service Mesh 1.0.10 がインストールされている。
-
oc
として知られる OpenShift Container Platform コマンドラインインターフェース (CLI) へのアクセス。
Red Hat OpenShift Service Mesh は、アップストリームの Istio プロジェクトとは別の自動挿入を実装します。そのため、この手順では Red Hat OpenShift Service Mesh の Istio サイドカーコンテナーの自動挿入を有効にするためのアノテーションが付けられた bookinfo.yaml
ファイルのバージョンを使用します。
手順
- cluster-admin 権限を持つユーザーとして OpenShift Container Platform Web コンソールにログインします。
-
Home
Projects をクリックします。 - Create Project をクリックします。
Project Name として
bookinfo
を入力し、Display Name を入力します。その後、Description を入力し、Create をクリックします。または、CLI からこのコマンドを実行して、
bookinfo
プロジェクトを作成できます。$ oc new-project bookinfo
-
Catalog
Installed Operators をクリックします。 -
Project メニューをクリックし、コントロールプレーンの namespace を使用します。この例では
istio-system
を使用します。 - Red Hat OpenShift Service Mesh Operator をクリックします。
Istio Service Mesh Member Roll リンクをクリックします。
- Istio Service Mesh Member Roll がすでに作成されている場合には、名前をクリックしてから YAML タブをクリックし、YAML エディターを開きます。
Istio Service Mesh Member Roll を作成していない場合は、Create Service Mesh Member Roll をクリックします。
注記Istio Service Mesh Member Roll を編集するには cluster-admin 権限が必要になります。
デフォルトの Service Mesh Member Roll YAML を編集し、
bookinfo
を members 一覧に追加します。apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default spec: members: - bookinfo
または、CLI からこのコマンドを実行して、
bookinfo
プロジェクトをServiceMeshMemberRoll
に追加できます。<control plane project>
をコントロールプレーンプロジェクトの名前に置き換えます。$ oc -n <control plane project> patch --type='json' smmr default -p '[{"op": "add", "path": "/spec/members", "value":["'"bookinfo"'"]}]'
- Create をクリックして、更新した Service Mesh Member Roll を保存します。
CLI で 'bookinfo' プロジェクトに Bookinfo アプリケーションをデプロイするには、
bookinfo.yaml
ファイルを適用します。$ oc apply -n bookinfo -f https://raw.githubusercontent.com/Maistra/bookinfo/maistra-1.0/bookinfo.yaml
bookinfo-gateway.yaml
ファイルを適用して Ingress ゲートウェイを作成します。$ oc apply -n bookinfo -f https://raw.githubusercontent.com/Maistra/bookinfo/maistra-1.0/bookinfo-gateway.yaml
GATEWAY_URL
パラメーターの値を設定します。注記<control_plane_project>
をコントロールプレーンプロジェクトの名前に置き換えます。$ export GATEWAY_URL=$(oc -n <control_plane_project> get route istio-ingressgateway -o jsonpath='{.spec.host}')
3.3.3. デフォルトの宛先ルールの追加
Bookinfo アプリケーションを使用するには、デフォルトの宛先ルールを追加する必要があります。相互トランスポート層セキュリティー (TLS) 認証を有効にしたかどうかによって、2 つの事前設定される YAML ファイルを使用できます。
手順
宛先ルールを追加するには、以下のいずれかのコマンドを実行します。
相互 TLS を有効にしていない場合:
$ oc apply -n bookinfo -f https://raw.githubusercontent.com/istio/istio/release-1.1/samples/bookinfo/networking/destination-rule-all.yaml
相互 TLS を有効にしている場合:
$ oc apply -n bookinfo -f https://raw.githubusercontent.com/istio/istio/release-1.1/samples/bookinfo/networking/destination-rule-all-mtls.yaml
3.3.4. Bookinfo インストールの検証
アプリケーションを設定する前に、正しくデプロイされていることを確認します。
前提条件
- OpenShift Container Platform 4.1 以降がインストールされている。
- Red Hat OpenShift Service Mesh 1.0.10 がインストールされている。
-
oc
として知られる OpenShift Container Platform コマンドラインインターフェース (CLI) へのアクセス。
手順
- OpenShift Container Platform CLI にログインします。
以下のコマンドを実行して、Bookinfo がデプロイされていることを確認します。
$ curl -o /dev/null -s -w "%{http_code}\n" http://$GATEWAY_URL/productpage
-
または、ブラウザーで
http://$GATEWAY_URL/productpage
を開くことができます。 以下のコマンドでもすべての Pod が準備状態にあることを確認できます。
$ oc get pods -n bookinfo
-
または、ブラウザーで
3.3.5. Bookinfo アプリケーションの削除
以下の手順で、Bookinfo アプリケーションを削除します。
前提条件
- OpenShift Container Platform 4.1 以降がインストールされている。
- Red Hat OpenShift Service Mesh 1.0.10 がインストールされている。
-
oc
として知られる OpenShift Container Platform コマンドラインインターフェース (CLI) へのアクセス。
3.3.5.1. Bookinfo プロジェクトの削除
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Home
Projects をクリックします。 -
bookinfo
メニューで をクリックしてから、Delete Project をクリックします。 確認ダイアログボックスに
bookinfo
と入力してから Delete をクリックします。または、CLI からこのコマンドを実行して、
bookinfo
プロジェクトを作成できます。$ oc delete project bookinfo
3.3.5.2. Service Mesh Member Roll からの Bookinfo プロジェクトの削除
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Catalog
Installed Operators をクリックします。 -
Project メニューをクリックし、一覧から
openshift-operators
を選択します。 - Red Hat OpenShift Service Mesh Operator の Provided APIS で、Istio Service Mesh Member Roll リンクをクリックします。
-
ServiceMeshMemberRoll
メニューの をクリックし、Service Mesh Member Roll を選択します。 デフォルトの Service Mesh Member Roll YAML を編集し、members 一覧から
bookinfo
を削除します。または、CLI からこのコマンドを実行して、
ServiceMeshMemberRoll
からbookinfo
プロジェクトを削除できます。<control plane project>
をコントロールプレーンプロジェクトの名前に置き換えます。$ oc -n <control plane project> patch --type='json' smmr default -p '[{"op": "remove", "path": "/spec/members", "value":["'"bookinfo"'"]}]'
- Save をクリックして、Service Mesh Member Roll を更新します。