应用服务网格

服务条目管理

2025-08-13 07:15:06

在服务网格内部服务需要访问的外部的场景下,可以使用服务条目(ServiceEntry)定义外部服务的访问信息,这样网格内的服务也可以访问外部的服务。服务条目描述了服务的域名、协议、端口、节点列表等信息。

定义服务条目时,需要注意端口不要与sidecar的端口冲突,下面的表格梳理了当前sidecar占用的端口:

端口

协议

说明

15000

TCP

sidecar管理端口

15001

TCP

outbound代理端口

15004

HTTP

debug端口

15006

TCP

inbound代理端口

15008

TCP

HBONE mTLS隧道端口

15009

H2C

HBONE安全网络端口

15020

HTTP

合并的指标采集端口

15021

HTTP

健康检查端口

15053

DNS

DNS端口

15090

HTTP

envoy指标采集端口

18181

HTTP

opa策略管理端口

18282

TCP

opa sidecar健康检查端口

19191

GRPC

opa授权检查端口

通过集群与工作负载菜单下的服务条目可以管理网格内的外部服务;当前提供了三种模板用于创建服务条目,如下图:

访问网格外部的www.ctyun.cn服务可以按照下面的配置:

apiVersion: networking.istio.io/v1beta1

kind: ServiceEntry

metadata:

  name: external-svc-https # Name for this ServiceEntry.

spec:

  hosts: # External services that mesh can access.

  - www.ctyun.cn

  location: MESH_EXTERNAL # Location can be MEST_EXTERNAL or MESH_INTERNAL.

  ports: #

  - number: 443

    name: https

    protocol: TLS # Access external services over TLS.

  resolution: DNS # Resolve external services' IP address by DNS.

 

如果我们在虚机上部署了一组MongoDB的实例,但是并没有注册到网格上,可以按照如下的配置在网格内访问MongoDB:

apiVersion: networking.istio.io/v1beta1

kind: ServiceEntry

metadata:

  name: external-svc-mongocluster # Name for this ServiceEntry.

spec:

  hosts:

  - mymongodb.somedomain # Not used.

  addresses:

  - 192.192.192.192/24 # VIPs

  ports:

  - number: 27018

    name: mongodb

    protocol: MONGO

  location: MESH_ EXTERNAL # Location can be MEST_EXTERNAL or MESH_INTERNAL.

  resolution: STATIC # Access service by endpoints' static IP address.

  endpoints:

  - address: 2.2.2.2

  - address: 3.3.3.3

注意:

服务条目里面的端口协议必须是HTTP|HTTPS|GRPC|HTTP2|MONGO|TCP|TLS里面的值。


sognMORKxmiL