揭秘Kubernetes为啥互联网公司都在用

5 篇文章 0 订阅
3 篇文章 0 订阅

对于上上篇分享的kubernetes的了解,我们对一些术语进行了答疑,也对kubernetes有了进一步了解。

对于现在大部分公司都开始使用kubernetes,面试的时候也会问到相关的技术问题,这些都是因为kubernetes有着自己的优势相关联的。

其实使用kubernetes的理由有很多,最重要的理由是因为IT行业从来都是由新技术驱动的。

传统部署模式:

①在物理服务器上运行应用程序

②无法为应用程序定义资源边界

③资源分配问题

 正如我们所了解到的,如果在物理机上运行多个应用程序,可能会导致一个应用程序占用大量资源,结果可能导致其它服务进程中断或者服务性能下降。

所以对于这种部署方式,我们对此进一步进行优化,提供一些解决方案,其中,有一种解决方案是在不同的物理机上运行每个应用程序,这样会导致资源可用率不高,并且不好进行维护,比较分散,后期也是很难进行扩展,维护成本较高。

所以再接下来,咱们引入了虚拟化技术:

虚拟化部署模式:

①允许在单个物理服务器上运行多个虚拟机

②虚拟化的应用程序在虚拟机中隔离,并能保证安全

③一个应用程序可以根据需要进行通信访问,做到有效隔离,不可随意公开访问

④虚拟化技术能够很好的利用物理机上的资源

⑤可以便捷的添加和更新应用程序,有很好的弹性伸缩,可降低硬件的成本

⑥每个虚拟机都是一台完整独立的,有着完整的系统,能够运行所有的组件

但是,对于这种虚拟技术也是有不足的,就是虚拟层冗余导致的资源浪费和性能下降。

容器部署模式:

①容器类似于虚拟机,但可以在应用程序之间共享操作系统

②容器被认为是轻量级的

③容器和虚拟机是类似的,有自己的文件系统、CPU、内存和进程空间

④由于和基础架构分离,因此可以跨平台和版本进行移植

 

容器优势:

敏捷性敏捷应用程序的创建和部署:与使用 VM 镜像相比,提高了容器镜像创建的简便性和效率。
及时性持续开发、集成和部署:通过快速简单的回滚(由于镜像不可变性),支持可靠且频繁的 容器镜像构建和部署。
解耦性关注开发与运维的分离:在构建/发布时创建应用程序容器镜像,而不是在部署时。 从而将应用程序与基础架构分离。
可观测性可观察性不仅可以显示操作系统级别的信息和指标,还可以显示应用程序的运行状况和其他指标信号。
跨平台跨开发、测试和生产的环境一致性:在便携式计算机上与在云中相同地运行。
可移植跨云和操作系统发行版本的可移植性:可在 Ubuntu、RHEL、CoreOS、本地、 Google Kubernetes Engine 和其他任何地方运行。
简易性以应用程序为中心的管理:提高抽象级别,从在虚拟硬件上运行 OS 到使用逻辑资源在 OS 上运行应用程序。
大分布式松散耦合、分布式、弹性、解放的微服务:应用程序被分解成较小的独立部分, 并且可以动态部署和管理 - 而不是在一台大型单机上整体运行。
隔离性资源隔离:可预测的应用程序性能。
高效性资源利用:高效率和高密度
 

当前,docker这门容器化技术已经被很多公司采用,从单机走向集群已经成为必然,云计算的蓬勃发展正在加速这一进程。kubernetes作为当前被业界广泛任何和看好的基于docker的大规模容器化分布式系统解决方案,得到了以谷歌为首的IT巨头们的大力宣传和持续推进。

2015年,谷歌联合20多家公司一起建立了CNCF(云原生计算基金会)开源组织来推广kubernetes,并由此开创了云原生应用的新时代。作为CNCF“钦定”的官方云原生平台,kubernetes正在颠覆应用程序的开发方式。

如今,数百家厂商和技术社区共同构建了非常强大的云原生生态,市面上几乎所有提供云基础设施的公司都以原生形式将kubernetes作为底层平台,可以预见,会有大量的新系统选择kubernetes,不论这些新系统是运行在企业的本地服务器上,还是被托管到公有云上。

对于使用kubernetes有哪些优势呢?

首先,可以“轻装上阵”地开发复杂系统。以前需要很多人(其中不乏技术达人)一起分工协作才能设计、实现和运维的分布式系统,在采用kubernetes解决方案之后,只需一个精悍的小团队就能轻松应对。在这个团队里,只需一名架构师负责系统中服务组件的架构设计,几名开发工程师负责业务代码的开发,一名系统兼运维工程师负责kubernetes的部署和运维,因为kubernetes已经帮我们做了很多。

其次,可以全面拥抱微服务架构。微服务架构的核心是将一个巨大的单体应用分解为很多小的互相连接的微服务,一个微服务可能由多个实例副本支撑,副本的数量可以随着系统的负荷变化进行调整。微服务架构使得每个服务都可以独立开发、升级和扩展,因此系统具备很高的稳定性和快速迭代能力,开发者也可以自由选择开发技术。谷歌、亚马逊等大型互联网公司都采用了微服务架构,谷歌更是将微服务架构的基础设施直接打包到kubernetes解决方案中,让我们可以直接应用微服务结构解决复杂业务系统的架构问题。

再次,可以随时随地将系统整体“搬迁”到公有云上。kubernetes最初的设计目标就是让用户的应用运行在谷歌自家的公有云GCE中,华为云、阿里云和腾讯云先后宣布支持kubernetes集群,未来会有更多的公有云及私有云支持kubernetes。同时,在kubernetes的架构方案中完全屏蔽了底层网络的细节,基于service的虚拟ip地址(cluster ip)的设计思路让架构与底层的硬件拓扑无关,我们无须改变运行期的配置文件,就能将系统从现有的物理环境无缝迁移到公有云上。

然后,kubernetes内在的服务弹性扩容机制可以让我们轻松应对突发流量。在服务高峰期,我们可以选择在公有云中快速扩容某些service的实例副本以提升系统的吞吐量,这样不仅节省了公司都硬件投入,还大大改善了用户体验。中国铁路总公司的12306购票系统,在客流高峰期(如节假日)就租用了阿里云进行交流。

最好,kubernetes系统架构超强的横向扩容能力可以让我们的竞争力大大提升。对于互联网公司来说,用户规模等价于资产,因此横向扩容能力是衡量互联网业务系统竞争力的关键指标。我们利用kubernetes提供的工具,不用修改代码,就能将一个kubernetes集群从只包含几个node的小集群平滑扩展到拥有上百个node的大集群,甚至可以在线完成集群扩容。只要微服务架构设计的合理,能够在多个云环境中进行弹性伸缩,系统就能承受大量用户并发访问带来的巨大压力。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈说技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值