Mesos 部署的最佳基礎

Mesos 部署的最佳基礎

我們目前正在設計新的 Apache Mesos 雲端設定的架構。目標是透過將不同的堆疊移至同一架構上來統一我們的系統。主要工作負載是使用 Apache Spark 和我們的企業基礎架構(包括 Web 伺服器、郵件伺服器等)進行大數據分析。

我們的想法是在 Docker 容器中運行我們的 Web 服務,該容器運行在 Mesos 的可用調度程序之一(Marathon/Chronos、Aurora 或 Singularity)之上。因此,這將是第一個 Mesos 框架組。接下來,我們將擁有 Apache Spark 框架和幾個用於資料儲存的資料庫框架。這將是第二組 Mesos 框架。我們將在並行運行它們進行測試後選擇具體細節。

然而,我們很難決定在什麼基礎上運行 Mesos 本身。理想情況下,我們希望它盡可能靠近金屬運行。我們還希望使用編排解決方案來確保 Mesos 和框架守護程序始終運行/在失敗時重新啟動。我們正在考慮的選項如下:

1) 在最小的作業系統中將 Mesos 和框架作為 docker 容器運作。在這方面,我們目前傾向於CoreOS和Fleet。

2) 直接在 Ubuntu/Debian 伺服器上執行 Mesos 和框架。對於這個選項,我們傾向於 Foreman 和 Puppet。

對於這個問題,我們正在尋找解決方案,按重要性順序:

  • 配置最簡單
  • 是最容易維護和保持更新的
  • 開銷最小

我們之前沒有使用過 CoreOS,但這似乎是我們正在努力的選擇。我對此遇到的一個大(主觀)問題是我們在 Docker 容器上運行 Mesos,然後在 Mesos 上運行 Docker 容器。這對我來說似乎是“不乾淨的”和錯誤的。這樣的考慮是否毫無道理?

類似的想法涉及層之間的冗餘。為了解釋我的想法,我更希望 Mesos 是一個直接運行在金屬之上的實際作業系統。似乎無論您使用什麼基礎,您最終都會在架構的多個層上獲得相同的預期功能(即 CoreOS&Fleet&SystemD == Mesos&Marathon&Chronos)。這是不可避免的嗎?

牢記我們的標準,是否有其他好的選擇來運行我們未能考慮的 Mesos 下面的層?

答案1

在Mesos 下配置和運行服務可以是一項複雜的操作,也可以是一項簡單的操作,您應該先根據您的需求和目標定義要在其下運行的服務模式,以獲得您想要的靈魂。

我在 HAProxy 下運行超過 70 台機器的設定和各種不同的服務,以透過 Mesos-DNS 和 Marathon、Api 網關、Chronos、Jenkins、Docker、Collectd 和 Graphite 等實現動態負載平衡。

現在回答您的直接問題:

  • 使用 Mesos 配置最簡單「最喜歡的」Linux 發行版你最熟悉的。
  • 最容易維護的是您最熟悉的發行版。
  • 關於開銷,Mesos 是一個軟體系統,除了它自己的之外,還使用底層作業系統庫和其他軟體功能,並且將Mesos 作為作業系統(同時與硬體和軟體一起工作...)是一種完全錯誤的想法。

因此,我對您的最佳答案是使用您最喜歡的 Linux 發行版並安裝 Mesos,或者如果您想學習新的東西並且可能快速且輕鬆地學習,請使用(開源)DCOS核心作業系統

相關內容