新钛云服已为您服务1487天
两个最具影响力的云计算开源项目之间的异同。
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. &nb