[英]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,以確定運行應用程序實例的主機和端口以及已知的“友好”端口是什么。
在服務發現文章的示例中,第一個應用程序具有友好端口80
和443
,而第二個應用程序具有友好端口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配置。
使用Mesos-DNS,您還可以執行以下操作:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.