一键构建分布式云原生平台
http://wed.xjx100.cn/news/90673.html
目录
-
- 专栏导读
- 一、分布式云原生平台
-
- 1、应用无所不能
- 2、运行无处不在
- 3、服务千行白业
- 二、分布式云原生平台关键要素
-
- 1、统一应用管理
- 2、统一流量自治
- 3、统一数据管理
- 4、统一运维
- 三、多云多集群已经广泛应用
- 四、分布式云的优势:
-
- 1、避免厂商锁定
- 2、满足合规化要求
- 3、增强系统韧性
- 4、提高灵活性和可扩展性
- 五、云原生的现状
- 六、Karmada一键管理多集群
-
- 1、K8s原生API兼容
- 2、丰富的多集群调度
- 3、集群资源空间隔离
- 4、多种模式集群同步
- 七、Kurator:打造统一的分布式云原生基础设施
- 八、KubeEdge:一键构建云原生边缘计算平台
- 九、Volcana:一键构造云原生批量计算平台
- 十、istio:一键构建分布式流量统一管理
- 十一、Prometheus:一键构建分布式云监控
专栏导读
🏆作者简介:哪吒,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家💪 ,专注Java硬核干货分享,立志做到Java赛道全网Top N。
🏆本文收录于Java基础教程系列(进阶篇),本专栏是针对大学生、初级Java工程师精心打造,针对Java生态,逐个击破,不断学习,打通Java技术栈。
🏆订阅后,可以阅读Java基础教程系列(进阶篇)中全部文章,包含Java基础、Java高并发、Spring、MySQL等Java进阶技术栈。
🏆还可以订阅其姐妹篇,Java基础教程系列,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。
🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。
🏆面试福音:10万字208道Java经典面试题总结(附答案)
大家好,我是哪吒。
一、分布式云原生平台
1、应用无所不能
包含Flink、Spark、mxnet、Pytorch、TIkv等。
2、运行无处不在
公有云、私有云、边缘站点、边缘节点等。
3、服务千行白业
金融、制造、互联网、交通、物流、能源
二、分布式云原生平台关键要素
分布式云是多云、混合云、私云的简称,云原生平台是我们多次在各种会议上反复提到的,云原生基础技术是以K8S、容器、服务网格为代表的,这是CNCF基金会定义的概念。
1、统一应用管理
- 融合调度
- 多云容器管理
- 云边端一体
统一的应用管理我们看到CNCF很多项目,比如说Ago,F02:10:57…英文项目,一般是管理单云、单集群的应用。多云、多集群的应用管理,现在业界比较缺少开箱即用的方案,去年华为云也开源了KAWADA…的项目,李老师也讲了他们也用KAMADA管理。
2、统一流量自治
- 互联网络
- 服务网格治理
统一流量治理在业界主要是以服务网格为代表的技术,在CNCF基金会,现在主要有Istio,Istio正在捐基金会的过程中,由于历史原因,之前号称不捐,今年发起捐赠流程。
3、统一数据管理
- 数据加速
- 数据迁移
统一的数据管理,跨云、跨边缘的数据管理,这一块是比较缺乏的。
4、统一运维
- 统一监控
- 统一调用链
- 统一日志
统一的运维监控调用日志,这一块有很多不少的成熟技术方案,比如说监控领域的实施标准普罗米修斯,解决多云多集群的监控。调用链现在也有一些,对多云的支持还不是很完善,统一的日志有以前的ERK,现在有一些(英文)02:12:45…开源了轻量级的日志数据。
三、多云多集群已经广泛应用
介绍一下大云多集群的使用调查,根据最新的(英文)一家调研机构调查的结果Flexera,看一下右边,现在有80%的企业采用混合云的方案,混合云完美的把原来企业自有的基础设施利用起来,7%的用户使用了多公有云,2%的用户采用了多私有云的方案,混合云我们看到是主流的方案。
左边的图我们看到整个多云已经很多了,89%,已经包含了多云、多公有云、多私有云和混合云,纯粹采用单云的企业比较少,大家为了高可用经常提的是两地多中心、两地三中心,大家用多云还是比较好的。
四、分布式云的优势:
1、避免厂商锁定
如果我只把服务部署在一家厂商里,这时候厂商的定价对我的限制很大,如果这个厂商有些技术是比较私有化的,比如说没有符合CNCF基金会做的一致性认证,用厂商私有的K8S解决方案,可能会面临被厂商锁定的风险。厂商锁定之后,作为客户来讲我的话语权就没有那么重了,我可能会受厂商控制,成本也可能居高不下,为了这方面我可能会更喜欢用多云的方案。
2、满足合规化要求
在合规性要求上面我们讲单云上只考虑首先采用单云安全的技术框架来解决合规性的问题,可能这种技术放在其他的环境中,比如说在私有云场景下,或者在其他云上面就会出现一些安全的漏洞。比如说是多云场景下的话,我部署的时候安全性就足够考虑,合规性就得到了完美充分的考虑,系统上线的风险就会大大降低。
3、增强系统韧性
系统的韧性是我们在稳定性方面很重要的要求。服务首先看稳定运行,要提供02:16:18…英文性能高都没有用。
4、提高灵活性和可扩展性
我们的服务在应对一些突发流量的时候,我们能够灵活的扩展。当我的一个区域,比如说因为运营商的网络挖断了,这是时有发生的,我的流量能够自动切换,我的应用能够自动部署到另一个区域,另一个集群,并且我的流量能够自动弹过去,这是分布式运营的优势。
分布式云原生是云原生以应用为中心发展的必然方向,是企业泛在业务的最终形态。
五、云原生的现状
讲一下什么是KAMADA,这是分布式云原生,背景是这样的,云原生以应用为中心发展的必然方向是企业的泛在形式,原来我们的云原生都是典型的,每个边缘是割裂的单独集群形式存在的,这时候我们会面临这么多的问题。首先是体验分析,我们管理需要单集群的管理,没有统一的管理入口。算力是由单独的,每个云的计算资源受限,比如说我们在华北每个机房里部署集群,可能这个集群的资源在公有云上也是有限制的,不是无限扩展的。当这个单独的资源面临到没有资源的情况下,机房已经完全占完了,这时候我们再扩容是扩不了的,算力是受限制的。
然后是流量,流量是我们在业务的体现形式,当我们的流量需要根据不同区域,尤其是南北向的流量,不同区域需要网关一层感知底层不同集群的负载数量的时候,感知实际能力进行切分。在原来的云原生平台,单云的时候是很难做到的。
我们现在提出的一个概念叫分布式云原生,分布式云原生是将中心云、专属云、边缘运、本地自己IDC统一管理起来,做到算力、数据和流量的统一管理,这种方案的好处是比较显而易见的,刚才讲的四点体验,应用算力、应用流量、应用数据能够得到充分的发挥。
六、Karmada一键管理多集群
1、K8s原生API兼容
- K8s原生API + 扩展策略
- 零改造,开箱即用
2、丰富的多集群调度
- 支持集群亲和性,多维度HA等算法
- 支持静态、动态权重拆分引用
3、集群资源空间隔离
不同集群资源分别存放,隔离权限
4、多种模式集群同步
- 支持中心管理和分布式管理
- 结合KubeEdge实现边缘集群管理
管理多集群的架构,karmada通过多种方式
- 主动push的方式,另外是主动获取我们要部署的worklod资源对象,第三种类型是管理边缘集群的情况。边缘集群助理KubeEdge里面的工作负载,Service,策略,RBAC等等策略都是完全兼容的,我们不需要进行任何改造。
- 调度的能力现在还是比较丰富的,支持集群的亲和性,支持动态权重的拆分,这个主要是针对workload那种。
- 集群资源的隔离,可以对不同的集群资源分别存放,隔离一些租户可以通过这个做到。
七、Kurator:打造统一的分布式云原生基础设施
- 业界收个分布式云原生开源套件,开箱即用
- 开源开放的分布式云原生平台,助力企业业务跨云跨边、分布式化升级
- 整合Karmada、KubeEdge、Volcano、Kubernetes、Istio、Prometheus等业界主流开源技术栈
- 提供多云、多集群统一编排,统一调度,统一流量治理,边云协同,统一监控运维等核心能力。
八、KubeEdge:一键构建云原生边缘计算平台
- 边缘侧提供原生的Kubernetes API。
- 边云一体资源调度和流量协同
- 边缘离线自治
- 极致轻量
- 支持海量边缘设备管理
九、Volcana:一键构造云原生批量计算平台
- 丰富的高级调度能力
- 主流计算框架支持
- 增强作业管理(应用感知的作业生命周期管理、支持队列概念)
- 异构设备支持,异构设备调度,包含x86、ARM、GPU等
一键支持构建云原生的批量计算,这是通过部署Volcano实现,相对于K8S提供了更加高级的调度能力,比如说在大数据、批量计算等领域,我们w需要(英文)分级调度,这种更适合大数据离线计算这种,从这里看出支持的主流计算框架包括离线的作业计算和大数据计算。第三个是通过V可以增强作业的管理,V内部是可以感知应用生命周期的spark、Flink、TensorFlow、PyTorch、MindSpore、PaddlePaddl,
可以异构设备,包括CPU、GPU,又包括X86、ARM、GPU、昇腾资源调度。
十、istio:一键构建分布式流量统一管理
- 通过Sidecar透明代理工作负载进出口流量
- 统一管理分布式云平台流量的路由、负载均衡、故障转移等
- 统一策略管理,宝藏跨云、跨集群的流量安全
也支持通过Istio一键式分布流量管理,Istio支持多集群流量治理,但是安装Istio等等还是比较麻烦的,因为Istio多集群有很多模式,这里举了一个例子,多集群的prima—remotew,其中一个做主集群,在remote集群安装Istio的组件,比如说在非扁平网络模式下需要安装东西向的gateway,安装很复杂,有很多Istio的模式,Istio非常复杂。
这种方式的好处是为了管理分布式流量,通过sidecar…利用Istio东西向跨集群的能力,现在常常讲的南北向流量进入云上面的时候,我们的流量是从LB那一层走到每个集群里,流量往这个集群发30%还是50%,往那个流量发50%还是70%,其实只是解决了南北向流量的问题。实际上在同一个应用往往会部署在跨集群部署,跨云部署,有时候会涉及到A服务和B服务,首先我们更期望A服务是在同一个集群里调用B服务,但是有时候当Service B在集群里故障了之后,能够自动切到另外一个集群吗?南北向的负载均衡LB已经无能为力了,我们只能用Istio切换到另外一个集群,实现故障转移。
十一、Prometheus:一键构建分布式云监控
- Prometheus定期收集Metrics,并可以提供告警
- Metrics采集可以来源于Kubernetes集群本身,也可以来自应用、节点
- 通过级联,可以提高大规模处理能力,应对数十个集群的监控
- 级联拓扑是一个树状结构,顶层的Prometheus负责查询和汇聚所有下面集群的指标
再看一下prometheus,一键构建分布式云监控,kurator把整个prometheus来自于节点和应用,另外p支持级联,类似于树状结构负责暴露分布式运营平台所有下面的集群指标。
这里我们有时候在分布式云,不同的集群里会涉及到我们打通两个集群网络,打通网络要不通过VPN的方式,要不通过公有云厂商专线的能力,提供专线的服务,有时候成本很高。如果我们想用开源的方法怎么做呢?可以通过submariner,帮助我们打通打集群的容器网络,通过安装submariner我们可以把多集群pod和pod网络打通,打通成扁平的网络,这时候pod和pod通过IP可以直接访问。如果了解K8S集群的话,没有这个东西的话,跨集群的pod网络是不通的,因为pod
IP地址是私有的,外部不可见。