网格服务管控
网格服务管控
提供服务发现和服务治理相能力,包括服务统一管理、查看服务详情、服务监控、日志、网关路由等功能。
服务列表
列表中显示相应项目集群下接入网格的所有服务,支持按不同分布式框架服务分类。
功能(类)名称 | 功能描述 |
---|---|
容器服务接入网格 | 自动识别当前项目&集群中部署的k8s service,支持单个或批量接入网格。如有注册中心的服务,需到[注册中心管理]页面配置对应的注册中心。 |
传统主机服务接入网格 | 首先进行<主机部署>,接入服务所在的主机,安装必要的组件;然后进行<服务配置>,完成主机上的服务接入网格操作。如有注册中心的服务,需到[注册中心管理]页面配置对应的注册中心。 |
服务列表 | 可以直观查询所有接入网格的服务和当前项目&集群中部署的k8s service,支持按服务名称、状态、是否接入网格、部署方式筛选服务。 |
操作步骤如下所示。 (1) 用户单击左侧菜单[网格服务管控],进入服务列表页面。 (2) 列表展示项包括:服务名称、状态、接入网格、部署方式、接入网格时间、操作。 (3) 列表中可按状态(全部运行、全部停止、部分运行、健康、不健康)、接入网格(已接入、未接入)、部署方式(容器部署、传统主机部署)进行筛选显示。 (4) 可输入服务名,即按服务名称进行模糊查询。
服务详情
服务详情页面分两部分,上方显示服务基本信息,下方显示服务治理相关功能。
- 容器部署的服务,点击服务名称进入服务详情页面,展示如下,服务详情、资源监控、实时日志、网关路由等。
- 传统主机部署的服务,暂不支持资源监控、实时日志、sidecar启动顺序,其它支持。
服务详情页签中:
- 详细信息:展示部署方式、注册中心名称、注册中心服务名、接入网格时间、Sidecar启动顺序。
- 当有注册中心的服务接入网格,展示注册中心名称,及此服务在注册中心中的服务名,例nacos,注册中心服务名展示服务名(服务分组名称)
- 当非注册中心服务接入网格,注册中心名称显示“无”,且不展示注册中心服务名
- 实例列表:展示实例名称、关联工作负载(类型)、版本、状态、部署集群、部署方式、运行时间。
- 跨集群实例列表:同名服务部署在同一个项目,不同集群时,都接入网格后,认为是同一个服务,设置的治理策略生效于此服务的所有实例中。服务跨集群部署和治理操作步骤如下:
- 同一项目授权不同集群,例集群A\B。某provider服务部署在集群A/B。网格服务管控页面切换项目&集群A,将此服务接入网格;切换到项目&集群B,也将此服务接入网格。
- 然后为此服务设置治理策略,在集群A中创建的策略,切换到集群B,也可查看,反之亦然。
资源监控
入口:网格服务详情页的“资源监控”。 支持按容器组、容器筛选查看监控指标,便于发现问题及排查故障,用户可自定义查看时间段,如下图所示。
实时日志
可以筛选容器组、容器查看日志信息。日志查看页面支持全屏显示。
各协议支持治理策略说明
策略类型 | 策略规则 | HTTP | TCP | gRPC |
---|---|---|---|---|
网关路由 | 支持HTTP/HTTPS/TCP访问协议,版本路由等 | 支持 | 支持 | 支持 |
负载均衡 | 随机、轮询、会话保持 | 支持 | 支持 | 支持 |
mTLS | 开启加密通信 | 支持 | 支持 | 支持 |
各治理策略生效规则
各治理策略生效规则:
- mTLS,当服务B开启后,会在服务B(envoy)的inBound以及服务A(envoy)的outbound生效
- 网关路由,当服务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设置,默认开关是关闭的,点击弹框提示开启,确定后,开关为开启状态。