首页 > 其他分享 >cilium Service Mesh

cilium Service Mesh

时间:2024-05-10 15:23:18浏览次数:21  
标签:安全性 Service eBPF 应用程序 cilium Mesh Cilium

Service Mesh 介绍

Service Mesh 关注于集群内部的微服务通信、控制和监控。它提供诸如负载均衡、故障恢复、安全性增强、监控和跟踪等功能。Service Mesh 可以帮助管理复杂的微服务架构,实现服务之间的可靠通信,并提供各种附加功能来增强系统的可观测性和安全性。
随着分布式应用程序的引入,额外的可见性、连接性和安全性要求也随之浮现。应用程序组件通过跨云和本地边界的不可信网络进行通信,需要负载平衡来理解应用程序协议,弹性变得至关重要,并且安全性必须发展到发送者和接收者可以验证彼此身份的模型。在分布式应用程序的早期,这些需求是通过将所需的逻辑直接嵌入到应用程序中来解决的。服务网格从应用程序中提取这些功能,并将它们作为基础设施的一部分提供给所有应用程序使用,因此不再需要更改每个应用程序。

Service Mesh 功能

弹性连接:服务与服务之间的通信必须能够跨越云、集群和场所等边界。通信必须具有弹性和容错能力。

L7 流量管理:负载平衡、速率限制和弹性必须支持 L7(HTTP、REST、gRPC、WebSocket 等)。

基于身份的安全性:依靠网络标识符来实现安全性已经不够了,发送和接收服务都必须能够基于身份而不是网络标识符来相互验证。

可观察性和跟踪:跟踪和指标形式的可观察性对于理解、监控应用程序稳定性、性能和可用性以及进行故障排除至关重要。

透明度:功能必须以透明的方式提供给应用程序,即无需更改应用程序代码。

Service Mesh 优势

Cilium Service Mesh 通过使用 eBPF 将网格层直接集成到内核中,重新定义了传统的服务网格框架,从而消除了对 sidecar 代理的需求。在网络和应用程序协议层上运行来提供连接、负载平衡、安全性和可观察性,从而与服务网格概念保持良好一致。对于所有网络处理,包括 IP、TCP 和 UDP 等协议,Cilium 使用 eBPF 作为高效的内核数据路径。 HTTP、Kafka、gRPC、DNS 等应用层协议通过 Envoy 等代理进行解析。

控制平面选项

Cilium Service Mesh为用户提供了控制平面选项,以实现复杂性和丰富性的理想平衡。这些选项包括简化的选项,如Ingress和Gateway API,更丰富的选项,例如使用Istio,以及通过Envoy CRD实现的Envoy的全部功能。用户可以根据自身需求和偏好选择最适合其情况的控制平面选项,以实现所需的功能和性能平衡。

Service Mesh 演进

cilium Service Mesh 和 sidecar 对比

通过 eBPF 实现卓越的网络性能

Cilium 的核心是 eBPF,这是一项内置于 Linux 内核中的革命性技术。借助 eBPF,Cilium 提供闪电般快速、高效且可扩展的网络。这绕过了传统代理的性能缺陷,使服务之间能够进行直接有效的通信。

Service Mesh 支持 eBPF

流量治理
-  L3/L4转发和负载均衡
-  金丝雀部署,拓扑感知路由
-  多集群
安全
-  网络策略
-  mTLS
可观测性
-  跟踪,OpenTelemetry和指标
-  HTTP, TLS, DNS, TCP, UDP, …

Service Mesh 不支持 eBPF

流量治理
-  L7 Load-balancing & Ingress
弹性
-  重试,L7层 速率限制
安全
-  TLS Termination & Origination

参考文档

https://docs.cilium.io/en/stable/network/servicemesh/

标签:安全性,Service,eBPF,应用程序,cilium,Mesh,Cilium
From: https://www.cnblogs.com/wangguishe/p/18179742

相关文章

  • ROS服务通讯创建服务节点(service)与客户端节点(client)
    学习参考:ROS/Tutorials/WritingServiceClient(python)-ROSWiki  首先需要一个工作空间,进入工作空间下的src文件夹下再创建一个功能包,进入功能包后创建scripts放置.py源码文件  服务节点源码创建格式:老样子还是剖析源码 首先导入包这里的_future_包中的print_func......
  • dremio CatalogMaintenanceService 服务简单说明
    说明此服务是从25.0开始包含的,同时在releasenote中也有说明,以下主要说明下内部实现release信息如下,具体就不翻译了,主要是添加了一个每个任务进行每个view最大保留50个历史信息Addeddailycatalogmaintenancetaskstotrimhistoryofviewstoamaximumof50......
  • debian12 timeshift无法正常运行,手动进行timeshift快照还原
    起因,/etc不小心被我删了注意,系统重要的话最好先用虚拟机练习一下一.挂载文件系统sudomount/dev/sdxn/mnt/dev/sdxn是你的块设备二.查看文件系统目录cd/mntls会出现@@hometimeshift-btrfs三.还原快照(1)先删除目标子卷sudorm-r@(2)再还原目标快照......
  • cilium 组件
    cilium组件架构图CiliumAgentCiliumagent(cilium-agent)在集群中的每个节点上运行。在较高级别上,代理通过Kubernetes或API接受配置,这些配置描述了网络、服务负载平衡、网络策略以及可观测性和监控要求。Ciliumagent侦听来自Kubernetes等编排系统的事件,以了解容......
  • 博客园商业化之路:融资做与众不同的众包平台,让开发能力成为一种服务(Coding as a Servi
    园子的诞生,与商业无关,是一位编程爱好者业余时间的偶然。园子的坚持,也与商业无关,是来自服务于成千上万开发者的成就感。当十多年前业余时间无法支撑园子的进一步发展时,初生牛犊不怕虎地毅然辞职从江苏扬州来到上海开始为园子的发展而创业,当时心里知道,只有商业化,才有未来。但那时......
  • dremio UserService 简单说明
    以前是简单说明过dremio的UserService,dremio实际上支持内部以及外部用户的玩法类图可以看到,包含了simple以及executor两个,同时实现了UserServiceEvents支持发布订阅能力的接口(订阅是25.0版本的)executor的实现实际上是为空的,核心是方便执行节点bindUserService,实际内......
  • android Service和activity通信
     在Android中,Service和Activity可以通过多种方式进行通信。以下是一个简单的例子,展示了如何使用Intent、Binder和Interface来实现Service和Activity之间的通信。首先,定义一个Service并创建一个绑定器类(Binder): publicclassMyServiceextendsService{privatefinal......
  • Field registration in org.springframework.cloud.client.serviceregistry.ServiceRe
    Fieldregistrationinorg.springframework.cloud.client.serviceregistry.ServiceRegistryAutoConfiguration$ServiceRegistryEndpointConfigurationrequiredasinglebean,but2werefound: -nacosRegistration:definedbymethod'nacosRegistration'in......
  • webapi创建和调用WebService
    首先需要引入soapcore包这个包提供了所需的类和soap终结点中间件。引入这个这个包之后,我们需要定义提供的服务。这里我写了一个用于查询省份面积的服务。省份信息服务///<summary>///省份信息服务接口///</summary>[ServiceContract]publicinterfaceIProvinceInfo......
  • TextMeshPro - 基本使用
    1 选中字体文件(这边使用了华文行楷),然后创建FontAsset创建后会生成一个TMP用的字体资源 2,创建一个TextMeshPro的Text将字体资源设置为刚刚创建的那个,就可以开始使用了 3,粗体,斜体,下划线,删除线,文字颜色设置  4,字符间距,单词间距,行间距,段落间距的控制 5, 文字......