青蛙小白

Istio学习的开始(四):Istio的架构

Istio中的官方文档中对Istio的架构做了介绍。下图是文档中的Istio架构示意图: istio-arch.jpg Istio在逻辑上分为数据平面(data plane)和控制平面(control plane)两块。 控制平面 控制平面对Service Mesh具有强大的控制力。Istio的控制平面由包括以下组件: Pilot(领航员):为envoy sidecar提供服务发现,为流量管理功能实现了灵活的路由(如A/B测试,金丝雀发布)和弹性(如:超时,重试,熔断等)。它将高级别的路由规则转换为envoy特定的配置并在运行时将配置传播到sidecar中。 Mixer(混合器):Mixer是一个平台独立的组件,它的职责是在ServiceMesh上实施访问控制和使用策略(usage policies),并从envoy代理和其它服务中收集自动测量数据。 Istio-Auth:使用强大的健服务之间以及服务和终端用户间的认证。可以将ServiceMesh中未加密的流量升级,并为运维人员提供基于服务标识而非网络控制的策略管理能力。 数据平面 Envoy是Istio的数据平面。Envoy早已经是CNCF的ServiceMesh项目之一,功能强大和稳定。Envoy适合使用sidecar模式部署为服务的Proxy。Envoy使用C++开发在性能和资源消耗上优于CNCF的另一个ServiceMesh项目linkerd。Envoy接管服务网格中所有服务的进出流量。Istio实际上利用了很多Envoy已有的特性,例如:服务的动态发现、负载均衡、TSL终止、HTTP/2和gRPC代理、断路器、健康检查、流量拆分、故障注入以及丰富的度量指标。

Istio学习的开始(一):在Kubernetes安装Istio

Istio是由Google, IBM, Lyft开源的Service Mesh项目。 Istio的Introduction中说它是一个用来连接、管理和保护微服务的开放平台。 因为是个人学习Istio的开篇,对Istio概念的第一印象先停留在前面一句话上,本篇的目标是先在我们的k8s集群上部署Istio。 安装Istio 注意Istio还在快速发展,这里安装的是最新的Istio 0.2.9,后续的版本极有可能发生变化,本来也是学习和体验这里就不废话了。 当前的Istio要求在Kubernetes 1.7.4及以上版本,要求k8s集群开启RBAC,另外kubectl的版本也需要是1.7以后的版本。