Kubernetes:Flomesh 服务网格与多集群通信

Kubernetes 成功普及了容器集群的概念。许多用户已经在多个集群中部署应用,组织需要运行多个 Kubernetes 集群可能来自以下原因(并非详尽列表):

  • • 位置

    • • 延迟(尽可能在靠近客户的地方运行应用程序)

    • • 管辖权(例如,要求将用户数据保存在国内)

    • • 数据引力(例如,数据存在于一个供应商)。

  • • 隔离性

    • • 环境(例如,开发、测试、预发布、生产等)

    • • 性能隔离(团队之间希望互不影响)

    • • 安全隔离(敏感数据或不被信任的代码)

    • • 组织隔离(团队有不同的管理领域)。

    • • 成本隔离(团队希望得到不同的账单)

  • • 可靠性

    • • 爆炸半径(一个集群中的基础设施或应用问题不会使整个系统崩溃)

    • • 基础设施的多样性(底层区域、地区或供应商的故障不会导致整个系统瘫痪)。

    • • 规模(应用程序太大,无法在单个集群中安装)。

    • • 升级范围(为你的应用程序的某些部分升级基础设施,但不是全部;避免需要在原地进行集群升级)。

目前还没有标准的方法来连接甚至考虑超出单一集群边界的 Kubernetes Service,Kubernetes Multicluster SIG 已经提出了提案 KEP-1645[1],以便跨多个集群扩展 Kubernetes Service 概念。

Flomesh[2] 一直在努力解决多集群通信的挑战,将南北向流量管理能力整合到兼容 SMI 的服务网格 osm-edge[3] 中,并回馈社区。

上一篇 Kubernetes 跨集群流量调度实战,我们对 FSM[4] 进行了简单的介绍并演示其使用方法。我们将探索 FSM 多集群支持的动机、目标、架构、组件,以及它如何与成熟的、轻量级的、兼容 SMI 并适用于云和边缘的服务网格 osm-edge[5] 集成。

Flomesh 服务网格

FSM[6] 是来自 Flomesh[7] 的开源产品,用于 Kubernetes 南北向流量、网关 API 控制器和多集群管理。FSM 以可编程代理 Pipy[8] 为核心,提供 Ingress 控制器、Gateway API 控制器、负载均衡器、跨集群服务注册发现等。

动机

在为社区、商业客户和企业提供咨询和支持期间,我们看到了大量需求和期望(有些在文章开头提到的),关于他们为什么要将部署拆分到多个集群中,同时保持在这些集群中运行的工作负载的相互依赖性。目前,集群是一个明显边界,服务对于远端 K8s 消费者来说是不透明的,否则他们可能会使用元数据(例如端点拓扑)来更好地引导流量。用户可能希望使用跨集群分布的服务来支持故障转移或在集群迁移期间提供临时的支持,然而,这都需要当今非常重的定制解决方案。

Flomesh 团队旨在通过为这些问题提供解决方案来帮助社区。

目标

  • • 定义一个最小的 API 来支持跨集群的服务发现和消费。

    • • 使用另一个集群中的服务。

    • • 将部署在多个集群中的服务作为单个服务使用。

  • • 当一个服务被另一个集群消费时,它的行为应该是可预测的,并且与它在集群中的消费方式一致。

  • • 允许在多集群环境中进行灰度发布。

  • • 提供一个独立的实现,可以在不与任何产品和/或解决方案耦合的情况下使用。

  • • 与 osm-edge[9] 服务网格的透明集成,适用于希望通过服务网格功能获得多集群支持的用户。

  • • 完全开源,欢迎社区参与贡献。

架构

  • • 控制平面

843c3e205867d14fa3ec3568d881e284.png
fsm-architecture-cp
  • • osm-edge 集成 (纳管集群)

5b29d2436aee8d53e4f3444bd7c81946.png
fsm-architecture-managed-cluster

FSM 为集群连接器提供了一套 Kubernetes 自定义资源(CRD),并使用 KEP-1645[10] 用于导出和导入服务的 ServiceExport 和 ServiceImport API。

FSM 多集群支持已经处于 alpha 阶段,欢迎从 FSM Github[11] 下载尝试。

对 FSM 多集群方案感兴趣的小伙伴,也可以关注我们在 12 月 17 日中国 DevOps 社区峰会武汉站上关于《云时代的多集群流量调度》的分享,届时会多对方案进行深度的介绍。

f8ad39927a37236cc5c8d8a047d8e10d.png

总结

Kubernetes 不再局限于单一边界,拥有多个 Kubernetes 集群的场景变得非常普遍,且没有一种典型或标准的方式来连接多集群并提供透明的方式来跨边界访问服务。Kubernetes Multicluster SIG 正在研究提案,以提供一组可以由供应商实现的通用 API,并为 k8s 用户提供一致的方式来访问内部或外集群的服务。

在后续的文章中,我们会进一步介绍 FSM 更多场景的使用,以及 FSM 能力的黑魔法。

引用链接

[1] KEP-1645: https://github.com/kubernetes/enhancements/tree/master/keps/sig-multicluster/1645-multi-cluster-services-api
[2] Flomesh: https://flomesh.io
[3] osm-edge: https://flomesh.io/osm-edge
[4] FSM: https://github.com/flomesh-io/fsm
[5] osm-edge: https://flomesh.io/osm-edge
[6] FSM: https://github.com/flomesh-io/fsm
[7] Flomesh: https://flomesh.io
[8] Pipy: https://flomesh.io
[9] osm-edge: https://flomesh.io/osm-edge
[10] KEP-1645: https://github.com/kubernetes/enhancements/tree/master/keps/sig-multicluster/1645-multi-cluster-services-api
[11] FSM Github: https://github.com/flomesh-io/fsm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

袁永福软件行业从业经历

简化版》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》 袁永福简历 袁永福,男,1980年生于江西省九江市都昌县,2001年南京东南大学动力工程系本科毕业。毕业后一直从事计算机软件开发工作&…

小程序之地图导航

同学们平常使用地图的时候应该都有注意到,当我们在一个应用中选择一个地址,打开一个地图,往往会有两种显示方式,一个是显示当前自己的位置;一个是显示对方,也就是目的地的位置;如下图&#xff1…

PS2019摄影后期处理(一)

高高手之路笔记 一、学习方法 内外兼修:技术会淘汰、更新,自己内在也要提高。 二、照片格式、色彩空间 JPEG TIFF RAW sRGB:互联网相关图片,电子设备 三、照片风格 自己定义照片格式,直接后期效果 相机自带工具&a…

mdnsresponder_什么是mDNSResponder.exe / Bonjour,如何卸载或删除它?

mdnsresponderYou are no doubt reading this article because you’ve noticed the mDNSResponder.exe process running in Task Manager, you don’t remember installing it, and it doesn’t show up in the Add/Remove programs in Control Panel. So what is it, and how…

Windows 10下,如何使用PowerShell批量重启局域网电脑

PowerShell 在Windows 10中越来越受到微软重视,甚至被微软安排在开始按钮超级菜单中替换了一直以来默认的命令提示符(当然还可以换回去),这和该工具越来越强大密不可分。这次就介绍一个“群重启”命令,可让局域网内的电脑集体重启。1、单机重…

.NET MAUI学习指南

由于.NET MAUI这项技术出来不久相关的学习资源暂时除了官网以外没有太好的学习资源,这篇文章主要向大家分享几种学习.NET MAUI的学习途径,如果有好的学习资源欢迎大家私信给我然后更新到后续的文章里。(以下推荐学习途径均为免费且无广告的资…

循序渐进DB2(第2版)——DBA系统管理、运维与应用案例

《循序渐进DB2(第2版)——DBA系统管理、运维与应用案例》基本信息作者: 牛新庄出版社:清华大学出版社ISBN:9787302323013上架时间:2013-7-3出版日期:2013 年7月开本:16开页码:612版次&#xff1…

PS2019摄影后期处理(二)

一、曲线 二、曲线与通道 三、HSL局部调整 色相、饱和度、亮度 a.色相:一个颜色,帽子是红色 b.饱和度:树木葱郁一点 c.饱和度:衣服连杆 便黑白: 1.调低所有饱和度 2.将某个颜色饱和度提高,再转灰度。…

管理员获得所有权_在Windows 7中获得注册表项的所有权

管理员获得所有权We have previously written about how to take ownership of files and folders in Windows 7, but there may be times when you need to take ownership of or assign full permission for certain registry keys. This article shows you how to do this. …

Dojo QuickStart 快速入门教程 (2) 基本框架

下载库 首先,下载 Dojo 库:http://www.dojotoolkit.org/downloads 放了方便测试,我将文件将解压到 Web Server 的 "js/dojotoolkit" 文件夹中,如果你愿意,也可以缀上版本号。最后的目录结构应该像下图这样&a…

摊牌了,.NET开发者,准备赋能未来

hi,这里是桑小榆。一名.net开发,从19年毕业至今一直从事相关技术已近4年。发展至今,很有必要分享分享我的经历以及对于.net开发的看法和见解。篇幅有些长,无论你是学生,职业人,.NET开发者还是其他语言开发者…

BZOJ 3434 时空穿梭

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id3434 题意: 思路: const int mod10007; const int N100005;int g[22][N]; int C[N][22],mou[N]; int h[22][N][13];int prime[N],cnt; int tag[N];void init() {int i,j;mou[1]1;f…

plex实现流媒体服务器_如何从Plex Media Server离线查看下载和同步媒体

plex实现流媒体服务器Streaming content from your Plex Media Server is great, but sometimes—like when you’re going to be offline or stuck with cruddy internet speeds while traveling—there’s no substitution for having a copy of the media stored on your de…

.NET Conf 2022 大会日程全曝光!!前沿、硬核、创意.....精彩就等你来!!

倒计时2天一场规模宏大,内容硬核,大咖齐聚的.NET 领域年度最大的盛会即将开幕.NET Conf 2022 12月3日-12月4日开源 安全 赋能诚邀您的加入立即扫码预约加入.NET年度盛宴!!.NET Conf China 2022.NET Conf China 2022是面向开发人员…

Linux下SSH远程连接断开后让程序继续运行解决办法

screen -S yourname #新建一个叫yourname的sessionscreen -r yourname #回到yourname这个sessionscreen -X -S [yourname # you want to kill]quit #删除无用的screen,使用时不用加中括号 screen -ls #列出当前所有的session screen -d yourname #远程detach某个ses…

wmi服务或wmi提供程序_什么是WMI提供程序主机(WmiPrvSE.exe),为什么使用那么多的CPU?...

wmi服务或wmi提供程序The WMI Provider Host process is an important part of Windows, and often runs in the background. It allows other applications on your computer to request information about your system. This process shouldn’t normally use many system re…

正在创建系统还原点_如何使Windows在启动时自动创建系统还原点

正在创建系统还原点By default, System Restore automatically creates a restore point once per week and also before major events like an app or driver installation. If you want even more protection, you can force Windows to create a restore point automaticall…

在ubuntu 16.04里使用python—scrapy将爬取到的数据存到mysql数据库中的一些随笔

一、将爬取的数据保存到mysql数据库的代码(已经能将爬取的数据保存到json文件) (1)编辑Pipeline.py文件 (2)编辑settings.py文件 二、将数据保存至mysql数据库出现的问题 (1)在将数据…

十大经典排序算法(动图演示)

转自:https://www.cnblogs.com/onepixel/articles/7674659.html 0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn)&#xff0c…

如何实现 WPF 视频封面查看器

如何实现 WPF 视频封面查看器控件名:NineGridView作 者:WPFDevelopersOrg - 驚鏵原文链接[1]:https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用.NET40;Visual Studio 2019;实现视频封面查看器NineGridView基于Grid实…