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.12. サービスのフェデレーションメッシュへのインポート
サービスをインポートすると、別のメッシュからエクスポートされたサービスの内、サービスメッシュ内でアクセスできるものを明示的に指定できます。
ImportedServiceSet
リソースを使用して、インポートするサービスを選択します。メッシュピアによってエクスポートされ、明示的にインポートされるサービスのみがメッシュで利用できます。明示的にインポートしない場合には、サービスは、メッシュ内で利用できません。
- サービスは、namespace または名前別に選択できます。
- namespace にエクスポートされたすべてのサービスをインポートするなど、ワイルドカードを使用してサービスを選択できます。
- メッシュにグローバルであるか、特定のメンバーの namespace の範囲内にあるラベルセレクターを使用してエクスポートするサービスを選択できます。
-
エイリアスを使用してサービスをインポートできます。たとえば、
custom-ns/bar
サービスをother-mesh/bar
としてインポートできます。 -
カスタムドメイン接尾辞を指定できます。これは、
bar.other-mesh.imported.local
など、インポートされたサービスのname.namespace
に、完全修飾ドメイン名として追加されます。
以下の例は、red-mesh
でエクスポートされたサービスをインポートする green-mesh
の例です。
ImportedServiceSet の例
パラメーター | 説明 | 値 |
---|---|---|
metadata: name:
| サービスをフェデレーションメッシュにエクスポートした ServiceMeshPeer の名前。 | |
metadata: namespace:
| ServiceMeshPeer リソース (メッシュシステム namespace) を含む namespace の名前。 | |
spec: importRules: - type:
| サービスのインポートを管理するルールのタイプ。サービスで最初に一致するルールがインポートに使用されます。 |
|
|
| |
spec: importRules: - type: NameSelector importAsLocal:
|
リモートエンドポイントをローカルサービスで集約するには、 |
|
|
サービスの |
red-mesh から blue-mesh への "bookinfo/ratings" サービスのインポート
Red-mesh の west-data-center namespace からすべてのサービスを green-mesh にインポートします。これらのサービスは、<name>.west-data-center.svc.red-mesh-imports.local としてアクセスできます。
1.18.12.1. ImportedServiceSet の作成 リンクのコピーリンクがクリップボードにコピーされました!
ImportedServiceSet
リソースを作成し、メッシュにインポートするサービスを明示的に宣言します。
サービスは、<exported-name>.<exported-namespace>.svc.<ServiceMeshPeer.name>.remote
という名前でインポートされます。これは非表示のサービスで、egress ゲートウェイ namespace にのみ表示され、エクスポートされたサービスのホスト名に関連付けられます。このサービスは、ローカルから <export-name>.<export-namespace>.<domainSuffix>
として利用可能になります。ここでは、importAsLocal
が true
に設定されていない限り、domainSuffix
はデフォルトで svc.<ServiceMeshPeer.name>-imports.local
となっています。True の場合には、domainSuffix
は svc.cluster.local
となります。ImportAsLocal
が false
に設定されている場合には、インポートルールのドメイン接尾辞が適用されます。ローカルインポートは、メッシュ内の他のサービスと同様に扱うことができます。これは egress ゲートウェイを介して自動的にルーティングされ、エクスポートされたサービスのリモート名にリダイレクトされます。
前提条件
-
クラスターおよび
ServiceMeshControlPlane
がメッシュフェデレーション用に設定されている。 -
cluster-admin
ロールを持つアカウントがある。
サービスがまだエクスポートされていない場合でも、インポートするように設定できます。ImportedServiceSet で指定された値に一致するサービスがデプロイされてエクスポートされると、これは自動的にインポートされます。
CLI からの手順
この手順に従って、コマンドラインから ImportedServiceSet
を作成します。
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 コントロールプレーンをインストールしたプロジェクト (例:
green-mesh-system
) に切り替えます。oc project green-mesh-system
$ oc project green-mesh-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例に基づいて
ImportedServiceSet
ファイルを作成します。ここでは、green-mesh
が、red-mesh
によって以前にエクスポートされたサービスをインポートします。red-mesh から green-mesh への ImportedServiceSet リソースの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、green-mesh-system namespace に
ImportedServiceSet
リソースをアップロードおよび作成します。oc create -n <ControlPlaneNamespace> -f <ImportedServiceSet.yaml>
$ oc create -n <ControlPlaneNamespace> -f <ImportedServiceSet.yaml>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc create -n green-mesh-system -f import-from-red-mesh.yaml
$ oc create -n green-mesh-system -f import-from-red-mesh.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
フェデレーションメッシュ内のメッシュピアごとに、必要に応じて追加の
ImportedServiceSet
リソースを作成します。 green-mesh
にインポートしたサービスを検証するには、以下のコマンドを実行します。oc get importedserviceset <PeerMeshImportedInto> -o yaml
$ oc get importedserviceset <PeerMeshImportedInto> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc get importedserviceset green-mesh -o yaml
$ oc get importedserviceset green-mesh -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、メッシュにインポートされたサービスを検証します。
oc get importedserviceset <PeerMeshImportedInto> -o yaml
$ oc get importedserviceset <PeerMeshImportedInto> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow red mesh からエクスポートされたサービスが
'green-mesh-system namespace の importedserviceset/red-mesh' オブジェクト
のステータスセクションを使用して、green メッシュにインポートされていることを検証する例:oc -n green-mesh-system get importedserviceset/red-mesh -o yaml
$ oc -n green-mesh-system get importedserviceset/red-mesh -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、
localService
の入力済みフィールドで示されているように、ratings サービスのみがインポートされます。Reviews サービスはインポートできますが、ImportedServiceSet
オブジェクトのimportRules
と一致しないため、現時点ではインポートされません。