Как создать постоянство тома с помощью мезо DCOS и марафона
При использовании следующей команды:
$ dcos marathon app add example.json
Я получаю вывод Error: Object is not valid
example.json
{
"id": "es-cluster",
"env": {
"MARATHON_URL": "http://127.0.0.1:8080",
"APP_ID": "es-cluster",
"ELASTICSEARCH_CLUSTER_NAME": "CLUSTERNAME"
},
"container": {
"type": "DOCKER",
"volumes": [
{
"containerPath": "data",
"mode": "RW",
"persistent": {
"size": 1000
}
}
],
"docker": {
"image": "some/dockerImage",
"network": "BRIDGE",
"portMappings": [{
"containerPort": 9200
}, {
"containerPort": 9300
}]
}
},
"cpus": 0.5,
"mem": 1024,
"instances": 2
}
Если я уберу блок громкости (или оставлю его пустым), он будет работать нормально.
Также работает с блоком громкости непосредственно с Marathon отлично работает.
Как я могу создать приложение с постоянным объемом с помощью DCOS?
1 ответ
Получил это на работу.
Попытался POST для example.json, используя Marathon api http://marathon-ip:8080/v2/apps, и получил следующее сообщение:
{"message": "Недопустимый объект","details":[{"path":"/value/upgradeStrategy","errors":["получил 1.0, ожидается 0.5 или менее", "получил 1.0, ожидается 0.0"]},{"path":"/value/isResident","errors":[" должно быть false"]}]}
Затем я создал приложение (с объемом), используя пользовательский интерфейс Marathon, и скопировал json для справки. Я заметил, что марафон добавляет этот блок:
"upgradeStrategy": {
"minimumHealthCapacity": 0.5,
"maximumOverCapacity": 0
}
после добавления этого блока в мой оригинальный example.json (опубликованный в вопросе) все заработало.