Istio 项目会往用户的 Pod 里注入 Envoy 容器,用来代理 Pod 的进出流量,这是什么设计模式?

14 篇文章 0 订阅

Istio 项目会往用户的 Pod 里注入 Envoy 容器,用来代理 Pod 的进出流量,这是什么设计模式?
A. 装饰器
B. sidecar
C. 工厂模式
D. 单例

选择B
‌Sidecar模式是一种设计模式,它将应用程序的一部分功能作为单独的进程实现,与主应用程序分离。这种模式通过将公共基础设施相关功能抽象到不同的层,降低了微服务的代码复杂性,实现了多个应用的公共部分与每个应用的自有部分的解耦。Sidecar通常与主应用程序共享相同的生命周期,一起创建和退出,它可以在不修改主应用程序代码的情况下添加多种功能,如负载平衡、服务注册、服务发现、流量管理等。此外,Sidecar模式在微服务架构中特别重要,因为它有助于构建高度可伸缩、安全且便于监控的系统

微服务边车(sidecar)模式
“Sidecar 模式” 是一种微服务架构中常见的模式,它指的是将辅助性质的服务(通常被称为 sidecar)与主要的服务实例部署在一起,以提供一些额外的功能、能力或支持。

在微服务的架构中,一个主要的服务实例可能只负责核心业务逻辑,而与之关联的 sidecar 则负责提供一些辅助功能,例如日志记录、监控、安全性、通信、或其他横切关注点。Sidecar 与主服务实例协同工作,使得主服务更专注于核心功能,同时 sidecar 提供了一种可插拔的方式来添加或修改服务的功能。

以下是 Sidecar 模式的一些特点和优势:

解耦功能: Sidecar 模式有助于将辅助功能与主服务解耦,使得主服务更加单一职责,便于维护和升级。
可插拔性: Sidecar 可以被添加或替换,而无需修改主服务实例的代码。这使得系统更加灵活,能够动态地调整其功能。
横切关注点的处理: Sidecar 可以用于处理横切关注点,如安全性、监控、日志记录等,而不会对主服务的核心逻辑产生直接影响。
统一管理: Sidecar 可以作为一个独立的进程或容器运行,并通过相同的编排和管理工具进行管理,从而简化了整个系统的部署和运维。
透明性: 对于主服务而言,它可能无需关心 Sidecar 的存在,因为 Sidecar 通常通过本地主机或网络与主服务进行通信。
复用和共享: 多个服务实例可以共享同一个 Sidecar 实例,提高了资源的利用率,并减少了冗余的功能组件。
在容器编排系统(如 Kubernetes)中,Sidecar 模式通常通过共享同一 Pod 来实现,其中主服务和 Sidecar 共享相同的网络命名空间和存储卷。这种方式使得它们能够更加紧密地协同工作。

总体而言,Sidecar 模式是微服务架构中的一种灵活而强大的模式,使得系统更容易扩展、维护和管理。

Sidecar有哪些实现
Sidecar 模式的实现通常涉及使用特定的技术或工具,这些工具可以作为辅助性质的服务与主服务实例一起部署。以下是一些常见的 Sidecar 模式实现:

Istio:
Istio 是一个服务网格框架,它通过在应用程序的每个服务实例旁边部署一个 Envoy Sidecar 来实现。Envoy 是一个高性能的代理和通信总线,负责处理服务之间的网络通信、负载均衡、故障恢复等任务。
Linkerd:
Linkerd 是另一个服务网格实现,通过在每个服务实例旁边部署一个代理(Linkerd Proxy)来实现 Sidecar 模式。Linkerd 提供了负载均衡、故障注入、监控和可观察性等功能。
Consul Connect:
Consul Connect 是 HashiCorp 公司的 Consul 服务发现和配置管理工具的一部分。它通过在每个服务实例旁边运行一个代理(sidecar)来提供安全的服务到服务通信。
NGINX:
NGINX 是一种高性能的反向代理服务器,也可以作为 Sidecar 部署在每个服务实例旁边。通过配置 NGINX 作为反向代理,可以实现负载均衡、安全性和其他网络功能。
Envoy Proxy:
Envoy 是一个开源的边缘和服务代理,它被广泛用于服务网格和 Sidecar 模式的实现。多个服务网格项目,包括 Istio 和 Maesh,使用 Envoy 作为其 Sidecar 实现。
Kuma:
Kuma 是一个用于连接、安全和监控微服务的开源服务网格。它支持 Sidecar 模式,其中每个微服务都有一个 Kuma Sidecar 与之关联,处理服务之间的通信。
这些工具和框架提供了在微服务架构中实现 Sidecar 模式的基础设施,并为开发者提供了一种将辅助功能添加到服务实例中的方式。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值