📜  Kubernetes – 物理服务器 vs 虚拟机 vs 容器

📅  最后修改于: 2022-05-13 01:57:09.783000             🧑  作者: Mango

Kubernetes – 物理服务器 vs 虚拟机 vs 容器

Kubernetes 是一个用于管理容器化工作负载和服务的开源框架,它允许声明式配置和自动化。它拥有庞大且快速扩展的生态系统。 Kubernetes 的服务、支持和工具广泛可用。

Kubernetes 是一个希腊词,意思是“舵手”或“飞行员”。首字母缩略词 K8s 来自计算字母“K”和“s”之间的八个字母。 2014 年,谷歌将 Kubernetes 项目开源。 Kubernetes 将 Google 15 年大规模运营生产工作负载的经验与来自社区的最佳创意和实践相结合。

物理服务器:

用于在物理服务器上运行应用程序的组织。在物理服务器中,无法为应用程序设置资源边界,从而导致资源分配问题。例如,当许多应用程序在物理服务器上运行时,有时一个程序会消耗大部分资源,导致其他应用程序性能不佳。

一个可能的选择是在单独的物理服务器上运行每个程序。然而,这并没有扩展,因为资源没有得到充分利用,而且维护大量物理服务器的成本很高。

虚拟机:

虚拟化作为一种解决方案被引入。它使您能够在单个物理服务器的 CPU 上运行多个虚拟机 (VM)。虚拟化允许程序在虚拟机 (VM) 之间隔离,并通过防止一个应用程序的信息被另一个应用程序自由访问来提供一定程度的安全性。

虚拟化提高了物理服务器上的资源效率,通过允许快速添加或更改应用程序来提高可扩展性,降低硬件成本等等。您可以使用虚拟化将一组物理资源作为一次性虚拟机集群提供。

在虚拟化硬件之上,每台虚拟机都是一台具有所有组件的整机,包括它自己的操作系统。

容器:

容器类似于虚拟机 (VM),除了它们允许程序共享相同的操作系统 (OS)。因此,容器被认为是轻的。容器和虚拟机一样,有自己的文件系统、CPU、内存、进程空间和其他资源。它们可以跨云和操作系统分布移植,因为它们与底层基础设施分离。

容器因其额外的好处而越来越受欢迎,其中包括:

  • 容器镜像创建比使用虚拟机镜像开发和部署敏捷应用更加简单高效。
  • 持续开发、集成和部署:支持创建和部署可靠且频繁的容器镜像,以及快速高效的回滚(由于镜像不变性)。
  • 开发和运营之间的关注点分离:在构建/发布期间而不是部署期间生成应用程序容器映像,将应用程序与基础架构隔离。
  • 可观察性:此功能不仅公开操作系统级别的数据和指标,还公开应用程序运行状况和其他信号。
  • 开发、测试和生产期间环境的一致性:在笔记本电脑上,它的工作方式与在云中的工作方式相同。
  • 云和操作系统发行版的可移植性:在 Ubuntu、RHEL、CoreOS、本地、主要公共云和其他任何地方运行。
  • 以应用程序为中心的管理:从在虚拟硬件上运行操作系统转向在具有逻辑资源的操作系统上运行应用程序。
  • 松散链接、分布式、弹性和解放的微服务:应用程序不是在单个大型单一用途机器上运行的单一堆栈,而是分解成可以动态部署和管理的更小、独立的组件。
  • 由于资源分离,应用程序性能是可预测的。
  • 资源使用效率高、密度高。