Istio

Istio

依据CNCF基金会(Cloud-Native Computing Foundation)的定义,云原生是对在现代的动态环境下(比如云计算的三大场景:公有云、私有云及混合云)可用来构建并运行可扩展应用的技术的总称;服务网格则是云原生技术的典型代表之一,其他技术还包括容器、微服务、不可变基础设施、声明式 API 等。

Istio

Istio 是一个与 Kubernetes 紧密结合的适用于云原生场景的 Service Mesh 形态的用于服务治理的开放平台。任何服务,只要服务间有访问,如果需要对服务间的访问进行管理,就可以使用 Istio。根据 Istio 官方的介绍,服务治理涉及连接(Connect)、安全(Secure)、策略执行(Control)和可观察性(Observe)。

Istio 采用了与 Kubernetes 类似的语法风格。

Kubernetes 本身是支持微服务的架构,在 Pod 中部署微服务很合适,也已经解决了微服务的互访互通问题,但对服务间访问的管理如服务的熔断、限流、动态路由、调用链追踪等都不在 Kubernetes 的能力范围内。那么,如何提供一套从底层的负载部署运行到上层的服务访问治理端到端的解决方案?目前,最完美的答案就是在 Kubernetes 上叠加 Istio 这个好帮手。

Istio、微服务、容器与 Kubernetes 的关系:

工作机制

Istio 的工作机制和架构,分为控制面数据面两部分。可以看到,控制面主要包括 Pilot、Mixer、Citadel 等服务组件;数据面由伴随每个应用程序部署的代理程序 Envoy 组成,执行针对应用程序的治理逻辑。

参考