官方文档:https://docs.openshift.com/container-platform/3.11/servicemesh-install/servicemesh-install.html
https://istio.io/zh/docs/concepts/traffic-management/
一、Openshift Service Mesh 产品总览
部署于Openshift 3.11上的release版本的Service Mesh只是一个技术预览版本,红帽并不推荐将当前版本部署在生产环境使用。
技术预览版本Red Hat Openshift Service Mesh仅仅提供了一个服务网格新特性的尝鲜入口,用于用户进行测试并反馈一些部署过程中的问题
Red Hat OpenShift Service Mesh提供了一个平台,用于观察和控制Service Mesh的运行状态,并提供了统一的接口来管理微服务应用的连接、安全和监控。
Red Hat OpenShift Service Mesh基于开源项目--istio。添加了一个与应用一起部署但对应用透明的轻量级网络代理(sidecar),用户不需要修改任何业务代码即可将一个普通的微服务应用转变成一个Cloud Native的、符合Service Mesh标准的微服务应用。你可以通过control plane(控制平面)来配置和管理Service Mesh
- Red Hat OpenShift Service Mesh提供了一种简单的方式来为已部署的微服务增加服务发现、负载均衡、服务间认证、故障恢复、服务运行指标度量、服务监控等特性。Service Mesh也提供了一些复杂的运维功能,包括A/B测试、金丝雀发布、限流、访问控制、端到端的认证。
1.1 Red Hat OpenShift Service Mesh 架构
Red Hat OpenShift Service Mesh逻辑划分为:data plane(数据平面)
和 control plane(控制平面)
data plane是所有部署为sidecard形式的智能代理组成的一个集合,这些代理会拦截和控制Service Mesh中微服务之间所有的 inbound 和 outbound 网络流量。sidecar代理同时会与Mixer通信,上报一些运行时指标数据。
control plane用于管理和配置sidecard的路由流量、配置Mixer来执行策略并收集遥测数据。
以下是组成data plane和control plane的组件:
Envoy proxy
:是data plane的组件,Lyft开源的高性能代理总线,支持动态服务发现、负载均衡、TLS终止、HTTP/2和gPRC代理、健康检查、性能测量等功能。Envoy以sidecar的方式部署在相关的服务的同一个Pod中。Mixer
:是control plane的组件,翻译过来是混音器,Mixer负责在整个Service Mesh中实施访问控制和使用策略(包括授权、限流、配额、认证、请求追踪)并从Envoy代理和其他微服务中收集遥测数据。Pilot
:是control plane的组件,负责在运行时配置Envoy proxy。Pilot为Envoy sidecar提供了服务发现的功能,同时提供了智能路由(如A/B测试、金丝雀部署)、流量管理(超时、重试、熔断)功能。Pliot接收用户指定的高级路由规则配置,转换成Envoy的配置,使这些规则生效。Citadel
:是control plane的组件,负责证书颁发和证书更换,通过内置身份和凭证管理可以提供强大的服务间和最终用户身份验证。可用于升级服务网格中未加密的流量,并为运维人员提供基于服务标识而不是网络控制的强制执行策略的能力。从 0.5 版本开始,Istio 支持基于角色的访问控制,以控制谁可以访问您的服务。