2016-08-20 1 views
1

Я работаю с DC/OS 1.7 с марафоном-фунтом.marathon-lb проверка работоспособности не работает на всех контейнерах spray.io

spray.io 1.3.3 возвращает 400 во все вызовы проверки марафона-фунта/HAProxy: request has a relative URI and is missing a Host header, поэтому марафон-фунт никогда не направляет никаких запросов на услугу.

Проверка здоровья в марафоне является JSON:

"healthChecks": [ 
    { 
     "path": "/health", 
     "protocol": "HTTP", 
     "portIndex": 0, 
     "gracePeriodSeconds": 10, 
     "intervalSeconds": 2, 
     "timeoutSeconds": 10, 
     "maxConsecutiveFailures": 10, 
     "ignoreHttp1xx": false 
    } ], 

и каротаж по spray.io в контейнере Docker является:

[WARN] [08/19/2016 23:53:42.534] [asp-service-akka.actor.default-dispatcher-5] [akka://asp-service/user/IO-HTTP/listener-0/4] Illegal request, responding with status '400 Bad Request': Illegal request: Cannot establish effective request URI of HttpRequest(GET,/health,List(),Empty,HTTP/1.0), request has a relative URI and is missing a Host header

/health конечная точка работает отлично от завитка против Mesos управляемый ip: порт.

я не могу найти какие-либо документы о внесении HAProxy через марафон фунты более снисходительный или подавления spray.io-х 400.

enter image description here

ответ

3

из команды мезосфере, отправляет имя хоста в заголовке через секцию в марафонском "labels": { JSON:

"HAPROXY_0_BACKEND_HTTP_HEALTHCHECK_OPTIONS": " http-send-name-header Host\n timeout check {healthCheckTimeoutSeconds}s\n" 

enter image description here

+1

Я искал это уже несколько дней! Большое спасибо. Хотя я использую сервер, написанный в ржавчине с помощью Iron framework. – zaynetro

1

Пожалуйста, попробуйте добавить HAPROXY_BACKEND_HTTP_HEALTHCHECK_OPTIONS этикетки, вы можете попробовать заменить www с {hostname} в этом примере: https://github.com/mesosphere/marathon-lb/wiki#custom-http-headers-in-health-check

Дополнительные ссылки:

  1. https://github.com/mesosphere/marathon-lb/blob/master/Longhelp.md#haproxy_backend_http_healthcheck_options
  2. https://cbonte.github.io/haproxy-dconv/1.6/configuration.html#4.2-option%20httpchk
+0

ТНХ. Я пробовал {hostname} и получил KeyError: 'hostname' – navicore

+0

https://gist.github.com/navicore/cbfecfea1af7e2d6212ca67bc06f04ed – navicore

Смежные вопросы