Fork me on GitHub

  【译】使用Weave Scope探索微服务通信和服务网格(OpenShift和Istio)

  Using Weave Scope to explore Microservices Communication and Service Mesh (OpenShift and Istio)

Posted by Kaelzhang on January 15, 2018

【译】使用Weave Scope探索微服务通信和服务网格(OpenShift和Istio)

本文是我给service mesh社区翻译的一篇文章。 原文地址:https://holisticsecurity.io/2018/01/12/using-weave-scope-to-explore-microservices-communication-and-service-mesh-openshift-and-istio/?utm_source=tuicool&utm_medium=referral

如果你正从事ESB(企业服务总线)、消息代理、BPMS(业务流程管理套件)、SOA(面向服务架构)或微服务的工作,你会注意到你正在使用不同的方式解决应用同样的一些问题,因为这些应用都是不同类型的分布式应用。这些问题包括:

  • 用户管理、认证和授权
  • 日志、调试、监控及告警
  • 集群、高可用、负载均衡

什么是服务网格?

服务网格是另一种分布式应用,其中服务/微服务/API一直相互连接。

服务网格在容器化和编排平台

通常使用Kubernetes托管和编排的多个容器来部署基于微服务和(或)API的服务网格。 在这种情况下,我们需要面临新的挑战如:脆弱的基础设施,不可信网络,网络分段或采用新的方法来测试,监控,部署,运维等。我们称之为DevOps。

容器部署模式

与EIP(企业集成模式)和软件设计模式一样,在容器平台中部署服务网格也具有模式。谷歌、微软、Netflix等推荐使用一些模式来解决上述问题。

例如,Google很好地阐述了三种模式:

  • 边车模式
  • 大使模式
  • 适配器模式

他们都支持基于容器的服务网格的构建。 欲了解更多详情,请阅读 基于容器的分布式系统设计模式

什么是Istio?

以下摘自Istio.io

Istio是一个用来连接、管理和保护微服务的开放平台。Istio支持管理微服务之间的流量,执行访问策略以及汇总遥测数据,而无需更改微服务代码。Istio提供:

  • HTTP,gRPC,WebSocket及TCP流量的自动负载平衡
  • 通过富路由规则、重试、故障转移及注入,对流量行为进行细粒度控制。
  • 可拔插的策略层和配置API,支持访问控制、限流和配额的。
  • 自动的指标、日志及集群内所有流量的跟踪,包括集群出入口。
  • 通过群集内服务间强大的身份断言来保证服务到服务的身份验证。

Istio架构

为什么使用Istio?

以下摘自Istio.io

在从单体应用程序向分布式微服务架构的转型过程中,开发人员和运维人员面临诸多挑战, 使用Istio可以解决这些问题。术语服务网格(Service Mesh)通常用于描述构成这些应用程 序的微服务网络以及它们之间的交互。随着规模和复杂性的增长,服务网格越来越难以理解 和管理。它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更加复杂 的运维需求,例如A/B测试、金丝雀发布、限流、访问控制和端到端认证等。

Istio提供了一个完整的解决方案,通过为整个服务网格提供行为洞察和操作控制来满足微服务 应用程序的多样化需求。它在服务网络中统一提供了许多关键功能:

流量管理。控制服务之间的流量和API调用的流向,使得调用更可靠,并使网络在恶劣情 况下更加健壮。

可观察性。了解服务之间的依赖关系,以及它们之间流量的本质和流向,从而提供快速 识别问题的能力。

策略执行。将组织策略应用于服务之间的互动,确保访问策略得以执行,资源在消费者 之间良好分配。策略的更改是通过配置网格而不是修改应用程序代码。

服务身份和安全。为网格中的服务提供可验证身份,并提供保护服务流量的能力,使其可以在不同可信度的网络上流转。

获取基于容器的服务网格Istio

我已经创建了3个Ansible角色,通过使用Minishift,Weave Scope(https://github.com/weaveworks/scope),Istio和BookInfo应用程序(容器上的API和微服务)轻松获得最小化的OpenShift集群,以了解 我们必须面对的挑战。 3个Ansible的角色是:

  1. Minishift Ansible角色 使用Minishift在虚拟机中获得OpenShift集群
  2. Weave Scope Ansible角色 在本地运行的OpenShift中部署Weave Scope应用
  3. Istio Ansible角色 在本地运行的OpenShift中,部署和配置Istio,部署BookInfo应用并注入边车代理(Envoy代理)

我还创建了一些示例,以便你能拥有一个可测试环境,并能快速尝试所有这些内容。

Weave Scope应用在这里扮演一个重要角色,它使我们能够轻松监控,可视,故障排除和管理整个基于容器的服务网格。

一旦完成分步指南,你将看到:

希望本文对你有帮助。


  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!