Mesos 0.22.0 Release

Mesos 0.22.0 has been released!

There’s a nice video which goes through the new features in 0.22.0 as well as some features scheduled for the 0.23.0 release.

I’ve put together some notes I put together while watching the video.

Disk Isolation

Disk Isolation allows the MesosContainerizer to enforce a disk quota. Prior to 0.22.0 mesos supported isolation of cpu, memory, pid namespacing, network ports and bandwidth.

To use this new isolation, two new flags are required:

# enable disk isolation --isolation=“posix/disk” --enforce_container_disk_quota # set the quota, in megabytes -—resources=“disk:64”

Disaster Prevention

There are several mechanisms to prevent disaster that were in place prior to the 0.22.0 release:

master commits suicide when losing connection to ZK

compute nodes ignore shutdown requests received from master that is not leader

recovery remove limit (% of cluster)

In this release the ability to rate limit slave removal was added which could allow administrators to react when they notice the slave removals occurring.

To configure the rate limit, a new flag is available:

# remove one slave per minute --slave_removal_rate_limit=1/1mins

Labels and Discovery

Tasks can now have labels, which are simply key/value pairs. This allows tasks to be tagged, for example environment: production .

Additionally, tasks can now include DiscoveryInfo. This information can be used for service discovery as it can provide common attributes such as environment , location and version . However, it also supports Ports (which can have names), as well as arbitrary labels.

Video link: https://youtu.be/LC3dlmdc4bc?t=600d168a75c2754f26d5368f4cff414752/include/mesos/mesos.proto#L1093

More features and improvements

There are other features and improvements which are highlighted in the video. I imagine the mesos website will be updated soon with a summary as well.

What to look forward to

With a release being published within the hour, naturally it’s time to look at what’s coming next:

persistent primitives - to support storage-like services

dynamic reservations - allow a framework to dynamically reserve offered resources, allowing those resources to only be re-offered to the same framework (to support stateful services)

ssl support

optimistic offers - resource offers are currently offered to a single framework at a time, with optimistic offers the offers would be handed out in parallel.

Again, there’s other features, improvements and bug fixes slated for Mesos 0.23.0 but this should at least give a taste for what’s to come.