This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.1.18.11. フェデレーションメッシュからのサービスのエクスポート
サービスをエクスポートすると、メッシュは、フェデレーションされたメッシュの別のメンバーとサービスを共有できます。
ExportedServiceSet
リソースを使用して、フェデレーションメッシュ内の別のピアから利用できるように指定したメッシュからサービスを宣言します。ピアと共有される各サービスを明示的に宣言する必要があります。
- サービスは、namespace または名前別に選択できます。
- ワイルドカードを使用してサービスを選択できます。たとえば、namespace 内のすべてのサービスをエクスポートします。
-
エイリアスを使用してサービスをエクスポートできます。たとえば、
foo/bar
サービスをcustom-ns/bar
としてエクスポートできます。 -
メッシュのシステム namespace に表示されるサービスのみをエクスポートできます。たとえば、
networking.istio.io/exportTo
ラベルが '.' に設定された別の namespace のサービスは、エクスポートの候補にはなりません。 - エクスポートされたサービスの場合には、それらのターゲットサービスは、元の要求元 (他のメッシュの egress ゲートウェイや、要求元のワークロードのクライアント ID は表示されない) ではなく、ingress ゲートウェイからのトラフィックのみが表示されます。
以下の例は、 red-mesh
が green-mesh
にエクスポートするサービス向けです。
ExportedServiceSet リソースの例
パラメーター | 説明 | 値 |
---|---|---|
metadata: name:
| このサービスを公開する ServiceMeshPeer の名前。 |
|
metadata: namespace:
| このリソースを含むプロジェクト/namespace の名前 (メッシュのシステム namespace を指定する必要があります)。 | |
spec: exportRules: - type:
| このサービスのエクスポートを管理するルールのタイプ。サービスで最初に一致するルールがエクスポートに使用されます。 |
|
|
| |
|
サービスの | |
|
| |
|
サービスのエイリアスを使用する |
Red-mesh のすべての namespace から blue-mesh へ ratings という名前のサービスをエクスポートします。
すべてのサービスを west-data-center namespace から green-mesh にエクスポートします。
1.18.11.1. ExportedServiceSet の作成 リンクのコピーリンクがクリップボードにコピーされました!
ExportedServiceSet
リソースを作成し、メッシュピアで利用可能なサービスを明示的に宣言します。
サービスは <export-name>.<export-namespace>.svc.<ServiceMeshPeer.name>-exports.local
としてエクスポートされ、ターゲットサービスに自動的にルーティングされます。これは、エクスポートメッシュでエクスポートされたサービスで認識される名前です。Ingress ゲートウェイが宛先がこの名前の要求を受信すると、エクスポートされる実際のサービスにルーティングされます。たとえば、ratings.red-mesh-bookinfo
という名前のサービスが ratings.bookinfo
として green-mesh
にエクスポートされると、 サービスは ratings.bookinfo.svc.green-mesh-exports.local
という名前でエクスポートされ、そのホスト名の ingress ゲートウェイが受信するトラフィックは ratings.red-mesh-bookinfo
サービスにルーティングされます。
前提条件
-
クラスターおよび
ServiceMeshControlPlane
がメッシュフェデレーション用に設定されている。 -
cluster-admin
ロールを持つアカウントがある。
サービスがまだ存在していない場合でも、エクスポート用にサービスを設定できます。ExportedServiceSet で指定された値に一致するサービスがデプロイされ、自動的にエクスポートされます。
CLI からの手順
以下の手順に従って、コマンドラインから ExportedServiceSet
を作成します。
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform CLI にログインします。以下のコマンドを入力します。次に、プロンプトが表示されたら、ユーザー名とパスワードを入力します。oc login --username=<NAMEOFUSER> <API token> https://<HOSTNAME>:6443
$ oc login --username=<NAMEOFUSER> <API token> https://<HOSTNAME>:6443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Service Mesh コントロールプレーンをインストールしたプロジェクト (例:
red-mesh-system
) に切り替えます。oc project red-mesh-system
$ oc project red-mesh-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例に基づいて、
ExportedServiceSet
ファイルを作成します。ここでは、red-mesh
がサービスをgreen-mesh
にエクスポートします。red-mesh から green-mesh への ExportedServiceSet リソースの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、red-mesh-system namespace に
ExportedServiceSet
リソースをアップロードおよび作成します。oc create -n <ControlPlaneNamespace> -f <ExportedServiceSet.yaml>
$ oc create -n <ControlPlaneNamespace> -f <ExportedServiceSet.yaml>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc create -n red-mesh-system -f export-to-green-mesh.yaml
$ oc create -n red-mesh-system -f export-to-green-mesh.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
フェデレーションメッシュのメッシュピアごとに、必要に応じて追加の
ExportedServiceSets
を作成します。 red-mesh
からエクスポートしてgreen-mesh
に共有したサービスを検証するには、以下のコマンドを実行します。oc get exportedserviceset <PeerMeshExportedTo> -o yaml
$ oc get exportedserviceset <PeerMeshExportedTo> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc get exportedserviceset green-mesh -o yaml
$ oc get exportedserviceset green-mesh -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、red-mesh が green-mesh と共有するためにエクスポートしたサービスを検証します。
oc get exportedserviceset <PeerMeshExportedTo> -o yaml
$ oc get exportedserviceset <PeerMeshExportedTo> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc -n red-mesh-system get exportedserviceset green-mesh -o yaml
$ oc -n red-mesh-system get exportedserviceset green-mesh -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow red メッシュからエクスポートして Green メッシュに共有したサービスの検証例。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow status.exportedServices
配列では、現在エクスポートされているサービス (これらのサービスはExportedServiceSet オブジェクト
のエクスポートルールに一致) を一覧表示します。配列の各エントリーは、エクスポートされたサービスの名前と、エクスポートされたローカルサービスの詳細を示します。エクスポート予定のサービスがない場合には、Service オブジェクトが存在すること、その名前またはラベルが
ExportedServiceSet
オブジェクトで定義されるexportRules
と一致すること、および Service オブジェクトの namespace がServiceMeshMemberRoll
またはServiceMeshMember
オブジェクトを使用してサービスメッシュのメンバーとして設定されることを確認します。