В производственной среде (с использованием 10-ти узлового кластера) «алгоритм упаковки бина» nomad вызывает большие проблемы с использованием системы.
Возможное решение - использовать следующие правила / политики:
1. Отдельные хосты
Вариант использования: в основном для нескольких слушателей tcp / udp за LoadBalancer. Это работает нормально, и именно то, что вы ожидаете.
2. Ограничение ресурсов
Via nomad-client conf as follows:
client {
enabled = true
cpu_total_compute = 12000
reserved {
cpu = 3000
memory = 33000
disk = 1
}
network_speed = 10000
servers = ["127.0.0.1:4647"]
options {
"driver.raw_exec.enable" = "1"
}
}
Painful and limiting
3. Раздел Spread
Sounds promising but could not get it to work using NOMAD-SDK.
Nomad java SDK 0.9.0-SNAPSHOT не поддерживает раздел Spread через API. Вместо этого можно использовать метод "addUnmappedProperty" для добавления пользовательских JSON структур / массивов.
Job jobSpec = nomadContext.getJob();
List<Object> spreads = new ArrayList<>();
Map<String, Object> spreadStanza = new HashMap<>();
spreadStanza.put("Attribute", "${node.unique.id}");
spreadStanza.put("Weight", 100);
// spreadStanza.put("SpreadTarget", null);
spreads.add(spreadStanza);
jobSpec.addUnmappedProperty("Spreads", spreads);
for(TaskGroup taskGroup: jobSpec.getTaskGroups()){
taskGroup.addUnmappedProperty("Spreads", spreads);
}
Но, к сожалению, не удалось заставить его работать, распределение распределения не показано в подробный статус задания:
В другом примере используется простая спецификация задания hcl, развернутая с помощью параметров командной строки:
job "sleep" {
datacenters = ["dc1"]
spread {
attribute = "${node.unique.id}"
weight = 100
}
group "example" {
count=10
spread {
attribute = "${node.unique.id}"
weight = 100
}
task "server" {
driver = "raw_exec"
config {
command = "/bin/sleep"
args = [
"500"
]
}
resources {
network {
mbits = 10
}
}
}
}
}
В этом случае показывается распределение распределения
кочевник алло c статус -вербоз 1feb7476
Node job-anti-affinity node-reschedule-penalty node-affinity allocation-spread binpack final score
4c4e3bb2-9568-3f5d-3a8c-fd056f258ed0 -0.4 0 0 0.667 0.896 0.387
4b36b048-a24b-e0e9-a789-625764fcfa70 -0.5 0 0 -0.667 0.901 -0.0886
Я ценю любую помощь.
Спасибо.