簡體   English   中英

Minikube、Kube.netes、Docker Compose、Docker Swarm 等之間的區別

[英]Difference between Minikube, Kubernetes, Docker Compose, Docker Swarm, etc

我是集群容器管理的新手,這個問題是這里所有新生的基礎。

我閱讀了一些文檔,但我的理解仍然不太清楚,所以任何線索……有助於理解?

  1. 某處提到,Minikube 用於在本地運行 Kube.netes。 因此,如果我們想在我的四節點 Raspberry Pi 中維護集群管理,那么 Minikube 不是一個選擇嗎?
  2. Minikube 是否只支持單節點系統?
  3. Docker Compose 是一組指令和一個 YAML 文件,用於配置和啟動多個 Docker 容器。 我們可以用它來啟動不同主機的容器嗎? 那么對於需要調用第二台主機的容器的簡單編排,我不需要任何集群管理,對吧?
  4. Docker Swarm 和 Kube.netes 之間有什么聯系? 兩者都是獨立的集群管理。 在樹莓派上使用 Kube.netes 效率高嗎? 任何問題,因為我被告知單節點中的 Kube.netes 占用了完整的 memory 和 CPU 使用率? 是真的嗎?
  5. 樹莓派還有其他集群管理嗎?

我認為這 4-5 組會幫助我更好。

假設您的目標是在多個不同的基於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集群。

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. 是的,minikube僅限本地
  2. 是的,minikube旨在成為單節點
  3. Docker-compose實際上不是像swarm和Kubernetes那樣的編排系統。 它有助於在單個主機上運行相關容器,但它不用於多主機。
  4. Kubernetes和Docker Swarm都是容器編排系統。 這些系統擅長管理擴展,但它們具有與之相關的開銷,因此它們更適合於多節點。
  5. 我不知道Raspberry Pi的編排選項的范圍,但有Kubernetes的例子,例如使用Kubernetes構建自己的雲和一些Raspberry Pi

容器是應用程序部署的未來。 容器是docker中最小的部署單位。 docker中有三個組件作為docker engine運行單個容器, docker-compose在單個主機上運行多容器應用程序, docker-swarm在主機上運行多容器應用程序,這也是一個編排工具。

在kubernetes中,最小的部署單位是Pod(由多個容器組成)。 Minikube是一個單節點集群,您可以在本地安裝它,在本地嘗試,測試和感受kubernetes功能。 但是,您無法將其擴展到多台計算機。 Kubernetes是一個像Docker Swarm這樣的編排工具,但在功能,擴展,彈性和安全性方面比Docker Swarm更為突出。

您可以進行分析並考慮哪種工具適合您的要求。 每個人都有自己的優點或缺點,如docker swarm,很好,很容易管理小群集,而kubernetes更適合更大的一次。 還有另一個編排工具Mesos ,它也很受歡迎並用於最大規模的集群。
看看這個, 選擇你自己的冒險 ,但這只是一個通用的比喻,只有理解,因為這三種技術都在迅速發展。

對於Pi,您可以在一個或多個Pi上使用Docker Swarm模式。 您甚至可以運行ARM仿真來測試Docker for Windows / Mac,然后再嘗試將其全部直接在Pi上運行。 Kubernetes也是如此,因為它現在內置於Docker for Windows / Mac(不需要minikube)。

Alex Ellis 在Pi和Docker 有一個很好的博客 ,這篇文章也可能有所幫助

我一直在嘗試在 Raspberry Pis (3Bs) 的 su.net 上編排 Docker 個容器。

我發現 Docker-swarm 最容易設置和使用,並且足以滿足我的目的。 指南: https://docs.docker.com/engine/swarm/swarm-tutorial/

對於 Kube.netes,有兩個主要選項; k3smicrok8s 一些指南:

k3s

https://bryanbende.com/development/2021/05/07/k3s-raspberry-pi-initial-setup

微k8s

https://ubuntu.com/tutorials/how-to-kube.netes-cluster-on-raspberry-pi#1-overview

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM