Minikube,Kubernetes,Docker Compose,Docker Swarm等之间的区别

问题描述 投票:2回答:5

我是集群容器管理的新手,这个问题是这里所有新人的基础。

我读了一些文档,但是,我的理解还不太清楚,所以任何线索......都有助于理解?

  1. 在某处提到,Minikube用于在本地运行Kubernetes。因此,如果我们想在我的四节点Raspberry Pi中维护集群管理,那么Minikube不是选项吗?
  2. Minikube是否仅支持单节点系统?
  3. Docker Compose是一组指令和一个YAML文件,用于配置和启动多个Docker容器。我们可以用它来启动不同主机的容器吗?然后,对于我需要调用第二个主机的容器的简单编排,我不需要任何集群管理,对吧?
  4. Docker Swarm和Kubernetes之间有什么联系?两者都是独立的集群管理。在Raspberry Pi上使用Kubernetes是否有效?任何问题,因为我被告知单个节点中的Kubernetes占用了完整的内存和CPU使用量?这是真的吗?
  5. Raspberry Pi还有其他集群管理吗?

我认为这4-5集将帮助我更好。

docker raspberry-pi kubernetes docker-swarm minikube
5个回答
3
投票

假设您的目标是在多个不同的基于Raspberry Pi的节点上运行一组容器:

  • Minikube不太合适。这将在Windows,MacOS或Linux上启动单个虚拟机,并在其中安装Kubernetes集群。开发人员通常会使用它来快速启动笔记本电脑或台式机上的集群,以进行开发和测试。
  • Docker Compose是一个用于管理相关容器集的系统。因此,例如,如果您有一个想要一起管理的Web服务器和数据库,则可以将它们放在一个Docker Compose文件中。
  • Docker Swarm是一个用于管理多个主机上的容器集的系统。它基本上是Kubernetes的替代品。它的功能比Kubernetes少,但设置起来要简单得多。

如果你想要一个非常简单的多节点容器集群,我会说Docker swarm是一个合理的选择。如果您明确想要尝试Kubernetes,我会说kubeadm在这里是个不错的选择。 Kubernetes通常比Docker Swarm有更高的资源要求,所以它可能不太适合它,虽然我知道人们已经成功地在Raspberry Pis上运行Kubernetes集群。


2
投票

我得到的印象是你主要是在寻找确认,如果可以,我很乐意帮助你。

  1. 是的,minikube仅限本地
  2. 是的,minikube旨在成为单节点
  3. Docker-compose实际上不是像swarm和Kubernetes那样的编排系统。它有助于在单个主机上运行相关容器,但它不用于多主机。
  4. Kubernetes和Docker Swarm都是容器编排系统。这些系统擅长管理扩展,但它们具有与之相关的开销,因此它们更适合于多节点。
  5. 我不知道Raspberry Pi的编排选项的范围,但有kubernetes例子,如Build Your Own Cloud with Kubernetes and Some Raspberry Pi

2
投票

Docker Compose一个实用程序,用于使用单个docker-compose up在单个主机上启动多个docker容器。这使得更容易一次启动多个容器,而不是执行多个docker run命令。

Docker swarm Docker的本机容器编排器。 Docker swarm允许您创建在多台计算机上运行的docker容器集群。它提供了诸如复制,缩放,自我修复等功能,即当一个人死亡时启动一个新容器......

Kubernetes也是一个容器协调者。 Kubernetes和Docker swarm可以被视为彼此的替代品。他们都试图处理从集群开始的容器管理

Minikube创建一个真正的kubernetes集群需要在内部或云平台上拥有多台计算机。如果有人刚接触Kubernetes并试图通过玩Kubernetes来学习,这并不总是方便的。要解决这个问题,你可以启动一个非常基本的Kubernetes集群,它由你机器上的一个虚拟机组成,你可以用它来玩Kubernetes。

Minikube不适用于生产或多节点群集。有许多工具可用于创建多节点Kubernetes集群,例如kubeadm


1
投票

对于Pi,您可以在一个或多个Pi上使用Docker Swarm模式。您甚至可以运行ARM仿真来测试Docker for Windows / Mac,然后再尝试将其全部直接在Pi上运行。 Kubernetes也是如此,因为它现在内置于Docker for Windows / Mac(不需要minikube)。

亚历克斯埃利斯有一个good blog on Pi和Docker and this post may help too


1
投票

容器是应用程序部署的未来。容器是docker中最小的部署单位。 docker中有三个组件作为docker engine运行单个容器,docker-compose在单个主机上运行多容器应用程序,docker-swarm在主机上运行多容器应用程序,这也是一个编排工具。

在kubernetes中,最小的部署单位是Pod(由多个容器组成)。 Minikube是一个单节点集群,您可以在本地安装它,并在本地尝试,测试和感受kubernetes功能。但是,您无法将其扩展到多台计算机。 Kubernetes是一个像Docker Swarm这样的编排工具,但在功能,扩展,弹性和安全性方面比Docker Swarm更为突出。

您可以进行分析并考虑哪种工具适合您的要求。每个人都有自己的优点或缺点,如docker swarm,很好,很容易管理小群集,而kubernetes更适合更大的一次。还有另一个编排工具Mesos,它也很受欢迎,并用于最大规模的集群。 看看这个,Choose your own Adventure但是,这只是一个通用的类比,只有理解,因为这三种技术都在快速发展。

© www.soinside.com 2019 - 2024. All rights reserved.