服务条目用于将网格外的服务添加到网格内部维护的服务注册表中,描述了服务的域名、端口、协议、端点等信息,以便网格内的服务可以访问到网格外服务。本文介绍如何创建、修改和删除服务条目。
注意事项
- 为了避免与Sidecar的端口发生冲突,创建服务条目时请勿使用以下Envoy端口:
端口 协议 使用者 描述 15000 TCP Envoy Envoy管理端口。 15001 TCP Envoy Envoy出口流量的端口。 15006 TCP Envoy Envoy入口流量的端口。 15020 HTTP Envoy 合并来自Istio代理、Envoy和应用程序的Prometheus遥测的端口。 15021 HTTP Envoy 健康检查端口。 15090 HTTP Envoy Envoy Prometheus遥测的端口。 - 在服务条目中命名端口时必须遵循以下规则:
协议 端口名称 带后缀的端口名称 HTTP http http-<后缀> HTTP2 http2 http2-<后缀> HTTPS https https-<后缀> TLS tls tls-<后缀> gRPC grpc grpc-<后缀> TCP tcp tcp-<后缀> UDP UDP udp-<后缀> Mongo mongo mongo-<后缀> MySQL mysql mysql-<后缀> Redis redis redis-<后缀> - 使用HTTP、HTTPS、TLS和TCP协议时请注意以下事项:
- 使用HTTP、HTTPS和TLS协议时,必须在服务条目中指定主机。
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: aliyun spec: hosts: - www.aliyun.com ports: - number: 443 name: https protocol: HTTPS resolution: DNS location: MESH_EXTERNAL
- 使用TCP协议时,必须在服务条目中指定IP范围。
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: mysql-external spec: hosts: - mysql-01.foo.bar addresses: - 10.0.0.5/32 - 10.0.0.6/32 ports: - name: tcp number: 3306 protocol: tcp location: MESH_EXTERNAL
- 使用HTTP、HTTPS和TLS协议时,必须在服务条目中指定主机。
- 如果您有多个外部服务使用TCP协议共享同一个端口,请区分服务的IP地址。
- 外部服务1
apiVersion: networking.istio.io/v1beta1 kind: ServiceEntry metadata: name: external-svc-1 namespace: default spec: hosts: - fqdna.fqdn.com addresses: - 10.0.0.0/8 location: MESH_EXTERNAL ports: - name: TCP number: 3306 protocol: TCP resolution: DNS
- 外部服务2
apiVersion: networking.istio.io/v1beta1 kind: ServiceEntry metadata: name: external-svc-2 namespace: default spec: hosts: - fqdnb.fqdn.com addresses: - 10.1.0.0/8 location: MESH_EXTERNAL ports: - name: TCP number: 3306 protocol: TCP resolution: DNS
- 外部服务1
- 默认情况下,使用服务条目添加到网格的任何外部服务将可用于所有命名空间。如果您不希望其他istio-proxy访问外部服务,您可以在服务条目中添加exportTo参数,设置值为".",从而将外部服务的访问范围限定为仅创建服务条目的命名空间。
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: aliyun spec: hosts: - www.aliyun.com exportTo: - "." ports: - number: 443 name: https protocol: HTTPS resolution: DNS location: MESH_EXTERNAL
- 建议使用DNS解析。DNS解析将忽略原始目标IP地址并将流量定向到选定的主机,然后执行DNS查询以获取主机的IP地址。
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: aliyun spec: hosts: - '*.aliyun.com' addresses: - 192.168.0.0/16 - 172.16.0.0/16 location: MESH_EXTERNAL ports: - number: 443 protocol: https name: https resolution: DNS
resolution:设置参数值为DNS,表示使用DNS解析;设置参数值为NONE,表示不使用DNS解析。
创建服务条目
相关操作
修改服务条目
在网格详情页面左侧导航栏选择服务条目页面单击目标服务条目右侧操作列下的查看YAML,在编辑对话框修改服务条目配置信息,然后单击确定。
,在删除服务条目
在网格详情页面左侧导航栏选择服务条目页面单击目标服务条目右侧操作列下的删除,在确认对话框单击确定。
,在