Как создать постоянство тома с помощью мезо 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 (опубликованный в вопросе) все заработало.

Другие вопросы по тегам