Skip to content

v0.8.2

Compare
Choose a tag to compare
@kolloch kolloch released this 05 Jun 09:48

On behalf of the Marathon contributors, we are pleased to announce
the availability of version 0.8.2.

Note: We highly recommend to use this version of marathon on top of mesos-0.22.1
since this addresses a serious bug in the state abstraction.

Overview

New health check option ignoreHttp1xx

When set to true, the health check for the given app will ignore HTTP
response codes 100 to 199, in contrast to considering it as unhealthy. With this unbounded task startup times can be handled: the tasks are neither
healthy nor unhealthy as long as e.g. "100 - continue" is returned.

HTTPS support for health checks

Health checks now work with HTTPS.

Faster (configurable) task distribution

Mesos frequently sends resource offers to Marathon (and all other frameworks). Each offer will represent the available resources of a single node in the cluster. Before this change, Marathon would only start a single task per resource offer, which led to slow task launching in smaller clusters. In order to speed up task launching and use the resource offers Marathon receives from Mesos more efficiently, we added a new offer matching algorithm which tries to start as many tasks as possible per task offer cycle. The maximum number of tasks to start is configurable with the following startup parameters:

--max_tasks_per_offer (default 1): The maximum number of tasks to start on a single offer per cycle

--max_tasks_per_offer_cycle (default 1000): The maximum number of tasks to start in total per cycle

Example

Given a cluster with 200 nodes and the default settings for task launching. If we want to start 2000 tasks, it would take at least 10 cycles, because we are only starting 1 task per offer, leading to a total maximum of 200. If we change the max_tasks_per_offer setting to 10, we could start 1000 tasks per offer (the default setting for max_tasks_per_offer_cycle), reducing the necessary cycles to 2. If we also adjust the max_tasks_per_offer_cycle to 2000, we could start all tasks in a single cycle (given we receive offers for all nodes).

Important

Starting too many tasks at once can lead to a higher number of status updates being sent to Marathon than it can currently handle. We will improve the number of events Marathon can handle in a future version. A maximum of 1000 tasks has proven to be a good default for now. max_tasks_per_offer should be adjusted so that NUM_MESOS_SLAVES * max_tasks_per_offer == max_tasks_per_offer_cycle. E.g. in a cluster of 200 nodes it should be set to 5.

Security settings configurable through env variables

Security settings are now configurable through the following environment variables:

$MESOSPHERE_HTTP_CREDENTIALS for HTTP authentication (e.g. export MESOSPHERE_HTTP_CREDENTIALS=user:password)

$MESOSPHERE_KEYSTORE_PATH + $MESOSPHERE_KEYSTORE_PASS for SSL settings

Isolated deployment rollbacks

Marathon allows rolling back running deployments via the DELETE /v2/deployments/{deploymentId} command or the "rollback" button in the GUI.

In prior Marathon versions, deployment rollbacks reverted all applications to the state before the selected deployment. If you performed concurrent deployments, these would also be reverted.

Now Marathon isolates the changes of the selected deployment and calculates a deployment plan which prevents changing unrelated apps.

Empty groups can be overwritten by apps

Instead of declining the creation of an app with the same name as a previously existing group, the group will now be removed if empty and replaced with the app.

Performance improvements

App and task related API calls should be considerably faster with large amounts of tasks now.

List of closed issues:
https://github.com/mesosphere/marathon/issues?q=milestone%3A0.8.2+is%3Aclosed

Tarball:
https://downloads.mesosphere.io/marathon/v0.8.2/marathon-0.8.2.tgz

SHA:
https://downloads.mesosphere.io/marathon/v0.8.2/marathon-0.8.2.tgz.sha256

Changelog from Marathon 0.8.1 to 0.8.2:

v0.8.1...v0.8.2

Commits Contributor
71 Dario Rexin
54 Peter Kolloch
14 Matthias Veit
13 Connor Doyle
12 mlunoe
10 Sunil Shah
4 drexin
4 Sielski
3 Lukas Lösche
3 aquamatthias
2 Felix Bechstein
2 Tobi Knaup
2 Krystian Nowak
2 Jason Swartz
1 Wouter Kwakernaak
1 Xu Lijian
1 Zhuoyun Wei
1 mroth
1 nevins-b
1 Dominic Hamon
1 Dr. Stefan Schimanski
1 Ian Babrou
1 Joerg Schad
1 Joshua C. Randall
1 José Armando García Sancio
1 Kamil Warguła
1 Ken Sipe
1 Making GitHub Delicious.
1 Michael Hausenblas
1 Scott Rankin
1 Seth Hoenig
1 Timo Reimann

generated by git shortlog -s -n v0.8.1..v0.8.2