K8s系列---【一、为什么要学习K8s?】

网友投稿 244 2022-09-10

K8s系列---【一、为什么要学习K8s?】

一、为什么要学习K8s?

以kubernetes核心的云原生技术(以kubernetes为核心的云架构体系)正在吃掉整个世界(软件的世界),越来越多的企业把软件系统服务迁移到kubernetes环境中;无论传统企业,还是互联网公司都在进行企业数字化转型(提高企业生产效率),云原生是企业数字化(自动化,智能化)转型的唯一路径,实现企业开发效率倍增。

技术发展趋势(未来技术发展方向):

1、2021年: 阿里达摩院宣布十大颠覆性科技发展—云原生技术对IT开发行业具有颠覆性的发展;

2、云原生技术来了,Java真的快挂了吗??

JVM(jdk):

1) 优点: 跨平台, 庞大的生态体系

2) 缺点: 占内存,性能并没有一些脚本语言高(go,ruby)

云原生:跨平台(任何语言都可以借助云原生实现跨平台)

3、Jdk16 全面拥抱云原生技术          未来的java语言也会脚本化(占用内存少,体积小)

4、Spring SpringCloud 向云原生方向演进;

问题: 学习kubernetes到底对我们开发有什么帮助??

1.1、轻装上阵

一旦使用kubernetes技术,不需要关心那些和项目业务没有关系的底层代码(通信组件,协议转换,服务治理),只需要关心项目业务代码即可,因此开发团队只需要一个小而精悍的团队即可。

1.2、全面拥抱微服务架构

架构选型: 微服务架构面临:服务架构拆分,服务治理难题

微服务架构:拆分很细小,按照function进行拆分,拆分很多的服务,服务调用链路很长,一旦使用了微服务架构后,增加技术上难度(服务出现问题,很难查找)

难题是什么:

1、服务链路追踪

2、服务降级

3、服务限流

4、服务性能监控

一旦使用了kubernetes云原生技术后,就不需要关心服务治理问题,一切交给kubernetes实现,因此可以全面拥抱微服务架构。

1.3、无缝迁移

项目开发(开发环境)->发布版本->测试环境->发布版本(Q)->stable->上线(生产环境)

存在问题: 测试环境 开发环境不一致,造成项目测试没有问题,上线就发生了问题,影响项目上线时间。

1.4、弹性扩容

服务上线: 促销活动 ---- 流量增大(事先预知: 活动预演,压测预案)---- 动态扩容

突发事件 ---- 明星结婚 ---- 突发性流量 ---- 弹性扩容

扩展指标: 根据cpu使用率,内存使用率进行扩容即可

1.5、充分利用服务器资源

思考: 物理机,虚拟机时代部署服务时候,这些服务器cpu,内存释放可以被充分利用???

答案: 不能被充分利用的;

存在资源浪费原因在于:没有合理的调度服务部署(根据资源利用率,cpu空闲,内存空闲进行合理服务调度部署); 其实: 我们需要一个操作系统,此操作系统可以对服务进行调度,选择合理的资源进行分配。

Kubernetes根据调度器实现服务的动态调度,服务发布部署的,把服务调度服务到一个合适的节点中;以kubernetes为核心构建的云平台(云计算平台),充分利用服务器资源,实现服务合理部署,使得服务以更好的组态进行运行,或者计算。

Kubernetes把各个节点(服务器)调度整合在一起,形成一个整体(看起来就像是一台计算机),整个云环境cpu,内存是所有机器相加。

1.6、自动化运维平台

以kubernetes为核心构建一套devops平台,从开发,到运维整个流水线实现自动化开发流程;

1、服务部署,调度,发布

2、负载均衡

3、扩缩容

4、弹性容错

……………………

运维: 300运维可以减少至10个运维。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:#云原生征文# 使用Kubekey2.1.1离线部署KubeSphere全过程
下一篇:K8s系列---【二、K8s是什么?】
相关文章

 发表评论

暂时没有评论,来抢沙发吧~