云原生时代,为什么k8s如此受欢迎?

2022年疫情期间,一家互联网公司的后端开发工程师Xavier在家工作,他提交了一个关于产品类型搜索扩展字段的代码,并合并到主分支。此时,公司的devops系统自动运行。远在几百公里外的运维工程师Leo收到了这个事件,审核了新发布的制品,并通过公司的容器集群,迅速更新了新版本的程序。整个过程通过灰度发布,用户完全无感知。

当然,这个过程可能有一点简略(真实场景面临很多合规和审核),但是这基本上就是云原生时代的软件开发和发布流程了。

云原生是在云计算环境中构建、部署和管理现代应用程序的软件方法。而云原生中较为受欢迎的容器技术,莫过于Kubernetes(以下简称k8s)了。

这套流程,无论是公司自建,还是使用公有云,亦或是专门的容器云厂商的系统,比如腾讯云,阿里云,青云,灵雀云等公司提供的云平台系统,他们都是基于k8s来搭建的。八年前k8s诞生依赖,脚踏docker swarm,手擒mesos,在一众友商中杀出重围,已然成为云平台容器编排的事实标准,是云原生时代我们不得不掌握的一门技术。

k8s是什么?

k8s是一个容器编排系统。通过多个服务器实例(虚拟机或者物理机)组成集群,在集群中调取容器进程。依托于自身优秀的调度策略,网络和存储策略,完美的解决了容器在哪里运行,容器之间怎么样连接,容器需要的持久化存储怎么弄的问题,极大减轻了运维人员的负担。依托于庞大的生态系统,我们亦可以选用诸如ranch,kubesphere这类的开源容器平台,进行可视化的管理,对开发人员也极为友好。

如今,诸多大厂中厂,如腾讯,阿里,字节,美团等,都建有自己的k8s容器平台,即使是小厂或初创公司,也选择或自建,或选用公有云容器平台来部署自己的服务程序。

k8s及其所引领的云原生时代如日中天,已成为了当今每一个IT从业者必备的技能。

k8s可以做什么?

要回答这个问题,我们需要从应用部署的历史开始说起。

物理机时代

在上古时期,所有的应用程序都是在物理机运行,依靠运维人员的手动维护,人肉操作。好在此时应用的复杂度比较低,服务软件的用户量也不大,迭代频率也不高,这种方式的部署也没有什么问题。

虚拟机时代

随着互联网的发展,越来越多的人开始使用电脑或者手机进行网上冲浪,用户量激增。提高物理机的资源利用率成为了迫切的需要。随着虚拟化技术的发展,把物理机虚拟成多个虚拟机成为了解决方案,出现了vmware,pve这类的企业级别的虚拟化管理平台,提高了物理机资源利用率。这个时代依然是运维人员手动维护。

容器时代早期

再后来便是容器时代了。虚拟化技术达到的瓶颈,docker所引领的容器技术给了我们新的解决方案,通过进程隔离的方式,避免了虚拟化所带来的性能损耗,同时带来了更加迅速的运行环境的创建和程序的启动。随之而来的是微服务概念的兴起,单体程序开始被打散,多个小而美的单一职责的服务相互配合,组成了日益庞大而复杂的大型系统程序。需要维护的程序越来越多,运维人员已经不堪重负。

k8s和容器编排

于是容器编排系统开始出现,提倡以自动化集群的方式管理和维护众多的容器进程。在进一步提高了计算机的资源利用率的同时,运用高效的自动化编排,极大的减轻了公司的运营成本。

最开始也是群雄争霸,最终k8s以其优秀的性能和扩展性拔得头筹,干掉了一众对手,成为了容器编排的事实标准。

你可能感兴趣的:(容器,kubernetes,云原生,docker)