2.14.3. サービスエントリーについて
サービスエントリーは、Red Hat OpenShift Service Mesh が内部的に維持するサービスレジストリーにエントリーを追加するものです。サービスエントリーを追加すると、Envoy プロキシーにより、メッシュ内のサービスであるかのようにトラフィックがサービスに送信されます。サービスエントリーを使用すると、以下が可能になります。
- Service Mesh 外で実行されるサービスのトラフィックを管理します。
- Web から消費される API やレガシーインフラストラクチャーのサービスへのトラフィックなど、外部宛先のトラフィックをリダイレクトし、転送します。
- 外部宛先の再試行、タイムアウト、およびフォールトインジェクションポリシーを定義します。
- 仮想マシンをメッシュに追加して、仮想マシン (VM) でメッシュサービスを実行します。
Kubernetes 上にマルチクラスター Red Hat OpenShift Service Mesh メッシュを設定するには、別のクラスターからサービスをメッシュに追加してください。
サービスエントリーの例
次の例は、外部依存関係 ext-resource を Red Hat OpenShift Service Mesh のサービスレジストリーに追加する mesh-external サービスエントリーです。
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: svc-entry
spec:
hosts:
- ext-svc.example.com
ports:
- number: 443
name: https
protocol: HTTPS
location: MESH_EXTERNAL
resolution: DNS
hosts フィールドを使用して外部リソースを指定します。これを完全に修飾することも、ワイルドカードの接頭辞が付けられたドメイン名を使用することもできます。
仮想サービスおよび宛先ルールを設定して、メッシュ内の他のサービスのトラフィックを設定するのと同じように、サービスエントリーへのトラフィックを制御できます。たとえば、以下の宛先ルールでは、トラフィックルートを、サービスエントリーを使用して設定される ext-svc.example.com 外部サービスへの接続のセキュリティーを保護するために相互 TLS を使用するように設定します。
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: ext-res-dr
spec:
host: ext-svc.example.com
trafficPolicy:
tls:
mode: MUTUAL
clientCertificate: /etc/certs/myclientcert.pem
privateKey: /etc/certs/client_private_key.pem
caCertificates: /etc/certs/rootcacerts.pem