什么是 Sidecar 模式

将应用程序的功能划分为单独的进程,即 Sidecar 模式。Sidecar 译为摩托车的边车,用到软件架构中,Sidecar 模式指在原来的业务逻辑上再新加一个抽象层。

Sidecar 模式是一种更具动态性的方法,其作为一种模式并不是 Kubernetes 的正式约定。它将应用程序的功能划分为单独的进程,运行在同一个 pod 中,Sidecar 模式允许在应用程序旁边添加功能,而无需修改应用程序代码。

Sidecar 示意图

Sidecar 的优势

Sidecar 部署方式中,每个应用的容器旁都会部署一个或者多个伴生容器,多个容器共享存储、网络等资源。具体优势有:

  • 将不同的功能抽象到不同的层来降低微服务的代码复杂性。
  • 每个 Sidecar 可以独立升级更新。
  • 分离业务无关功能(例如:配置文件获取),提升代码重用度。
  • 不再需要编写相同的第三方组件配置文件和代码,能够降低代码重复度。

Sidecar 如何工作

本文使用 serivce mesh 做为示例。来自服务的所有传入和传出网络流量均通过 Sidecar 代理,完成服务之间的流量管理、限流、熔断等策略的执行。它将网络依赖抽象成 Sidecar,而服务对于网络是无感知的,只知道所附加的 Sidecar 代理。

Sidecar 如何注入

  • 手动注入,通过手工修改工作负载的方式,添加 Sidecar 的配置。
  kind: DeploymentapiVersion: apps/v1metadata:name: keeperspec:template:spec:volumes:- name: configemptyDir: {}initContainers:- name: installimage: 'dockerhub.qingcloud.com/lowcode/infantry:v20211228edfdfd'resources: {}volumeMounts:- name: configmountPath: /configscontainers:- name: containerimage: 'dockerhub.qingcloud.com/lowcode/keeper:alpha'volumeMounts:- name: configreadOnly: truemountPath: /configs- name: watchdogimage: 'dockerhub.qingcloud.com/lowcode/infantry:v202202081416'command:- /root/infantryvolumeMounts:- name: configmountPath: /configs
  • 基于 Kubernetes 的 突变 webhook 入驻控制器mutating webhook addmission controller 的自动 Sidecar 注入。
  kind: DeploymentapiVersion: apps/v1metadata:name: keepernamespace: lowcodeannotations:servicemesh.kubesphere.io/enabled: 'true'spec:template:metadata:annotations:sidecar.istio.io/inject: 'true'spec:containers:- name: containerimage: 'dockerhub.qingcloud.com/lowcode/keeper:alpha'restartPolicy: Always

经典使用案例

  • istio:使用领先的服务网格简化可观察性、流量管理、安全性和策略。
  • dapr:用于构建可移植且可靠的微服务的 API。

基本术语

容器(Container)

每个运行的容器都是可重复的,包含依赖环境在内的标准,意味着无论你在哪里运行它,都会得到相同的行为。容器将应用程序从底层的主机设施中解耦,这使得更加容易在不同的云或 OS 环境中部署。

Pod

Pod 的共享上下文包括一组 Linux 名字空间、控制组(cgroup)等。 在 Pod 的上下文中,每个独立的应用可能会进一步实施隔离。

工作负载(Workload)

工作负载是在 Kubernetes 上运行的应用程序。无论你的负载是单一组件还是由多个一同工作的组件构成,在 Kubernetes 中你可以在一组 Pods 中运行它。 在 Kubernetes 中,Pod 代表的是集群上处于运行状态的一组容器。

公众号:全象云低代码
官网:https://www.quanxiang.dev/
GitHub:https://github.com/quanxiang-cloud/quanxiang

Sidecar 模式的机制与应用相关推荐

  1. 了解Sidecar模式

    本文介绍Sidecar模式的特点,及其应用的场景.熟悉Native Cloud或者微服务的童鞋应该知道,在云环境下,技术栈可以是多种多样的.那么如何能够将这些异构的服务组件串联起来,成为了服务治理的一 ...

  2. 微生物入侵:过程、模式与机制

    点击蓝字 关注我们 题目:Microbial Invasions: The Process, Patterns, and Mechanisms 微生物入侵:过程.模式与机制   期刊:Trends i ...

  3. java 设计模式 优缺点_java设计模式2:原型模式(机制\优缺点分析\使用场景)...

    1. 原型模式实现机制 原型模式在设计模式中相对比较简单,它直接通过实现 Cloneable接口,再重写 clone()方法返回想要的对象就OK 了. 一起来看下代码 : public class P ...

  4. 分布式数据库DDM Sidecar模式负载均衡

    1 简介 分布式数据库中间件 DDM 分布式数据库中间件(Distributed Database Middleware)是解决数据库容量.性能瓶颈和分布式扩展问题的中间件服务,提供分库分表.读写分离 ...

  5. K8S 使用 SideCar 模式部署 Filebeat 收集容器日志

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  6. mysql中ddl和ddm_分布式数据库DDM Sidecar模式负载均衡

    1 简介 分布式数据库中间件 DDM 分布式数据库中间件(Distributed Database Middleware)是解决数据库容量.性能瓶颈和分布式扩展问题的中间件服务,提供分库分表.读写分离 ...

  7. 基于时序模式注意力机制(TPA)的长短时记忆(LSTM)网络TPA-LSTM的多变量输入风电功率预测

    1.TPA理论 注意力机制(Attention mechanism)通常结合神经网络模型用于序列预测,使得模型更加关注历史信息与当前输入信息的相关部分.时序模式注意力机制(Temporal Patte ...

  8. Sidecar模式初识

    Sidecar设计模式正在收到越来越多的关注和采用.作为Service Mesh的重要要素,Sidecar模式对于构建高度高度可伸缩.有弹性.安全且可便于监控的微服务架构系统至关重要.而Service ...

  9. Sidecar 模式

    Sidecar 模式是 Istio 服务网格采用的模式,在服务网格出现之前该模式就一直存在,尤其是当微服务出现后开始盛行,本文讲解 Sidecar 模式. 什么是 Sidecar 模式 将应用程序的功 ...

最新文章

  1. 云原生系列「五」我为啥又看上了serviceMesh?
  2. (一)git简介及安装
  3. A20 init.sun7i.rc 文件
  4. Jconsole查看Weblogic自定义MBean
  5. 王者荣耀s24服务器维护多久才结束,王者荣耀s24赛季几点更新结束?6月23日s24赛季开启时间公布[多图]...
  6. django保存表单数据到数据库中
  7. SpringMVC 单文件上传与多文件上传
  8. 机器学习and深度学习学习资料
  9. 逆水寒服务器维护公告,逆水寒1月3日更新了什么 逆水寒1月3日更新维护公告
  10. 微信小程序时间格式在IOS苹果手机上不识别
  11. 生物信息学|Extracting Drug-Drug Interactions with Attention CNNs
  12. lopa分析_什么是LOPA分析?
  13. JAVA中的前后端交互
  14. husky的仿真建图和导航
  15. 论文阅读 [TPAMI-2022] Ball $k$k-Means: Fast Adaptive Clustering With No Bounds
  16. GetLastError错误码信息收集
  17. python智慧树章节答案_智慧树_Python程序设计基础_章节答案
  18. Web入门:JQuery淡入淡出面板
  19. 页内嵌多媒体内容的完美实现
  20. ghost后分区丢失如何恢复数据-分区表医生!

热门文章

  1. ParameterDirection参数类型
  2. 【Notion AI 功能试用】写作修改、润色、总结、翻译效果
  3. 乐逗游戏将新推《小鸟爆破》Android版
  4. android-auto-andorid-car-安卓N叫板黑莓QNX:未来一统汽车OS市场
  5. Ubuntu安装jdk tar gz的方法
  6. 打造一个优雅的微信文章编辑器
  7. 2021-12-07 股票模拟交易心得5
  8. 【MM系列】SAP基本计量单位更改
  9. 自学软件测试?先学完这些就已经够了....
  10. android 获取cpu类型