Kubernetes 是什么?

发布讲师:李晓辉

发布时间:2021年10月26日

浏览量:90(次)

简介:

Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。

 

Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 建立在 Google 在大规模运行生产工作负载方面拥有十几年的经验的基础上,结合了社区中的一些想法和实践。

 

IT基础架构大致跨越了下图中三个跨度,分别是传统部署、虚拟化部署、容器化部署

传统部署时代:

在特别早期的时候,我们有任何需求都会部署到物理机上,比如有一个web需求,就买一个web服务器,有一个ftp需求,就买一个ftp服务器,有一个oa需求,就买一个oa服务器等等,虽然说满足了业务需要,但是这有一个问题,每个服务器常年都处于低压力水平,也就是说,每个服务器的资源利用率较低,或者说特别低,这就导致服务器的成本和维护成本居高不下

 

虚拟化部署时代:

由于在传统物理机部署时代造成了大量服务器成本等资源的浪费,后期就引入了虚拟化解决问题,有了虚拟化之后,用虚拟化技术在单个物理服务器上运行多个虚拟机。 这样一来,服务器的利用率也解决了,而且虚拟机还可以在不同的服务器上漂移来实现高可用性,而且每个虚拟机之后还能实现隔离性。

 

容器部署时代:

虽然说虚拟化部署时代解决了一定的隔离性和成本问题,但是它也有问题,因为每个虚拟机都得有完整独立的操作系统,这无形中也是一种浪费,因为操作系统也有吃很多资源,而且由于每个虚拟机都有自己独立的操作系统,这就导致可能在不同的服务器上部署应用的时候表现不一样,因为操作环境不同。而这一切,都可以用容器来解决,容器可以在应用程序之间共享操作系统,大大节约了独立操作系统吃资源的问题,而且容器是基于镜像的,在镜像中,仅包含了应用以及应用运行所需要的运行环境,也就是说,应用并不依赖底层操作系统,

 

既然容器那么好,为什么需要 Kubernetes,它能做什么?

容器大大降低了对资源的占用以及做到了标准化、提升了可移植性,但是这有一个问题,容器需要管理员启动、运行、维护,出了问题,需要大量的人工操作,如果系统处理此行为,会不会更容易?答案显而易见,而K8S就能完美的解决此问题,管理员只需要在K8S中申明你所需要的容器,以及需要几个容器,K8S就会按照管理员的指示,自动选择相应的节点,并运行出来容器,一旦容器出了问题,或者容器所在的节点出了问题,K8S就会立刻发现,并在其他节点中重建刚出出问题的容器,而这一切都都无需管理员干预,这就是K8S的容器编排能力。