2.10. Service Mesh へのサービスの追加
プロジェクトにはサービスが含まれますが、そのプロジェクトを Service Mesh に追加していなければサービスは使用できません。
2.10.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.memberSelectorsフィールドでラベルセレクターを設定します。 -
プロジェクトで
ServiceMeshMemberリソースを作成する方法。
最初の方法を使用する場合は、ServiceMeshMemberRoll リソースを作成する必要があります。
2.10.2. Red Hat OpenShift Service Mesh メンバーロールの作成 リンクのコピーリンクがクリップボードにコピーされました!
ServiceMeshMemberRoll は、Service Mesh コントロールプレーンに属するプロジェクトを一覧表示します。ServiceMeshMemberRoll に一覧表示されているプロジェクトのみがコントロールプレーンの影響を受けます。プロジェクトは、特定のコントロールプレーンのデプロイメント用にメンバーロールに追加するまで Service Mesh に属しません。
istio-system など、ServiceMeshControlPlane と同じプロジェクトに、default という名前の ServiceMeshMemberRoll リソースを作成する必要があります。
2.10.2.1. Web コンソールからのメンバーロールの作成 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールを使用して 1 つ以上のプロジェクトを Service Mesh メンバーロールに追加します。この例では、istio-system が Service Mesh コントロールプレーンプロジェクトの名前となります。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールおよび検証されている。
- Service Mesh に追加する既存プロジェクトの一覧。
手順
- OpenShift Container Platform Web コンソールにログインします。
メッシュのサービスがない場合や、ゼロから作業を開始する場合は、アプリケーションのプロジェクトを作成します。これは、Service Mesh コントロールプレーンをインストールしたプロジェクトとは異なる必要があります。
-
Home
Projects に移動します。 - Name フィールドに名前を入力します。
- Create をクリックします。
-
Home
-
Operators
Installed Operators に移動します。 -
Project メニューをクリックし、リストから
ServiceMeshControlPlaneリソースがデプロイされているプロジェクト (例:istio-system) を選択します。 - Red Hat OpenShift Service Mesh Operator をクリックします。
- Istio Service Mesh Member Roll タブをクリックします。
- Create ServiceMeshMemberRoll をクリックします。
-
Members をクリックし、Value フィールドにプロジェクトの名前を入力します。任意の数のプロジェクトを追加できますが、プロジェクトは 1 つの
ServiceMeshMemberRollリソースにしか属することができません。 - Create をクリックします。
2.10.2.2. CLI からのメンバーロールの作成 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインからプロジェクトを ServiceMeshMemberRoll に追加します。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールおよび検証されている。
- Service Mesh に追加するプロジェクトの一覧。
-
OpenShift CLI (
oc) へのアクセスがある。
手順
OpenShift Container Platform CLI にログインします。
oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443Copy to Clipboard Copied! Toggle word wrap Toggle overflow メッシュのサービスがない場合や、ゼロから作業を開始する場合は、アプリケーションのプロジェクトを作成します。これは、Service Mesh コントロールプレーンをインストールしたプロジェクトとは異なる必要があります。
oc new-project <your-project>
$ oc new-project <your-project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトをメンバーとして追加するには、以下の YAML の例を変更します。任意の数のプロジェクトを追加できますが、プロジェクトは 1 つの
ServiceMeshMemberRollリソースにしか属することができません。この例では、istio-systemが Service Mesh コントロールプレーンプロジェクトの名前となります。servicemeshmemberroll-default.yaml の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、
istio-systemnamespace にServiceMeshMemberRollリソースをアップロードおよび作成します。oc create -n istio-system -f servicemeshmemberroll-default.yaml
$ oc create -n istio-system -f servicemeshmemberroll-default.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、
ServiceMeshMemberRollが正常に作成されていることを確認します。oc get smmr -n istio-system default
$ oc get smmr -n istio-system defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow STATUS列がConfiguredの場合、インストールは正常に終了しています。
2.10.3. ServiceMeshMemberRoll リソースを使用したプロジェクトの追加について リンクのコピーリンクがクリップボードにコピーされました!
ServiceMeshMemberRoll リソースを使用するのが、プロジェクトを Service Mesh に追加する最も簡単な方法です。プロジェクトを追加するには、ServiceMeshMemberRoll リソースの spec.members フィールドにプロジェクト名を指定します。ServiceMeshMemberRoll リソースは、ServiceMeshControlPlane リソースによって制御されるプロジェクトを指定します。
この方法を使用してプロジェクトを追加するには、追加するプロジェクトの servicemeshmemberrolls 権限と update pods 権限をユーザーが持っている必要があります。
Service Mesh に追加するアプリケーション、ワークロード、またはサービスがすでにある場合は、次を参照してください。
-
Web コンソールで
ServiceMeshMemberRollリソースを使用してメッシュにプロジェクトを追加または削除する -
CLI で
ServiceMeshMemberRollリソースを使用してメッシュにプロジェクトを追加または削除する
-
Web コンソールで
-
あるいは、Bookinfo というサンプルアプリケーションをインストールして
ServiceMeshMemberRollリソースに追加するには、Bookinfo サンプルアプリケーションのチュートリアルを参照してください。
2.10.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 を変更してプロジェクトをメンバーとして追加します (またはプロジェクトを削除して既存メンバーを削除します)。任意の数のプロジェクトを追加できますが、プロジェクトは 1 つの
ServiceMeshMemberRollリソースにしか属することができません。servicemeshmemberroll-default.yaml の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Save をクリックします。
- Reload をクリックします。
2.10.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>
$ oc edit smmr -n <controlplane-namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML を変更して、プロジェクトをメンバーとして追加または削除します。任意の数のプロジェクトを追加できますが、プロジェクトは 1 つの
ServiceMeshMemberRollリソースにしか属することができません。servicemeshmemberroll-default.yaml の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ファイルを保存して、エディターを終了します。
2.10.4. ServiceMeshMember リソースを使用したプロジェクトの追加について リンクのコピーリンクがクリップボードにコピーされました!
ServiceMeshMember リソースを使用すると、ServiceMeshMemberRoll リソースを変更せずにプロジェクトを Service Mesh に追加できます。プロジェクトを追加するには、Service Mesh に追加するプロジェクトに ServiceMeshMember リソースを作成します。Service Mesh Operator が ServiceMeshMember オブジェクトを処理すると、ServiceMeshMemberRoll リソースの status.members リストにプロジェクトが表示されます。次に、プロジェクトに存在するサービスがメッシュで利用可能になります。
メッシュ管理者は、各メッシュユーザーに ServiceMeshMember リソースの ServiceMeshControlPlane リソースを参照する権限を付与する必要があります。この権限を設定すると、メッシュユーザーが Service Mesh プロジェクトまたは ServiceMeshMemberRoll リソースへの直接アクセス権を持っていない場合でも、メッシュユーザーはプロジェクトをメッシュに追加できます。詳細は、「Red Hat OpenShift Service Mesh メンバーの作成」を参照してください。
2.10.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列で詳細を確認してください。
-
リソース名 (例:
2.10.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リソースが作成した Service Mesh にmy-applicationプロジェクトを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML ファイルを適用して
ServiceMeshMemberリソースを作成します。oc apply -f <file-name>
$ oc apply -f <file-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、namespace がメッシュに含まれていることを確認します。
READY列にTrueの値が表示されていることを確認します。oc get smm default -n my-application
$ oc get smm default -n my-applicationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CONTROL PLANE READY AGE default istio-system/basic True 2m11s
NAME CONTROL PLANE READY AGE default istio-system/basic True 2m11sCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、
ServiceMeshMemberRollリソースを表示して、my-applicationnamespace がServiceMeshMemberRollリソースのstatus.membersフィールドとstatus.configuredMembersフィールドに表示されることを確認します。oc describe smmr default -n istio-system
$ oc describe smmr default -n istio-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.10.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 つの用語は基本的に同義です。
2.10.5.1. Web コンソールでラベルセレクターを使用してメッシュにプロジェクトを追加する リンクのコピーリンクがクリップボードにコピーされました!
ラベルセレクターを使用して、OpenShift Container Platform Web コンソールでサービスメッシュにプロジェクトを追加できます。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされている。
-
デプロイメントには既存の
ServiceMeshMemberRollリソースがあります。 -
OpenShift Container Platform Web コンソールに
cluster-adminとしてログインしている。
手順
-
Operators
Installed Operators に移動します。 -
Project メニューをクリックし、ドロップダウンリストから
ServiceMeshMemberRollリソースがデプロイされているプロジェクトを選択します。たとえば、istio-system です。 - Red Hat OpenShift Service Mesh Operator をクリックします。
- Istio Service Mesh Member Roll タブをクリックします。
- Create ServiceMeshMember Roll をクリックします。
-
ServiceMeshMemberRollのデフォルト名を受け入れます。 Labels フィールドにキーと値のペアを入力して、Service Mesh に含める namespace を識別するラベルを定義します。プロジェクト namespace にセレクターで指定されたラベルがある場合、プロジェクト namespace は Service Mesh に含まれます。両方のラベルを含める必要はありません。
たとえば、
mykey=myvalueと入力すると、このラベルを持つすべての namespace がメッシュの一部として含まれます。セレクターが一致を識別すると、プロジェクト namespace が Service Mesh に追加されます。myotherkey=myothervalueと入力すると、このラベルを持つすべての namespace がメッシュの一部として含まれます。セレクターが一致を識別すると、プロジェクト namespace が Service Mesh に追加されます。- Create をクリックします。
2.10.5.2. CLI でラベルセレクターを使用してメッシュにプロジェクトを追加する リンクのコピーリンクがクリップボードにコピーされました!
ラベルセレクターを使用して、CLI でプロジェクトを Service Mesh に追加できます。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされている。
-
デプロイメントには既存の
ServiceMeshMemberRollリソースがあります。 - OpenShift Container Platform に `cluster-admin` としてログインしている。
手順
- OpenShift Container Platform CLI にログインします。
ServiceMeshMemberRollリソースを編集します。oc edit smmr default -n istio-system
$ oc edit smmr default -n istio-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow Service Mesh コントロールプレーンは、サービスが含まれるプロジェクトから分離されていれば、任意のプロジェクトにデプロイできます。
YAML ファイルを変更して、
ServiceMeshMemberRollリソースのspec.memberSelectorsフィールドに namespace ラベルセレクターを含めます。注記matchLabelsフィールドを使用する代わりに、セレクターでmatchExpressionsフィールドを使用することもできます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Service Mesh に含まれるプロジェクト namespace を識別するために使用されるラベルセレクターが含まれます。プロジェクト namespace にセレクターで指定されたラベルがある場合、プロジェクト namespace は Service Mesh に含まれます。プロジェクト namespace には両方のラベルを含める必要はありません。
- 2 3
mykey=myvalueラベルを持つすべての namespace を指定します。セレクターが一致を識別すると、プロジェクト namespace が Service Mesh に追加されます。- 4 5
myotherkey=myothervalueラベルを持つすべての namespace を指定します。セレクターが一致を識別すると、プロジェクト namespace が Service Mesh に追加されます。
2.10.6. Bookinfo サンプルアプリケーション リンクのコピーリンクがクリップボードにコピーされました!
Bookinfo のサンプルアプリケーションでは、OpenShift Container Platform での Red Hat OpenShift Service Mesh 2.6.9 のインストールをテストすることができます。
Bookinfo アプリケーションは、オンラインブックストアの単一カタログエントリーのように、書籍に関する情報を表示します。このアプリケーションでは、書籍の説明、書籍の詳細 (ISBN、ページ数その他の情報)、および書評のページが表示されます。
Bookinfo アプリケーションはこれらのマイクロサービスで構成されます。
-
productpageマイクロサービスは、detailsとreviewsマイクロサービスを呼び出して、ページを設定します。 -
detailsマイクロサービスには書籍の情報が含まれています。 -
reviewsマイクロサービスには、書評が含まれます。これはratingsマイクロサービスも呼び出します。 -
ratingsマイクロサービスには、書評を伴う書籍のランキング情報が含まれます。
reviews マイクロサービスには、以下の 3 つのバージョンがあります。
-
バージョン v1 は、
ratingsサービスを呼び出しません。 -
バージョン v2 は、
ratingsサービスを呼び出して、各評価を 1 から 5 の黒い星で表示します。 -
バージョン v3 は、
ratingsサービスを呼び出して、各評価を 1 から 5 の赤い星で表示します。
2.10.6.1. Bookinfo アプリケーションのインストール リンクのコピーリンクがクリップボードにコピーされました!
このチュートリアルでは、プロジェクトの作成、そのプロジェクトへの Bookinfo アプリケーションのデプロイ、Service Mesh での実行中のアプリケーションの表示を行い、サンプルアプリケーションを作成する方法を説明します。
前提条件
- OpenShift Container Platform 4.1 以降がインストールされている。
- Red Hat OpenShift Service Mesh 2.6.9 がインストールされている。
-
OpenShift CLI (
oc) へのアクセスがある。 - OpenShift Container Platform に `cluster-admin` としてログインしている。
Bookinfo サンプルアプリケーションは、IBM Z® および IBM Power® にインストールできません。
このセクションのコマンドは、Service Mesh コントロールプレーンプロジェクトが istio-system であると仮定します。コントロールプレーンを別の namespace にインストールしている場合は、実行する前にそれぞれのコマンドを編集します。
手順
-
Home
Projects をクリックします。 - Create Project をクリックします。
Project Name として
infoを入力し、Display Name を入力します。その後、Description を入力し、Create をクリックします。または、CLI からこのコマンドを実行して、
infoプロジェクトを作成できます。oc new-project info
$ oc new-project infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
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)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、そのファイルをアップロードし、
istio-systemnamespace にServiceMeshMemberRollリソースを作成します。この例では、istio-systemが Service Mesh コントロールプレーンプロジェクトの名前となります。oc create -n istio-system -f servicemeshmemberroll-default.yaml
$ oc create -n istio-system -f servicemeshmemberroll-default.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のコマンドを実行して、
ServiceMeshMemberRollが正常に作成されていることを確認します。oc get smmr -n istio-system -o wide
$ oc get smmr -n istio-system -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow STATUS列がConfiguredの場合、インストールは正常に終了しています。NAME READY STATUS AGE MEMBERS default 1/1 Configured 70s ["info"]
NAME READY STATUS AGE MEMBERS default 1/1 Configured 70s ["info"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow CLI で `info` プロジェクトに Bookinfo アプリケーションをデプロイするには、
bookinfo.yamlファイルを適用します。oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.6/samples/bookinfo/platform/kube/bookinfo.yaml
$ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.6/samples/bookinfo/platform/kube/bookinfo.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のような出力が表示されるはずです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow info-gateway.yamlファイルを適用して Ingress ゲートウェイを作成します。oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.6/samples/bookinfo/networking/bookinfo-gateway.yaml
$ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.6/samples/bookinfo/networking/bookinfo-gateway.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のような出力が表示されるはずです。
gateway.networking.istio.io/info-gateway created virtualservice.networking.istio.io/info created
gateway.networking.istio.io/info-gateway created virtualservice.networking.istio.io/info createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow GATEWAY_URLパラメーターの値を設定します。export GATEWAY_URL=$(oc -n istio-system get route istio-ingressgateway -o jsonpath='{.spec.host}')$ export GATEWAY_URL=$(oc -n istio-system get route istio-ingressgateway -o jsonpath='{.spec.host}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.10.6.2. デフォルトの宛先ルールの追加 リンクのコピーリンクがクリップボードにコピーされました!
Bookinfo アプリケーションを使用するには、先にデフォルトの宛先ルールを追加する必要があります。相互トランスポート層セキュリティー (TLS) 認証が有効かどうかによって、2 つの事前設定される YAML ファイルを使用できます。
手順
宛先ルールを追加するには、以下のいずれかのコマンドを実行します。
相互 TLS を有効にしていない場合:
oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.6/samples/bookinfo/networking/destination-rule-all.yaml
$ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.6/samples/bookinfo/networking/destination-rule-all.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 相互 TLS を有効にしている場合:
oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.6/samples/bookinfo/networking/destination-rule-all-mtls.yaml
$ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.6/samples/bookinfo/networking/destination-rule-all-mtls.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のような出力が表示されるはずです。
destinationrule.networking.istio.io/productpage created destinationrule.networking.istio.io/reviews created destinationrule.networking.istio.io/ratings created destinationrule.networking.istio.io/details created
destinationrule.networking.istio.io/productpage created destinationrule.networking.istio.io/reviews created destinationrule.networking.istio.io/ratings created destinationrule.networking.istio.io/details createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.10.6.3. Bookinfo インストールの検証 リンクのコピーリンクがクリップボードにコピーされました!
Bookinfo アプリケーションのサンプルが正常にデプロイされたことを確認するには、以下の手順を実行します。
前提条件
- Red Hat OpenShift Service Mesh がインストールされている。
- Bookinfo サンプルアプリケーションのインストール手順を実行します。
- OpenShift Container Platform に `cluster-admin` としてログインしている。
CLI からの手順
以下のコマンドですべての Pod が準備状態にあることを確認します。
oc get pods -n info
$ oc get pods -n infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべての Pod のステータスは
Runningである必要があります。以下のような出力が表示されるはずです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、製品ページの URL を取得します。
echo "http://$GATEWAY_URL/productpage"
echo "http://$GATEWAY_URL/productpage"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Web ブラウザーで出力をコピーして貼り付けて、Bookinfo の製品ページがデプロイされていることを確認します。
Kiali Web コンソールからの手順
Kiali Web コンソールのアドレスを取得します。
- OpenShift Container Platform Web コンソールにログインします。
-
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 コンポーネントのリストビューを表示し、それらが正常であることを確認します。
2.10.6.4. Bookinfo アプリケーションの削除 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順で、Bookinfo アプリケーションを削除します。
前提条件
- OpenShift Container Platform 4.1 以降がインストールされている。
- Red Hat OpenShift Service Mesh 2.6.9 がインストールされている。
-
OpenShift CLI (
oc) へのアクセスがある。
2.10.6.4.1. Bookinfo プロジェクトの削除 リンクのコピーリンクがクリップボードにコピーされました!
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Home
Projects をクリックします。 -
infoメニュー
をクリックしてから Delete Project をクリックします。
確認ダイアログボックスに
infoと入力してから Delete をクリックします。または、CLI を使用して次のコマンドを実行し、
infoプロジェクトを作成できます。oc delete project info
$ oc delete project infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.10.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"'"]}]'$ oc -n istio-system patch --type='json' smmr default -p '[{"op": "remove", "path": "/spec/members", "value":["'"info"'"]}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Save をクリックして、Service Mesh Member Roll を更新します。
2.10.7. 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
- インストールプロセスを続行するには、サイドカーインジェクションを有効化 を行う必要があります。