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.10. フェデレーションメッシュへの参加
ServiceMeshPeer リソースを作成して、2 つのメッシュ間のフェデレーションを宣言します。ServiceMeshPeer リソースは、2 つのメッシュ間のフェデレーションを定義し、これを使用してピアメッシュの検出設定、ピアメッシュへのアクセス、および他のメッシュのクライアントの検証に使用される証明書を定義します。
メッシュは 1 対 1 でフェデレーションされるため、ピアの各ペアでは、他のサービスメッシュへのフェデレーション接続を指定する ServiceMeshPeer リソースのペアが必要です。たとえば、red および green という名前の 2 つのメッシュには 2 つの ServiceMeshPeer ファイルが必要です。
-
Red-mesh-system で、Green メッシュの
ServiceMeshPeerを作成します。 -
Green-mesh-system で、Red メッシュの
ServiceMeshPeerを作成します。
red、blue および green という名前の 3 つのメッシュのフェデレーションには 6 つの ServiceMeshPeer ファイルが必要になります。
-
Red-mesh-system で、Green メッシュの
ServiceMeshPeerを作成します。 -
Red-mesh-system で、Blue メッシュの
ServiceMeshPeerを作成します。 -
Green-mesh-system で、Red メッシュの
ServiceMeshPeerを作成します。 -
Green-mesh-system で、Blue メッシュの
ServiceMeshPeerを作成します。 -
Blue-mesh-system で、Red メッシュの
ServiceMeshPeerを作成します。 -
Blue-mesh-system で、Green メッシュの
ServiceMeshPeerを作成します。
ServiceMeshPeer リソースの設定には、以下が含まれます。
- 検出およびサービス要求に使用される他のメッシュの Ingress ゲートウェイのアドレス。
- 指定のピアメッシュとの対話に使用されるローカル ingress および egress ゲートウェイの名前。
- このメッシュへの要求の送信時に他のメッシュで使用されるクライアント ID。
- 他のメッシュで使用される信頼ドメイン。
-
ConfigMapの名前。これには、他のメッシュで使用される信頼ドメインのクライアント証明書の検証に使用するルート証明書が含まれます 。
以下の例では、red-mesh の管理者は green-mesh でフェデレーションを設定します。
Red-mesh の ServiceMeshPeer リソースの例
| パラメーター | 説明 | 値 |
|---|---|---|
metadata: name:
| このリソースがフェデレーションを設定するピアメッシュの名前。 | 文字列 |
metadata: namespace:
| このメッシュのシステム namespace (Service Mesh コントロールプレーンのインストール先)。 | 文字列 |
spec:
remote:
addresses:
| このメッシュからの要求に対応するピアメッシュの Ingress ゲートウェイのパブリックアドレス一覧。 | |
spec:
remote:
discoveryPort:
| アドレスが検出要求を処理するポート。 | デフォルトは 8188 です。 |
spec:
remote:
servicePort:
| アドレスがサービス要求を処理するポート。 | デフォルトは 15443 です。 |
spec:
gateways:
ingress:
name:
|
ピアメッシュからの受信要求に対応するこのメッシュの Ingress の名前。例: | |
spec:
gateways:
egress:
name:
|
ピアメッシュに送信される要求に対応するこのメッシュ上の egress の名前。例: | |
spec:
security:
trustDomain:
| ピアメッシュで使用される信頼ドメイン。 | <peerMeshName>.local |
spec:
security:
clientID:
| このメッシュの呼び出し時にピアメッシュが使用するクライアント ID。 | <peerMeshTrustDomain>/ns/<peerMeshSystem>/sa/<peerMeshEgressGatewayName>-service-account |
spec:
security:
certificateChain:
kind: ConfigMap
name:
|
ピアメッシュがこのメッシュに提示したクライアント証明書の検証に使用されるルート証明書が含まれるリソースの種類 (例: ConfigMap) と名前。証明書が含まれる Config Map エントリーの鍵は | kind: ConfigMap name: <peerMesh>-ca-root-cert |
1.18.10.1. ServiceMeshPeer リソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- 2 つ以上の OpenShift Container Platform 4.6 以降のクラスター。
- クラスターのネットワーク設定が完了している。
- 生の TLS トラフィックをサポートするように、フェデレーションゲートウェイに関連付けられたサービスをサポートするロードバランサーを設定する必要があります。
-
各クラスターには、フェデレーションデプロイをサポートするようにバージョン 2.1
ServiceMeshControlPlaneが設定されている必要があります。 -
cluster-adminロールを持つアカウントがある。
CLI からの手順
以下の手順に従って、コマンドラインから ServiceMeshPeer リソースを作成します。以下の例では、red-mesh が green-mesh のピアリソースを作成しています。
cluster-adminロールを持つユーザーとして OpenShift Container Platform CLI にログインします。以下のコマンドを入力します。次に、プロンプトが表示されたら、ユーザー名とパスワードを入力します。oc login --username=<NAMEOFUSER> <API token> https://<HOSTNAME>:6443
$ oc login --username=<NAMEOFUSER> <API token> https://<HOSTNAME>:6443Copy to Clipboard Copied! Toggle word wrap Toggle overflow コントロールプレーンをインストールしたプロジェクト (例:
red-mesh-system) に切り替えます。oc project red-mesh-system
$ oc project red-mesh-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow フェデレーションする 2 つのメッシュについて以下の例をもとに、
ServiceMeshPeerファイルを作成します。Red-mesh から green-mesh への ServiceMeshPeer リソースのサンプル
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してリソースをデプロイします。ここで、
red-mesh-systemはシステムの namespace に置き換え、servicemeshpeer.yamlには編集したファイルへのフルパスが含まれます。oc create -n red-mesh-system -f servicemeshpeer.yaml
$ oc create -n red-mesh-system -f servicemeshpeer.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow red メッシュと green メッシュ間の接続確立を確認するには、red-mesh-system namespace の green-mesh
ServiceMeshPeerのステータスを調べます。oc -n red-mesh-system get servicemeshpeer green-mesh -o yaml
$ oc -n red-mesh-system get servicemeshpeer green-mesh -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red-mesh と green-mesh 間の ServiceMeshPeer 接続の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow status.discoveryStatus.active.remotesフィールドは、ピアメッシュ (この例では Green メッシュ) が現在のメッシュ (この例では赤のメッシュ) の istiod に接続されていることを示します。status.discoveryStatus.active.watchフィールドは、現在のメッシュの istiod がピアメッシュで istiod に接続されていることを示します。green-mesh-systemでred-meshという名前のservicemeshpeerを確認すると、Green メッシュの観点からの 2 つの同じ接続に関する情報が表示されます。2 つのメッシュ間の接続が確立されていない場合には、
ServiceMeshPeerステータスは、status.discoveryStatus.inactiveフィールドにこれを示します。接続に失敗する理由については、Istiod ログ、ピアの egress トラフィックを処理する egress ゲートウェイのアクセスログ、およびピアメッシュの現在のメッシュの ingress トラフィックを処理する ingress ゲートウェイを調べてください。
たとえば、red メッシュが green メッシュに接続できない場合は、以下のログを確認します。
- red-mesh-system の istiod-red-mesh
- red-mesh-system の Egress-green-mesh
- green-mesh-system の ingress-red-mesh