У меня есть кластер, управляемый DC/OS и докционированный сервис, который я хочу развернуть через Marathon. У меня уже есть марафон-фунт, который используется для обнаружения сервисов и балансировки нагрузки других существующих служб. Все эти службы развернуты с использованием сети BRIDGE.Как настроить Marathon-lb для загрузки баланса, запущенного в сети HOST?
Новая услуга предоставляет более одного порта. Порт A предназначен для связи между экземплярами службы, а порт B - для приема запросов от мира. Я хочу использовать сеть HOST (а не BRIGE) для развертывания службы.
Я хотел бы знать, как настроить JSON службы для того, чтобы марафонского фунтам для балансировки нагрузки и разоблачить внешний порта B.
Я уже пробовал различные сценарии и конфигурацию, но никто не работал. Json, который я построил, ниже.
{
"id": "/cassandra-seed",
"cpus": 1.5,
"mem": 8192,
"disk": 0,
"instances": 1,
"container": {
"type": "DOCKER",
"docker": {
"image": "cassandra:2.2.3",
"network": "HOST",
"requirePorts": true,
"privileged": true,
"forcePullImage": false
}
},
"constraints": [["hostname","UNIQUE"]],
"labels": {
"HAPROXY_GROUP": "external"
},
"portDefinitions": [
{ "port": portA,"protocol": "tcp"},
{ "port": portB,"protocol": "tcp"}
]
}
В Marathon documentation указывается, что с помощью явного определения порта B в portDefitions и настройки requirePorts истина, порты службы равны хост-порт. Кроме того, я развернул новую версию марафона-lb, где порт B является его секцией portDefinitions (нарушая диапазон по умолчанию 10000-10100).
Таким образом, я предположил, что, предоставив метку HAPROXY_GROUP в сервисе json, марафон-lb будет отображать порт B по желанию. Однако, похоже, это не так. Если я развожу службу и curl http://marathon-lb.marathon.mesos:portB
, ответ будет «Пустое сообщение от сервера». Однако, если я curl http://physicalNodeIP:portB
, я могу подключиться к экземпляру службы.
Заранее спасибо.
Этот вопрос кажется подозрительно похожим http://stackoverflow.com/q/41586960/1305344. Любой, кто имеет больше опыта работы в DC/OS и Marathon, может прокомментировать их сходство и отметить один дубликат, если они дублируются? –
С моей точки зрения, это разные вопросы. Это относится к конфигурации, необходимой для любого обслуживания, чтобы балансировать нагрузку с помощью Marathon-lb при развертывании в сетевом режиме HOST. В stackoverflow.com/q/41586960/1305344 конкретно ссылаются на службу Cassandra, IP-адреса, назначенные контейнеру и службе, в режиме HOST и BRIDGE, и как два узла Cassandra могут сплетничать в каждом случае. – Manolis