跳到主要内容

网格服务管控

网格服务管控

提供服务发现和服务治理相能力,包括服务统一管理、查看服务详情、服务监控、日志、网关路由等功能。

服务列表

列表中显示相应项目集群下接入网格的所有服务,支持按不同分布式框架服务分类。

功能(类)名称功能描述
容器服务接入网格自动识别当前项目&集群中部署的k8s service,支持单个或批量接入网格。如有注册中心的服务,需到[注册中心管理]页面配置对应的注册中心。
传统主机服务接入网格首先进行<主机部署>,接入服务所在的主机,安装必要的组件;然后进行<服务配置>,完成主机上的服务接入网格操作。如有注册中心的服务,需到[注册中心管理]页面配置对应的注册中心。
服务列表可以直观查询所有接入网格的服务和当前项目&集群中部署的k8s service,支持按服务名称、状态、是否接入网格、部署方式筛选服务。

操作步骤如下所示。 (1) 用户单击左侧菜单[网格服务管控],进入服务列表页面。 (2) 列表展示项包括:服务名称、状态、接入网格、部署方式、接入网格时间、操作。 (3) 列表中可按状态(全部运行、全部停止、部分运行、健康、不健康)、接入网格(已接入、未接入)、部署方式(容器部署、传统主机部署)进行筛选显示。 (4) 可输入服务名,即按服务名称进行模糊查询。

服务详情

服务详情页面分两部分,上方显示服务基本信息,下方显示服务治理相关功能。

  • 容器部署的服务,点击服务名称进入服务详情页面,展示如下,服务详情、资源监控、实时日志、网关路由等。
  • 传统主机部署的服务,暂不支持资源监控、实时日志、sidecar启动顺序,其它支持。

服务详情页签中:

  • 详细信息:展示部署方式、注册中心名称、注册中心服务名、接入网格时间、Sidecar启动顺序。
    • 当有注册中心的服务接入网格,展示注册中心名称,及此服务在注册中心中的服务名,例nacos,注册中心服务名展示服务名(服务分组名称)
    • 当非注册中心服务接入网格,注册中心名称显示“无”,且不展示注册中心服务名
  • 实例列表:展示实例名称、关联工作负载(类型)、版本、状态、部署集群、部署方式、运行时间。
  • 跨集群实例列表:同名服务部署在同一个项目,不同集群时,都接入网格后,认为是同一个服务,设置的治理策略生效于此服务的所有实例中。服务跨集群部署和治理操作步骤如下:
    • 同一项目授权不同集群,例集群A\B。某provider服务部署在集群A/B。网格服务管控页面切换项目&集群A,将此服务接入网格;切换到项目&集群B,也将此服务接入网格。
    • 然后为此服务设置治理策略,在集群A中创建的策略,切换到集群B,也可查看,反之亦然。

资源监控

入口:网格服务详情页的“资源监控”。 支持按容器组、容器筛选查看监控指标,便于发现问题及排查故障,用户可自定义查看时间段,如下图所示。

实时日志

可以筛选容器组、容器查看日志信息。日志查看页面支持全屏显示。

各协议支持治理策略说明

策略类型策略规则HTTPTCPgRPC
网关路由支持HTTP/HTTPS/TCP访问协议,版本路由等支持支持支持
负载均衡随机、轮询、会话保持支持支持支持
mTLS开启加密通信支持支持支持

各治理策略生效规则

各治理策略生效规则:

  1. mTLS,当服务B开启后,会在服务B(envoy)的inBound以及服务A(envoy)的outbound生效
  2. 网关路由,当服务B设置后,会在网格网关ingress gateway的outBound生效

负载均衡

负载均衡配置,即在服务的实例之间支持不同的分配调度算法,包括随机、轮询、会话保持(粘性)处理,以适应服务实例调度的不同场景;会话保持,即提供服务调用的粘性处理。

  • 支持随机分配后端实例。
  • 支持轮询分配后端实例。
  • 支持会话保持(Soft session affinity)模式分配后端实例。服务根据HTTP Header内容、HTTP Cookie内容或源IP获取哈希进行不同需求场景的粘性会话保持,
    • Header时,支持配置key值,以确保筛选出要会话保持的请求对象。
    • Cookie时,支持配置cookie名称,以确保筛选出要会话保持的请求对象。
    • 某一目标的会话保持,会因为负载均衡池中的节点数量的变化而被重置。

(1) 用户登录服务网格平台,进入[服务网格/网格服务管控]页面。找到对应的服务,点击服务名称,进入服务详情页面。 (2) 切换至“网关路由”页签,单击“编辑”按钮,如下图所示。

(3) 配置对应的负载均衡算法,配置完成后,单击<确定>按钮,负载均衡算法配置完成。

网关路由

路由规则支持外部通过域名到服务的访问,并将南北调用流量按照业务需求分配到不同服务或不同服务版本。

实现原理: 主要基于Istio的VirtualService进行控制实现,去匹配header、uri、parameter等信息来决定流量的导流方向。自定义设置 网格入口网关,通过配置网关、域名与服务端绑定关系,实现不同服务通过网格入口网关,被(集群)外部调用访问。

前提条件:

  • 已容器部署sleep和springboot-demo服务,并接入网格。
  • 已成功部署业务需要的多个网格入口网关。
  • 如需暴露HTTPS协议对外访问,需先导入证书。

创建路由规则

操作步骤如下所示: (1) 进入[服务网格/网格服务管控]页面,选择目标服务,进入其详情页面,点击“网关路由”页签,列表展示此服务创建的路由规则,包括路由名称、入口网关、访问协议、路由条件、域名、证书名称、更新时间和操作(编辑、删除);并支持按路由名称进行查询。 (2) 点击“添加路由”,进入路由规则配置页面,输入路由名称(必填)、描述、选择网格网关、选择访问协议、域名、路由条件等。

a. 路由名称:3~60位小写字母、数字或中划线组成,以字母开头,字母或者数字结尾。 b. 网格网关:即网格的入口网关。当网关状态为部署中、删除中、异常时,网关置灰不可选择。此时联系管理员检查网关信息。 c. 访问协议:支持HTTP、HTTPS、TCP三种 d. 域名:输入合法域名,支持英文字母、数字、中划线-和.,可添加多个 e. 证书:选择HTTPS后,选择证书(必选);选择TCP后,选择证书(可选) f. 路由条件:根据选择的服务协议类型,展示不同的路由条件。HTTP/HTTPS协议支持按header、uri、parameter规则进行匹配,匹配方式支持前缀匹配、完全匹配、正则匹配

g. TCP协议支持端口映射匹配规则;用户可以根据实际业务需要配置多条路由条件。

(3) 路由规则配置完成后,单击<确定>按钮,路由规则添加成功。 (4) 选择集群外一台主机,在C:\Windows\System32\drivers\etc\hosts文件中添加解析:172.22.99.238 abc.com(172.22.99.238是创建路由中的“网格网关地址”,abc.com配置的路由域名)。 (5) 浏览器中使用配置的域名:http://abc.com/sayHello?msg=200 访问springboot-demo。

说明
  • 目前同一服务仅支持在同一个网格网关暴露一个TCP协议的端口。
  • 访问协议是HTTPS时,相同的网格网关和域名,只能关联一个证书。
  • 访问协议是TCP时,相同的网关、域名和映射端口,只能关联一个证书。
  • 访问协议是TCP时,相同的网关,映射端口不能重复。
  • 若为传统主机服务,路由条件的转发端口版本为所有版本。

修改路由规则

操作步骤如下所示。 (1) 进入[服务网格/网格服务管控]页面。 (2) 找到要编辑路由规则的网格服务,点击服务名称,进入服务详情页面,切换至网关路由tab。 (3) 单击对应路由规则的<编辑>按钮,进入路由规则编辑页面。 (4) 除路由名称不允许修改以外,其他描述、网格网关、域名、路由条件等可以进行修改。 (5) 编辑完成后,单击< 确定>按钮完成编辑。

删除路由规则

操作步骤如下所示。 (1) 进入[服务网格/网格服务管控]页面。 (2) 找到要删除路由规则的网格服务,点击服务名称,进入服务详情页面,切换至网关路由tab。 (3) 在路由规则列表页面找到需要删除的路由规则,列表的最右侧操作列点击<删除>按钮。 (4) 弹出二次确认弹框,点击「确定」按钮完成删除。删除路由之后,则对应路由规则立即失效,无法再通过之前配置的域名访问到后端服务。

安全访问控制

开启/关闭mTLS认证

  • 默认项目内服务是关闭mTLS认证的,需要开启的服务可开启此认证。
  • 所有网格服务mTLS支持开启/关闭。开启mTLS,服务仅会通过基于TLS建立的安全信道通信;关闭mTLS,服务之间通过明文通信,默认关闭;此功能网格服务级生效。
  • 当网格内跨集群调用时,被调服务需开启mTLS认证,方可调用成功。
  • 传统主机部署的服务连接集群内容器部署的服务,要求集群内的被请求的服务必须开启mTLS,否则Istio不会给传统主机下发eds信息。反之,无限制。

开启mTLS的操作步骤如下所示: (1) 进入[服务网格/网格服务管控]页面。找到对应的服务,点击服务名称,进入服务详情页面的“安全访问控制”页签。 (2) 找到mTLS设置,默认开关是关闭的,点击弹框提示开启,确定后,开关为开启状态。