簡體   English   中英

HaProxy用於marathon mesos docker鏈接容器上的服務發現

[英]HaProxy for service discovery on a marathon mesos docker linked containers

請不要在我檢查的任何地方詢問。 這就是我所做的。 我能夠部署單個mesos,marathon和docker實例。 向前邁出下一步我希望有2個mesos slave(docker containers)相互鏈接。 只需使用docker,就可以使用docker鏈接功能實現相同功能。 但是在使用業務流程(mesos)和調度程序(marathon)時,您似乎需要使用服務發現。

我的設置很簡單,可以在一台主機上運行。 所以我將有2個docker容器,一個運行一個簡單的pub / sub和一個運行rabbitmq。 如何在此設置中使用HA PRoxy。 我看過mesosphere http://mesosphere.com/docs/getting-started/service-discovery/提供的一些文件,但目前尚不清楚如何去做。

使用Mesos + Marathon + Docker進行服務發現的規范方法是您鏈接的文檔中描述的內容。

我假設你已經能夠讓兩個應用程序在Marathon中運行了。

通常情況是:

1)配置應用程序定義以包括應用程序所需的端口。

2)您設置提供的haproxy-marathon-bridge腳本以使用像cron這樣的實用程序定期運行。 這個腳本擦除了Marathon的API,以確定運行應用程序實例的主機和端口以及已知的“友好”端口是什么。

在服務發現文章的示例中,第一個應用程序具有友好端口80443 ,而第二個應用程序具有友好端口8081

然后,該腳本生成haproxy.cfg配置,該配置具有將localhost:friendly_port映射到actual_host:actual_port規則。

3)配置應用程序以在localhost:friendly_port上相互查找。 HAProxy將適當地路由連接。

希望這有助於您理解!

我創建了一個可以在mesos中運行的haproxy服務發現docker容器。 它不是生產准備好的,但我在我的開發環境中使用它正在完成您正在嘗試做的事情。 我更喜歡馬拉松比賽的原因是我沒有找到一個很好的方法來使用haproxy-marathon-bridge進行復雜的haproxy配置。 使用spiderweb您可以為haproxy配置創建一個模板,使您可以執行諸如acl路由等操作。它不支持健康檢查,這是在生產准備就緒之前需要完成的事情。 你可以在這里看到這個項目https://github.com/SBRDevelopment/spiderweb

我們將Mesos和Marathon與consul和registartor結合在一起,因此最終您可以使用consul-template自動生成haproxy配置。

嘗試https://github.com/eBayClassifiedsGroup/PanteraS所有在一個容器中。

使用Mesos-DNS,您還可以執行以下操作:

  1. 如本指南中所述設置mesos-dns: http//programmableinfrastructure.com/guides/service-discovery/mesos-dns-haproxy-marathon/ (您可以跳過不需要的HAProxy步驟)
  2. 當您啟動docker容器時,請確保它們的/etc/resolv.conf文件中有“namespace%slave_ip_with_mesos_dns%”(用IP地址替換字符串)。
  3. 如果讓我們說一個應用程序的名稱是“偷看”它應該可以從peek.marathon.mesos的其他應用程序訪問

暫無
暫無

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

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