加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_郴州站长网 (http://www.0735zz.com/)- 云通信、区块链、物联设备、云计算、站长网!
当前位置: 首页 > 云计算 > 正文

一文了解Kubernetes 与 Docker

发布时间:2022-08-05 14:23:22 所属栏目:云计算 来源:互联网
导读:两个最具影响力的云计算开源项目之间的异同。 Kubernetes vs. Docker 是一个在云计算行业被多次提及的话题。无论你来自非技术背景,需要快速介绍,还是需要做商业决策,我都希望以下几点能一劳永逸地澄清这件事。 我们需要超越围绕 Kubernetes 和 Docker 的
  两个最具影响力的云计算开源项目之间的异同。
 
  Kubernetes vs. Docker 是一个在云计算行业被多次提及的话题。无论你来自非技术背景,需要快速介绍,还是需要做商业决策,我都希望以下几点能一劳永逸地澄清这件事。
 
  我们需要超越围绕 Kubernetes 和 Docker 的炒作。这些词的意思很重要,在它们之上运行您的业务之前要掌握。
 
  Kubernetes 和 Docker 之间的共生关系
  问题“Kubernetes vs. Docker?” 本身是相当荒谬的,就像将苹果比作橘子一样。一个不是另一个的替代品。恰恰相反,Kubernetes 可以在没有 Docker 的情况下运行,而 Docker 可以在没有 Kubernetes 的情况下运行。但是 Kubernetes 可以(并且确实)从 Docker 中受益匪浅,反之亦然。
 
  Docker 是一个独立的应用程序,可以安装在任何计算机上以运行容器化应用程序。容器化是一种在操作系统上运行应用程序的方法,以便应用程序与系统的其余部分隔离。尽管可能有其他容器在同一系统上运行,但您为应用程序创建了一种错觉,认为它正在获得自己的操作系统实例。Docker 使我们能够在单个操作系统上运行、创建和管理容器。
 
  Kubernetes 将其增加到 11。如果您在一堆主机(不同的操作系统)上安装了 Docker,则可以利用 Kubernetes。这些节点或 Docker 主机可以是裸机服务器或虚拟机。然后,Kubernetes 可以让您从单个命令行或仪表板跨所有这些节点自动执行容器配置、网络、负载平衡、安全性和扩展。由单个 Kubernetes 实例管理的节点集合称为 Kubernetes 集群。
 
  现在,为什么首先需要有多个节点?其背后的两个主要动机是:
 
  1. 使基础设施更加健壮——即使某些节点离线,您的应用程序也将在线,即高可用性。
 
  2. 使您的应用程序更具可扩展性——如果工作负载增加,只需生成更多容器和/或向 Kubernetes 集群添加更多节点。
 
 
 
  Kubernetes 和 Docker 之间的差异
  原则上,Kubernetes可以使用任何容器化技术。Kubernetes 可以集成的两个最流行的选项是 rkt 和 Docker。然而,Docker赢得了最大的细分市场,这导致在完善 Docker 和Kubernetes 之间的集成方面付出了很多努力,比任何其他容器化技术都多。
 
  同样,Docker背后的公司 Docker Inc. 也提供了自己的容器编排引擎,名为 Docker Swarm。但即使是他们也意识到 Kubernetes 已经上升到甚至 Docker for Desktop(MacOS 和 Windows)都带有自己的 Kubernetes 发行版。
 
  如果有人对在基于 Docker 的产品中采用 Kubernetes 感到紧张,那么最后一点将消除所有疑虑。这两个项目都全心全意地相互拥抱,并从这种共生关系中受益匪浅。
 
  Kubernetes 和 Docker 之间的相似之处
  这些项目不仅仅是技术,它们是一个人的社区,尽管存在差异,但由业内一些最聪明的人组成。当志同道合的人合作时,他们会交换聪明的想法并相互学习最佳实践。
 
  这些是Kubernetes 和 Docker 共享的一些想法:
 
  1. 他们对基于微服务的架构的热爱(稍后会详细介绍)。
 
  2. 他们对开源社区的热爱。两者都是主要的开源项目。
 
  3. 它们主要是用 Go 编写的,因此可以将它们作为小型轻量级二进制文件发送。
 
  4. 他们使用人类可读的 YAML 文件来指定应用程序堆栈及其部署。
 
  从理论上讲,您可以在不了解另一个的情况下了解其中一个。但请记住,在实践中,如果您从 Docker 在单机上运行的简单案例开始,然后逐渐了解 Kubernetes 如何发挥作用,您将受益更多。
 
  什么是 Docker?
  有两种看待 Docker 的方式。第一种方法涉及将 Docker 容器视为真正的轻量级虚拟机。第二种方法是将 Docker 视为软件打包和交付平台。后一种方法被证明对人类开发人员更有帮助,并导致该技术得到广泛采用
 
  Docker 容器概述:
  传统上,云服务提供商使用虚拟机将正在运行的应用程序相互隔离。管理程序或主机操作系统为许多客户操作系统提供虚拟 CPU、内存和其他资源。每个来宾操作系统都像在实际物理硬件上运行一样工作,理想情况下,它不知道在同一物理服务器上运行的其他来宾操作系统。VMware 是最早普及这一概念的公司之一。
 
  但是,这种虚拟化存在几个问题。首先,资源的供应需要时间。每个虚拟磁盘映像都很大很笨重,准备使用 VM 可能需要长达一分钟的时间! 其次,也是一个更重要的问题,是系统资源的低效利用。操作系统内核是控制狂,想要管理他们认为可用的一切。
 
  因此,当客户操作系统认为它有 2GB 内存可用时,它会控制该内存,即使在该操作系统上运行的应用程序只使用其中的一半。 另一方面,当我们运行容器化应用程序时,我们虚拟化操作系统(您的标准库、包等)本身,而不是硬件。
 
  现在,您不再为 VM 提供虚拟硬件,而是为应用程序提供虚拟操作系统。如果需要,您可以运行多个应用程序并对其资源利用率施加限制,并且每个应用程序都将在运行时忽略与其一起运行的数百个其他容器。

(编辑:开发网_郴州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读