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
$ oc new-project bookinfoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
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 一覧に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、CLI からこのコマンドを実行して、
bookinfoプロジェクトをServiceMeshMemberRollに追加できます。<control plane project>をコントロールプレーンプロジェクトの名前に置き換えます。oc -n <control plane project> patch --type='json' smmr default -p '[{"op": "add", "path": "/spec/members", "value":["'"bookinfo"'"]}]'$ oc -n <control plane project> patch --type='json' smmr default -p '[{"op": "add", "path": "/spec/members", "value":["'"bookinfo"'"]}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 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
$ oc apply -n bookinfo -f https://raw.githubusercontent.com/Maistra/bookinfo/maistra-1.0/bookinfo.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow bookinfo-gateway.yamlファイルを適用して Ingress ゲートウェイを作成します。oc apply -n bookinfo -f https://raw.githubusercontent.com/Maistra/bookinfo/maistra-1.0/bookinfo-gateway.yaml
$ oc apply -n bookinfo -f https://raw.githubusercontent.com/Maistra/bookinfo/maistra-1.0/bookinfo-gateway.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow GATEWAY_URLパラメーターの値を設定します。注記<control_plane_project>をコントロールプレーンプロジェクトの名前に置き換えます。export GATEWAY_URL=$(oc -n <control_plane_project> get route istio-ingressgateway -o jsonpath='{.spec.host}')$ export GATEWAY_URL=$(oc -n <control_plane_project> get route istio-ingressgateway -o jsonpath='{.spec.host}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
$ oc apply -n bookinfo -f https://raw.githubusercontent.com/istio/istio/release-1.1/samples/bookinfo/networking/destination-rule-all.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 相互 TLS を有効にしている場合:
oc apply -n bookinfo -f https://raw.githubusercontent.com/istio/istio/release-1.1/samples/bookinfo/networking/destination-rule-all-mtls.yaml
$ oc apply -n bookinfo -f https://raw.githubusercontent.com/istio/istio/release-1.1/samples/bookinfo/networking/destination-rule-all-mtls.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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$ curl -o /dev/null -s -w "%{http_code}\n" http://$GATEWAY_URL/productpageCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
または、ブラウザーで
http://$GATEWAY_URL/productpageを開くことができます。 以下のコマンドでもすべての Pod が準備状態にあることを確認できます。
oc get pods -n bookinfo
$ oc get pods -n bookinfoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
または、ブラウザーで
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
$ oc delete project bookinfoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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"'"]}]'$ oc -n <control plane project> patch --type='json' smmr default -p '[{"op": "remove", "path": "/spec/members", "value":["'"bookinfo"'"]}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Save をクリックして、Service Mesh Member Roll を更新します。