1.9. サービスメッシュへのサービスの追加
プロジェクトにはサービスが含まれますが、そのプロジェクトを Service Mesh に追加していなければサービスは使用できません。
1.9.1. Service Mesh へのプロジェクトの追加
Operator をインストールして ServiceMeshControlPlane リソースを作成した後、1 つ以上のプロジェクトを Service Mesh に追加します。
基本的に、OpenShift Container Platform でのプロジェクトとは、プロジェクトで使用できるユーザー ID 範囲などの追加のアノテーションを持つ Kubernetes namespace です。通常、OpenShift Container Platform Web コンソールではプロジェクトという用語が使用され、CLI では namespace という用語が使用されますが、この 2 つの用語は基本的に同義です。
OpenShift Container Platform Web コンソールまたは CLI のいずれかを使用して、既存の Service Mesh にプロジェクトを追加できます。プロジェクトをサービスメッシュに追加するには、次の 3 つの方法があります。
-
ServiceMeshMemberRollリソースでプロジェクト名を指定する方法。 -
ServiceMeshMemberRollリソースのspec.labelSelectorsフィールドでラベルセレクターを設定します。 -
プロジェクトで
ServiceMeshMemberリソースを作成する方法。
最初の方法を使用する場合は、ServiceMeshMemberRoll リソースを作成する必要があります。
1.9.2. Red Hat OpenShift Service Mesh メンバーロールの作成
ServiceMeshMemberRoll は、Service Mesh コントロールプレーンに属するプロジェクトを一覧表示します。ServiceMeshMemberRoll に一覧表示されているプロジェクトのみがコントロールプレーンの影響を受けます。プロジェクトは、特定のコントロールプレーンのデプロイメント用にメンバーロールに追加するまでサービスメッシュに属しません。
istio-system など、ServiceMeshControlPlane と同じプロジェクトに、 default という名前の ServiceMeshMemberRoll リソースを作成する必要があります。
1.9.2.1. Web コンソールからのメンバーロールの作成
Web コンソールを使用して 1 つ以上のプロジェクトを Service Mesh メンバーロールに追加します。この例では、istio-system が Service Mesh コントロールプレーンプロジェクトの名前となります。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
- サービスメッシュに追加する既存プロジェクトの一覧。
手順
- OpenShift Container Platform Web コンソールにログインします。
メッシュのサービスがない場合や、ゼロから作業を開始する場合は、アプリケーションのプロジェクトを作成します。これは、Service Mesh コントロールプレーンをインストールしたプロジェクトとは異なる必要があります。
- Home → Projects に移動します。
- Name フィールドに名前を入力します。
- Create をクリックします。
- Operators → Installed Operators に移動します。
-
Project メニューをクリックし、一覧から
ServiceMeshControlPlaneリソースがデプロイされているプロジェクト (例:istio-system) を選択します。 - Red Hat OpenShift Service Mesh Operator をクリックします。
- Istio Service Mesh Member Roll タブをクリックします。
- Create ServiceMeshMemberRoll をクリックします。
-
Members をクリックし、Value フィールドにプロジェクトの名前を入力します。任意の数のプロジェクトを追加できますが、プロジェクトは 単一 の
ServiceMeshMemberRollリソースしか属することができません。 - Create をクリックします。
1.9.2.2. CLI からのメンバーロールの作成
コマンドラインからプロジェクトを ServiceMeshMemberRoll に追加します。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
- サービスメッシュに追加するプロジェクトの一覧。
-
OpenShift CLI (
oc) へのアクセスがある。
手順
OpenShift Container Platform CLI にログインします。
$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
メッシュのサービスがない場合や、ゼロから作業を開始する場合は、アプリケーションのプロジェクトを作成します。これは、Service Mesh コントロールプレーンをインストールしたプロジェクトとは異なる必要があります。
$ oc new-project <your-project>
プロジェクトをメンバーとして追加するには、以下の YAML の例を変更します。任意の数のプロジェクトを追加できますが、プロジェクトは 単一 の
ServiceMeshMemberRollリソースしか属することができません。この例では、istio-systemが Service Mesh コントロールプレーンプロジェクトの名前となります。servicemeshmemberroll-default.yaml の例
apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system spec: members: # a list of projects joined into the service mesh - your-project-name - another-project-name以下のコマンドを実行して、
istio-systemnamespace にServiceMeshMemberRollリソースをアップロードおよび作成します。$ oc create -n istio-system -f servicemeshmemberroll-default.yaml
以下のコマンドを実行して、
ServiceMeshMemberRollが正常に作成されていることを確認します。$ oc get smmr -n istio-system default
STATUS列がConfiguredの場合、インストールは正常に終了しています。
1.9.3. ServiceMeshMemberRoll リソースを使用したプロジェクトの追加について
ServiceMeshMemberRoll リソースを使用するのが、プロジェクトをサービスメッシュに追加する最も簡単な方法です。プロジェクトを追加するには、ServiceMeshMemberRoll リソースの spec.members フィールドにプロジェクト名を指定します。ServiceMeshMemberRoll リソースは、ServiceMeshControlPlane リソースによって制御されるプロジェクトを指定します。

この方法を使用してプロジェクトを追加するには、追加するプロジェクトの servicemeshmemberrolls 権限と update pods 権限をユーザーが持っている必要があります。
サービスメッシュに追加するアプリケーション、ワークロード、またはサービスがすでにある場合は、次を参照してください。
-
Web コンソールで
ServiceMeshMemberRollリソースを使用してメッシュにプロジェクトを追加または削除する -
CLI で
ServiceMeshMemberRollリソースを使用してメッシュにプロジェクトを追加または削除する
-
Web コンソールで
-
あるいは、Bookinfo というサンプルアプリケーションをインストールして
ServiceMeshMemberRollリソースに追加するには、Bookinfo サンプルアプリケーションのチュートリアルを参照してください。
1.9.3.1. Web コンソールで ServiceMeshMemberRoll リソースを使用してメッシュにプロジェクトを追加または削除する
OpenShift Container Platform Web コンソールで ServiceMeshMemberRoll リソースを使用して、メッシュにプロジェクトを追加または削除できます。プロジェクトはいくつでも追加できますが、プロジェクトは 1 つの メッシュにのみ属することができます。
ServiceMeshMemberRoll リソースは、対応する ServiceMeshControlPlane リソースが削除されると削除されます。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
-
既存の
ServiceMeshMemberRollリソース。 -
ServiceMeshMemberRollリソースを持つプロジェクトの名前。 - メッシュに追加する、またはメッシュから削除するプロジェクトの名前。
手順
- OpenShift Container Platform Web コンソールにログインします。
- Operators → Installed Operators に移動します。
-
Project メニューをクリックし、リストから
ServiceMeshControlPlaneリソースがデプロイされているプロジェクトを選択します。たとえば、istio-systemです。 - Red Hat OpenShift Service Mesh Operator をクリックします。
- Istio Service Mesh Member Roll タブをクリックします。
-
defaultリンクをクリックします。 - YAML タブをクリックします。
YAML を変更してプロジェクトをメンバーとして追加します (またはプロジェクトを削除して既存メンバーを削除します)。任意の数のプロジェクトを追加できますが、プロジェクトは 単一 の
ServiceMeshMemberRollリソースしか属することができません。servicemeshmemberroll-default.yaml の例
apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system #control plane project spec: members: # a list of projects joined into the service mesh - your-project-name - another-project-name- Save をクリックします。
- Reload をクリックします。
1.9.3.2. CLI で ServiceMeshMemberRoll リソースを使用してメッシュにプロジェクトを追加または削除する
CLI で ServiceMeshMemberRoll リソースを使用して、1 つ以上のプロジェクトをメッシュに追加できます。プロジェクトはいくつでも追加できますが、プロジェクトは 1 つの メッシュにのみ属することができます。
ServiceMeshMemberRoll リソースは、対応する ServiceMeshControlPlane リソースが削除されると削除されます。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
-
既存の
ServiceMeshMemberRollリソース。 -
ServiceMeshMemberRollリソースを持つプロジェクトの名前。 - メッシュに追加する、またはメッシュから削除するプロジェクトの名前。
-
OpenShift CLI (
oc) へのアクセスがある。
手順
- OpenShift Container Platform CLI にログインします。
ServiceMeshMemberRollリソースを編集します。$ oc edit smmr -n <controlplane-namespace>
YAML を変更して、プロジェクトをメンバーとして追加または削除します。任意の数のプロジェクトを追加できますが、プロジェクトは 単一 の
ServiceMeshMemberRollリソースしか属することができません。servicemeshmemberroll-default.yaml の例
apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system #control plane project spec: members: # a list of projects joined into the service mesh - your-project-name - another-project-name- ファイルを保存して、エディターを終了します。
1.9.4. ServiceMeshMember リソースを使用したプロジェクトの追加について
ServiceMeshMember リソースを使用すると、ServiceMeshMemberRoll リソースを変更せずにプロジェクトを Service Mesh に追加できます。プロジェクトを追加するには、Service Mesh に追加するプロジェクトに ServiceMeshMember リソースを作成します。Service Mesh Operator が ServiceMeshMember オブジェクトを処理すると、ServiceMeshMemberRoll リソースの status.members リストにプロジェクトが表示されます。次に、プロジェクトに存在するサービスがメッシュで利用可能になります。

メッシュ管理者は、各メッシュユーザーに ServiceMeshMember リソースの ServiceMeshControlPlane リソースを参照する権限を付与する必要があります。この権限を設定すると、メッシュユーザーがサービスメッシュプロジェクトまたは ServiceMeshMemberRoll リソースへの直接アクセス権を持っていない場合でも、メッシュユーザーはプロジェクトをメッシュに追加できます。詳細は、Red Hat OpenShift Service Mesh メンバーの作成を参照してください。
1.9.4.1. Web コンソールで ServiceMeshMember リソースを使用してメッシュにプロジェクトを追加
OpenShift Container Platform Web コンソールで ServiceMeshMember リソースを使用して、1 つ以上のプロジェクトをメッシュに追加できます。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされています。
-
ServiceMeshControlPlaneリソースの名前と、リソースが属するプロジェクトの名前はわかっています。 - メッシュに追加するプロジェクトの名前はわかっています。
-
Service Mesh 管理者は、Service Mesh へのアクセスを明示的に付与する必要があります。管理者は、
RoleBindingまたはClusterRoleBindingを使用してmesh-userロールをユーザーに割り当てて、メッシュにアクセスする権限を付与できます。詳細は、Red Hat OpenShift Service Mesh メンバーの作成 を参照してください。
手順
- OpenShift Container Platform Web コンソールにログインします。
- Operators → Installed Operators に移動します。
-
Project メニューをクリックし、ドロップダウンリストからメッシュに追加するプロジェクトを選択します。たとえば、
istio-systemです。 - Red Hat OpenShift Service Mesh Operator をクリックします。
- Istio Service Mesh Member タブをクリックします。
- Create ServiceMeshMember をクリックします。
-
ServiceMeshMemberのデフォルト名を許可します。 - クリックして ControlPlaneRef を展開します。
-
Namespace フィールドで、
ServiceMeshControlPlaneリソースが属するプロジェクトを選択します。たとえば、istio-systemです。 -
Name フィールドに、この namespace が属する
ServiceMeshControlPlaneリソースの名前を入力します。たとえば、basicです。 - Create をクリックします。
-
ServiceMeshMemberリソースが作成され、プロジェクトがメッシュに追加されたことを確認します。リソース名をクリックします。たとえば、defaultです。画面の最後に表示される Conditions セクションを表示します。ReconciledおよびReadyの条件のStatusがTrueであることを確認します。StatusがFalseの場合は、Reason列およびMessage列で詳細を確認してください。
1.9.4.2. CLI で ServiceMeshMember リソースを使用してメッシュにプロジェクトを追加する
CLI で ServiceMeshMember リソースを使用して、1 つ以上のプロジェクトをメッシュに追加できます。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされています。
-
ServiceMeshControlPlaneリソースの名前と、それが属するプロジェクトの名前はわかっています。 - メッシュに追加するプロジェクトの名前はわかっています。
-
Service Mesh 管理者は、Service Mesh へのアクセスを明示的に付与する必要があります。管理者は、
RoleBindingまたはClusterRoleBindingを使用してmesh-userロールをユーザーに割り当てて、メッシュにアクセスする権限を付与できます。詳細は、Red Hat OpenShift Service Mesh メンバーの作成 を参照してください。
手順
- OpenShift Container Platform CLI にログインします。
ServiceMeshMemberマニフェストの YAML ファイルを作成します。マニフェストは、istio-systemnamespace にデプロイされたServiceMeshControlPlaneリソースが作成したサービスメッシュにmy-applicationプロジェクトを追加します。apiVersion: maistra.io/v1 kind: ServiceMeshMember metadata: name: default namespace: my-application spec: controlPlaneRef: namespace: istio-system name: basicYAML ファイルを適用して
ServiceMeshMemberリソースを作成します。$ oc apply -f <file-name>
ServiceMeshMemberリソースを作成したら、namespace がメッシュの一部であることを確認します。以下のコマンドを実行する際に、READY列にTrueの値が表示されていることを確認します。$ oc get smm default -n my-application
ServiceMeshMemberRollリソースにアクセスできる場合は、my-applicationnamespace がServiceMeshMemberRollリソースのstatus.membersおよびstatus.configuredMembersフィールドに表示されることを確認します。
1.9.5. ラベルセレクターを使用したプロジェクトの追加について
クラスター全体のデプロイメントの場合は、ラベルセレクターを使用してプロジェクトをメッシュに追加できます。ServiceMeshMemberRoll リソースで指定されたラベルセレクターを使用すると、サービスメッシュオペレーターは、namespace ラベルに基づいてメッシュに namespace を追加またはメッシュから namespace を削除できます。単一のラベルセレクターを指定するために使用できる他の標準 OpenShift Container Platform リソースとは異なり、ServiceMeshMemberRoll リソースを使用して複数のラベルセレクターを指定できます。

namespace のラベルが ServiceMeshMemberRoll リソースで指定されたセレクターのいずれかに一致する場合、その namespace はメッシュに含まれます。
基本的に、OpenShift Container Platform でのプロジェクトとは、プロジェクトで使用できるユーザー ID 範囲などの追加のアノテーションを持つ Kubernetes namespace です。通常、OpenShift Container Platform Web コンソールでは プロジェクト という用語が使用され、CLI では namespace という用語が使用されますが、この 2 つの用語は基本的に同義です。
1.9.5.1. Web コンソールでラベルセレクターを使用してメッシュにプロジェクトを追加する
ラベルセレクターを使用して、OpenShift Container Platform Web コンソールでサービスメッシュにプロジェクトを追加できます。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされています。
-
デプロイメントには既存の
ServiceMeshMemberRollリソースがあります。 -
cluster-adminロールを持つユーザーとしてログインしています。Red Hat OpenShift Dedicated を使用する場合は、dedicated-adminロールを持つユーザーとしてログインします。
手順
- OpenShift Container Platform Web コンソールにログインします。
- Operators → Installed Operators に移動します。
-
Project メニューをクリックし、ドロップダウンリストから
ServiceMeshMemberRollリソースがデプロイされているプロジェクトを選択します。たとえば、istio-system です。 - Red Hat OpenShift Service Mesh Operator をクリックします。
- Istio Service Mesh Member Roll タブをクリックします。
- Create ServiceMeshMember Roll をクリックします。
-
ServiceMeshMemberRollのデフォルト名を受け入れます。 Labels フィールドにキーと値のペアを入力して、サービスメッシュに含める名前空間を識別するラベルを定義します。プロジェクト namespace にセレクターで指定されたラベルがある場合、プロジェクト namespace はサービスメッシュに含まれます。両方のラベルを含める必要はありません。
たとえば、
mykey=myvalueと入力すると、このラベルを持つすべての名前空間がメッシュの一部として含まれます。セレクターが一致を識別すると、プロジェクト名前空間がサービスメッシュに追加されます。myotherkey=myothervalueと入力すると、このラベルを持つすべての名前空間がメッシュの一部として含まれます。セレクターが一致を識別すると、プロジェクト名前空間がサービスメッシュに追加されます。- Create をクリックします。
1.9.5.2. CLI でラベルセレクターを使用してメッシュにプロジェクトを追加する
ラベルセレクターを使用して、CLI でプロジェクトをサービスメッシュに追加できます。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされています。
-
デプロイメントには既存の
ServiceMeshMemberRollリソースがあります。 -
cluster-adminロールを持つユーザーとしてログインしています。Red Hat OpenShift Dedicated を使用する場合は、dedicated-adminロールを持つユーザーとしてログインします。
手順
- OpenShift Container Platform CLI にログインします。
ServiceMeshMemberRollリソースを編集します。$ oc edit smmr -n <controlplane_project>
前の例では、例として
<controlplane_project>を使用しています。Service Mesh コントロールプレーンは、サービスが含まれるプロジェクトから分離されている限り、任意のプロジェクトにデプロイできます。YAML ファイルを変更して、
ServiceMeshMemberRollリソースのspec.memberSelectorsフィールドに名前空間ラベルセレクターを含めます。注記matchLabelsフィールドを使用する代わりに、セレクターでmatchExpressionsフィールドを使用することもできます。apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system spec: memberSelectors: 1 - matchLabels: 2 mykey: myvalue 3 - matchLabels: 4 myotherkey: myothervalue 5
- 1
- サービスメッシュに含まれるプロジェクト名前空間を識別するために使用されるラベルセレクターが含まれます。プロジェクト namespace にセレクターで指定されたラベルがある場合、プロジェクト namespace はサービスメッシュに含まれます。プロジェクト namespace には両方のラベルを含める必要はありません。
- 2 3
mykey=myvalueラベルを持つすべての namespace を指定します。セレクターが一致を識別すると、プロジェクト名前空間がサービスメッシュに追加されます。- 4 5
myotherkey=myothervalueラベルを持つすべての namespace を指定します。セレクターが一致を識別すると、プロジェクト名前空間がサービスメッシュに追加されます。
1.9.6. Bookinfo のサンプルアプリケーション
Bookinfo のサンプルアプリケーションでは、OpenShift Container Platform での Red Hat OpenShift Service Mesh 2.4.2 のインストールをテストすることができます。
Bookinfo アプリケーションは、オンラインブックストアの単一カタログエントリーのように、書籍に関する情報を表示します。このアプリケーションでは、書籍の説明、書籍の詳細 (ISBN、ページ数その他の情報)、および書評のページが表示されます。
Bookinfo アプリケーションはこれらのマイクロサービスで設定されます。
-
productpageマイクロサービスは、detailsとreviewsマイクロサービスを呼び出して、ページを設定します。 -
detailsマイクロサービスには書籍の情報が含まれています。 -
reviewsマイクロサービスには、書評が含まれます。これはratingsマイクロサービスも呼び出します。 -
ratingsマイクロサービスには、書評を伴う書籍のランキング情報が含まれます。
reviews マイクロサービスには、以下の 3 つのバージョンがあります。
-
バージョン v1 は、
ratingsサービスを呼び出しません。 -
バージョン v2 は、
ratingsサービスを呼び出して、各評価を 1 から 5 の黒い星で表示します。 -
バージョン v3 は、
ratingsサービスを呼び出して、各評価を 1 から 5 の赤い星で表示します。
1.9.6.1. Bookinfo アプリケーションのインストール
このチュートリアルでは、プロジェクトの作成、そのプロジェクトへの Bookinfo アプリケーションのデプロイ、Service Mesh での実行中のアプリケーションの表示を行い、サンプルアプリケーションを作成する方法を説明します。
前提条件:
- OpenShift Container Platform 4.1 以降がインストールされている。
- Red Hat OpenShift Service Mesh 2.4.2 がインストールされている。
-
OpenShift CLI (
oc) へのアクセスがある。 -
cluster-adminロールを持つアカウントがある。
Bookinfo サンプルアプリケーションは、IBM Z および IBM Power にインストールできません。
このセクションのコマンドは、Service Mesh コントロールプレーンプロジェクトが istio-system であると仮定します。コントロールプレーンを別の namespace にインストールしている場合は、実行する前にそれぞれのコマンドを編集します。
手順
-
cluster-admin 権限を持つユーザーとして OpenShift Container Platform Web コンソールにログインします。(Red Hat OpenShift Dedicated を使用する場合)
dedicated-adminロールがあるアカウント。 - Home → Projects をクリックします。
- Create Project をクリックします。
Project Name として
infoを入力し、Display Name を入力します。その後、Description を入力し、Create をクリックします。または、CLI からこのコマンドを実行して、
infoプロジェクトを作成できます。$ oc new-project info
- Operators → Installed Operators をクリックします。
-
プロジェクト メニューをクリックし、Service Mesh コントロールプレーンの namespace を使用します。この例では
istio-systemを使用します。 - Red Hat OpenShift Service Mesh Operator をクリックします。
Istio Service Mesh Member Roll タブをクリックします。
- Istio Service Mesh Member Roll がすでに作成されている場合は、名前をクリックしてから YAML タブをクリックし、YAML エディターを開きます。
-
ServiceMeshMemberRollを作成していない場合は、Create ServiceMeshMemberRoll をクリックします。
- Members をクリックし、Value フィールドにプロジェクトの名前を入力します。
Create をクリックして、更新した Service Mesh Member Roll を保存します。
または、以下のサンプルを YAML ファイルに保存します。
Bookinfo ServiceMeshMemberRoll の例 (servicemeshmemberroll-default.yaml)
apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default spec: members: - info
以下のコマンドを実行して、そのファイルをアップロードし、
istio-systemnamespace にServiceMeshMemberRollリソースを作成します。この例では、istio-systemが Service Mesh コントロールプレーンプロジェクトの名前となります。$ oc create -n istio-system -f servicemeshmemberroll-default.yaml
以下のコマンドを実行して、
ServiceMeshMemberRollが正常に作成されていることを確認します。$ oc get smmr -n istio-system -o wide
STATUS列がConfiguredの場合、インストールは正常に終了しています。NAME READY STATUS AGE MEMBERS default 1/1 Configured 70s ["info"]
CLI で 'info' プロジェクトに Bookinfo アプリケーションをデプロイするには、
bookinfo.yamlファイルを適用します。$ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.4/samples/bookinfo/platform/kube/bookinfo.yaml
以下のような出力が表示されるはずです。
service/details created serviceaccount/info-details created deployment.apps/details-v1 created service/ratings created serviceaccount/info-ratings created deployment.apps/ratings-v1 created service/reviews created serviceaccount/info-reviews created deployment.apps/reviews-v1 created deployment.apps/reviews-v2 created deployment.apps/reviews-v3 created service/productpage created serviceaccount/info-productpage created deployment.apps/productpage-v1 created
info-gateway.yamlファイルを適用して Ingress ゲートウェイを作成します。$ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.4/samples/bookinfo/networking/bookinfo-gateway.yaml
以下のような出力が表示されるはずです。
gateway.networking.istio.io/info-gateway created virtualservice.networking.istio.io/info created
GATEWAY_URLパラメーターの値を設定します。$ export GATEWAY_URL=$(oc -n istio-system get route istio-ingressgateway -o jsonpath='{.spec.host}')
1.9.6.2. デフォルトの宛先ルールの追加
Bookinfo アプリケーションを使用するには、先にデフォルトの宛先ルールを追加する必要があります。相互トランスポート層セキュリティー (TLS) 認証が有効かどうかによって、2 つの事前設定される YAML ファイルを使用できます。
手順
宛先ルールを追加するには、以下のいずれかのコマンドを実行します。
相互 TLS を有効にしていない場合:
$ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.4/samples/bookinfo/networking/destination-rule-all.yaml
相互 TLS を有効にしている場合:
$ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.4/samples/bookinfo/networking/destination-rule-all-mtls.yaml
以下のような出力が表示されるはずです。
destinationrule.networking.istio.io/productpage created destinationrule.networking.istio.io/reviews created destinationrule.networking.istio.io/ratings created destinationrule.networking.istio.io/details created
1.9.6.3. Bookinfo インストールの検証
Bookinfo アプリケーションのサンプルが正常にデプロイされたことを確認するには、以下の手順を実行します。
前提条件
- Red Hat OpenShift Service Mesh がインストールされている。
- Bookinfo サンプルアプリケーションのインストール手順を実行します。
CLI からの手順
- OpenShift Container Platform CLI にログインします。
以下のコマンドですべての Pod が準備状態にあることを確認します。
$ oc get pods -n info
すべての Pod のステータスは
Runningである必要があります。以下のような出力が表示されるはずです。NAME READY STATUS RESTARTS AGE details-v1-55b869668-jh7hb 2/2 Running 0 12m productpage-v1-6fc77ff794-nsl8r 2/2 Running 0 12m ratings-v1-7d7d8d8b56-55scn 2/2 Running 0 12m reviews-v1-868597db96-bdxgq 2/2 Running 0 12m reviews-v2-5b64f47978-cvssp 2/2 Running 0 12m reviews-v3-6dfd49b55b-vcwpf 2/2 Running 0 12m
以下のコマンドを実行して、製品ページの URL を取得します。
echo "http://$GATEWAY_URL/productpage"
- Web ブラウザーで出力をコピーして貼り付けて、Bookinfo の製品ページがデプロイされていることを確認します。
Kiali Web コンソールからの手順
Kiali Web コンソールのアドレスを取得します。
-
cluster-admin権限を持つユーザーとして OpenShift Container Platform Web コンソールにログインします。(Red Hat OpenShift Dedicated を使用する場合)dedicated-adminロールがあるアカウント。 - Networking → Routes に移動します。
Routes ページで、Namespace メニューから Service Mesh コントロールプレーンプロジェクトを選択します (例:
istio-system)。Location 列には、各ルートのリンク先アドレスが表示されます。
- Kiali の 場所 列のリンクをクリックします。
- Log In With OpenShift をクリックします。Kiali の 概要 画面には、各プロジェクトの namespace のタイルが表示されます。
-
- Kiali で、グラフ をクリックします。
- Namespace リストから info を選択し、Graph Type リストから App graph を選択します。
Display メニューから Display idle nodes をクリックします。
これにより、定義されているが要求を受信または送信していないノードが表示されます。アプリケーションが適切に定義されていることを確認できますが、要求トラフィックは報告されていません。

- 期間 メニューを使用して、期間を延ばして、古いトラフィックを取得できるようにします。
- Refresh Rate メニューを使用して、トラフィックを頻繁に更新するか、まったく更新しないようにします。
- Services、Workloads または Istio Config をクリックして、info コンポーネントのリストビューを表示し、それらが正常であることを確認します。
1.9.6.4. Bookinfo アプリケーションの削除
以下の手順で、Bookinfo アプリケーションを削除します。
前提条件
- OpenShift Container Platform 4.1 以降がインストールされている。
- Red Hat OpenShift Service Mesh 2.4.2 がインストールされている。
-
OpenShift CLI (
oc) へのアクセスがある。
1.9.6.4.1. Bookinfo プロジェクトの削除
手順
- OpenShift Container Platform Web コンソールにログインします。
- Home → Projects をクリックします。
-
infoメニュー
をクリックしてから Delete Project をクリックします。
確認ダイアログボックスに
infoと入力してから Delete をクリックします。または、CLI を使用して次のコマンドを実行し、
infoプロジェクトを作成できます。$ oc delete project info
1.9.6.4.2. Service Mesh Member Roll からの Bookinfo プロジェクトの削除
手順
- OpenShift Container Platform Web コンソールにログインします。
- Operators → Installed Operators をクリックします。
-
Project メニューをクリックし、一覧から
istio-systemを選択します。 - Red Hat OpenShift Service Mesh Operator の Provided APIS で、Istio Service Mesh Member Roll のリンクをクリックします。
-
ServiceMeshMemberRollメニュー
をクリックし、Edit Service Mesh Member Roll を選択します。
デフォルトの Service Mesh Member Roll YAML を編集し、members 一覧から
infoを削除します。または、CLI を使用して次のコマンドを実行し、
ServiceMeshMemberRollからinfoプロジェクトを削除できます。この例では、istio-systemが Service Mesh コントロールプレーンプロジェクトの名前となります。$ oc -n istio-system patch --type='json' smmr default -p '[{"op": "remove", "path": "/spec/members", "value":["'"info"'"]}]'
- Save をクリックして、Service Mesh Member Roll を更新します。
1.9.7. 次のステップ
- インストールプロセスを続行するには、サイドカーインジェクションを有効化 する必要があります。