【云原生丶Kubernetes】从应用部署的发展看Kubernetes的前世今生

在了解Kubernetes之前,我们十分有必要先了解一下应用程序部署的发展历程,下面让我们一起来看看!

在这里插入图片描述

应用部署的发展历程

我们先来看看应用程序部署的3个阶段:从物理机部署到虚拟机部署,再到容器化部署,他们之间有何优劣势呢?

在这里插入图片描述
1、物理机部署 :多个应用进程部署在同一个物理机上,但是容易出现进程间抢占资源的问题。

2、虚拟机部署 :虚拟化技术出现,从物理机虚拟出多个虚拟机,每台虚拟机部署一个应用进程,不同的虚拟机上运行不同的进程,没有资源冲突,从而解决了进程间资源抢占的问题。但是在集群部署的情况下,文件的版本和配置文件容易碎片化,当线上出现问题时,排查问题很棘手。而且由虚拟机管理系统负责控制和管理所有的虚拟机,这也造成了额外的性能、存储、网络开销

3、容器部署 :容器技术的出现,解决了虚拟机部署的痛点。容器技术通过镜像文件,如果要修改软件版本,只需要修改镜像文件,部署时所有容器重新拉取新的镜像,所以解决了软件版本的问题。

可以看到,所有的技术并不是凭空出现的,他一定是为了解决某些问题,容器技术的出现无疑是应用部署的里程中最闪亮的星之一。


虚拟机和容器部署的特性对比

容器技术相较于虚拟机来说,在性能、内存、运行密度、迁移性等各个方面都具有较大的优势

在这里插入图片描述

Docker 是容器化部署的课代表!Docker 相比传统的虚拟机技术更轻量级,它可以将应用程序打包成容器镜像,每个容器都具有自己的应用程序和系统依赖,并共享宿主机的操作系统内核和系统资源。容器启动和停止比较快,占用的系统资源比虚拟机少, Docker 适用于快速部署和迁移应用程序的场景。


使用Docker部署的优势是什么?

  1. 更快速的交付和部署:使用Docker镜像可以快速构建应用程序的运行环境,快速的创建和删除容器,实现快速迭代。
  2. 更高效的资源利用Docker是内核级的虚拟化,不需要额外的虚拟机管理系统,相比传统虚拟机方式能够更高效的利用硬件资源。
  3. 更轻松的迁移和扩展:由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker可以在任意平台上运行,支持主流的操作系统版本,用户可以在不用的平台之间轻松的迁移应用
  4. 更简单的更新管理:使用DockerFile只需要简单的修改版本,就可以替代大量的更新工作。

📢 相比物理机和虚拟机,Docker容器技术的优势显而易见,但是Docker仍然有以下问题没有解决:比如无法实现自动化扩容和故障后的自愈,但是在企业级应用来说,通常有成千上万的容器,这使得管理起来极其的复杂,此时,就需要容器编排系统来解决这些问题。

在这里插入图片描述

为了解决自动扩缩容和故障后自愈等问题,容器编排技术应运而生


Kubernetes起源与发展


Kubernetes起源

所谓容器编排技术,就是为了更好的管理和部署容器化的应用程序!容器编排系统提供了如下的能力:

  1. 集群管理与基础设施抽象:将多个虚拟机或物理机构建成协同运行的集群,并将这些硬件基础设施抽象为一个统一的资源池
  2. 资源分配和优化:基于配置清单中指定的资源需求与现实可用的资源量,利用成熟的调度算法合理调度工作负载
  3. 应用部署:支持跨主机自动部署容器化应用,支持多版本并存、滚动更新和回滚
  4. 应用伸缩:支持应用实例规模的自动或手动伸缩
  5. 应用隔离:支持为租户、项目或应用进行访问隔离
  6. 服务可用性:利用状态能监测和应用重构等机制确保服务始终健康运行

目前比较流行的容器编排技术开源框架有如下几种,其中 Kubernetes 是最流行的:

  1. Kubernetes:是目前最流行的容器编排工具之一,由Google开发并维护。它提供了完整的容器编排解决方案,包括自动化部署、资源管理和调度、服务发现和负载均衡等功能。
  2. Docker Swarm:是Docker官方提供的容器编排工具,支持自动扩展和管理多个Docker主机上的容器。它提供了简单的命令行界面和RESTful API,方便用户进行操作和管理。
  3. Apache Mesos:是Apache软件基金会的一个项目,旨在提供一个可扩展的分布式系统内核,支持多种编程语言和应用程序。它提供了资源管理和调度功能,可以管理多个容器实例和集群中的任务。
  4. Nomad:是一个轻量级的容器编排工具,支持跨平台和多云环境。它提供了简单易用的API和CLI工具,方便用户进行操作和管理。

⭐️ Kubernetes 一词源于希腊语,意为“舵手”或“飞行员”。因为 Ks 中间有8个单词(ubernete),又简称K8s。它最初是由Google基于GO语言开发的,旨在简化容器部署和管理。Kubernetes的设计灵感来自于Google内部使用的Borg系统,而Borg系统则是由Google工程师根据他们在大规模应用程序管理方面的经验开发的,用于调度数十亿的容器和工作负载。

此后,谷歌基于在公有云底层基础设施方面商业增长的考虑,开发了 Kubernetes 并进行了开源。

Kubernetes发展

Kubernetes 的发展历程可以分为以下几个阶段:

  • 2014年6月 谷歌云计算专家 Eric Brewer在旧金山的发布会上为这款开源工具揭牌。
  • 2015年7月 Kubernetes迭代到 v1.0并在OSCON大会上正式对外公布。
  • 2015年 CNCF基金会成立,Kubernetes 成为CNCF最为核心的项目之一。
  • 2018年 超过1700开发者成为 Kubernetes 项目社区的贡献者,全球有500多长沙龙
  • 2020年 Kubernetes 项目成为贡献者仅次于 Linux项目的第二大开源项目,各大厂商纷纷宣布支持 Kubernetes 作为容器编排的解决方案。
  • 2023年 贡献者 3458starts 99.6kforks 36.6k ,数百家厂商和技术社区共同共建了非常强大的云原生生态!

🎉 如果喜欢这篇文章,点赞👍 收藏关注 ✅ 哦,创作不易,感谢!😀

请添加图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

涛声依旧叭

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

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

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

打赏作者

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

抵扣说明:

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

余额充值