Author: dlester
Date: Fri Oct  9 08:10:08 2015
New Revision: 1707671

URL: http://svn.apache.org/viewvc?rev=1707671&view=rev
Log:
Updates documentation.

Added:
    
mesos/site/publish/documentation/latest/networking-for-mesos-managed-containers/
    
mesos/site/publish/documentation/latest/networking-for-mesos-managed-containers/index.html
    mesos/site/publish/documentation/networking-for-mesos-managed-containers/
    
mesos/site/publish/documentation/networking-for-mesos-managed-containers/index.html
    
mesos/site/source/documentation/latest/networking-for-mesos-managed-containers.md
Modified:
    mesos/site/publish/documentation/committers/index.html
    mesos/site/publish/documentation/framework-rate-limiting/index.html
    mesos/site/publish/documentation/high-availability/index.html
    mesos/site/publish/documentation/index.html
    mesos/site/publish/documentation/latest/committers/index.html
    mesos/site/publish/documentation/latest/framework-rate-limiting/index.html
    mesos/site/publish/documentation/latest/high-availability/index.html
    mesos/site/publish/documentation/latest/index.html
    mesos/site/publish/documentation/latest/operational-guide/index.html
    mesos/site/publish/documentation/latest/upgrades/index.html
    mesos/site/publish/documentation/operational-guide/index.html
    mesos/site/publish/documentation/upgrades/index.html
    mesos/site/publish/sitemap.xml
    mesos/site/source/documentation/latest.html.md
    mesos/site/source/documentation/latest/committers.md
    mesos/site/source/documentation/latest/framework-rate-limiting.md
    mesos/site/source/documentation/latest/high-availability.md
    mesos/site/source/documentation/latest/operational-guide.md
    mesos/site/source/documentation/latest/upgrades.md

Modified: mesos/site/publish/documentation/committers/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/committers/index.html?rev=1707671&r1=1707670&r2=1707671&view=diff
==============================================================================
--- mesos/site/publish/documentation/committers/index.html (original)
+++ mesos/site/publish/documentation/committers/index.html Fri Oct  9 08:10:08 
2015
@@ -87,7 +87,7 @@
 
 <h2>Becoming a committer</h2>
 
-<p>Every new committer has to be proposed by a current committer and then 
voted in by the members of the Mesos PMC. For details about this process and 
for candidate requirements see the general <a 
href="https://community.apache.org/newcommitter.html";>Apache guidelines for 
assessing new candidates for committership</a>. Candidates prepare for their 
nomination as committer by contributing to the Mesos project and its community, 
by acting according to the <a href="http://theapacheway.com";>Apache Way</a>, 
and by generally following the path <a 
href="https://community.apache.org/contributors/";>from contributor to 
committer</a> for Apache projects. Specifically for the Mesos project, you can 
make use of the <a 
href="https://community.apache.org/committer-candidate-checklist/";>Apache Mesos 
Committer Candidate Checklist</a> for suggestions of what kind of contributions 
and demonstrated behaviors can be instrumental, and to keep track of your 
progress.</p>
+<p>Every new committer has to be proposed by a current committer and then 
voted in by the members of the Mesos PMC. For details about this process and 
for candidate requirements see the general <a 
href="https://community.apache.org/newcommitter.html";>Apache guidelines for 
assessing new candidates for committership</a>. Candidates prepare for their 
nomination as committer by contributing to the Mesos project and its community, 
by acting according to the <a href="http://theapacheway.com";>Apache Way</a>, 
and by generally following the path <a 
href="https://community.apache.org/contributors/";>from contributor to 
committer</a> for Apache projects. Specifically for the Mesos project, you can 
make use of the <a 
href="/documentation/latest/committer-candidate-checklist/">Apache Mesos 
Committer Candidate Checklist</a> for suggestions of what kind of contributions 
and demonstrated behaviors can be instrumental, and to keep track of your 
progress.</p>
 
 <h2>Current Committers</h2>
 

Modified: mesos/site/publish/documentation/framework-rate-limiting/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/framework-rate-limiting/index.html?rev=1707671&r1=1707670&r2=1707671&view=diff
==============================================================================
--- mesos/site/publish/documentation/framework-rate-limiting/index.html 
(original)
+++ mesos/site/publish/documentation/framework-rate-limiting/index.html Fri Oct 
 9 08:10:08 2015
@@ -89,7 +89,7 @@
 
 <p>In a multi-framework environment, this feature aims to protect the 
throughput of high-SLA (e.g., production, service) frameworks by having the 
master throttle messages from other (e.g., development, batch) frameworks.</p>
 
-<p>To throttle messages from a framework, the Mesos cluster operator sets a 
<code>qps</code> (queries per seconds) value for each framework identified by 
its principal (You can also throttle a group of frameworks together but 
we&rsquo;ll assume individual frameworks in this doc unless otherwise stated; 
see the <code>RateLimits</code> <a 
href="https://github.com/apache/mesos/blob/master/include/mesos/mesos.proto";>ProtoBuf
 definition</a> and the configuration notes below). The master then promises 
not to process messages from that framework at a rate above <code>qps</code>. 
The outstanding messages are stored in memory on the master.</p>
+<p>To throttle messages from a framework, the Mesos cluster operator sets a 
<code>qps</code> (queries per seconds) value for each framework identified by 
its principal (You can also throttle a group of frameworks together but 
we&rsquo;ll assume individual frameworks in this doc unless otherwise stated; 
see the <code>RateLimits</code> <a 
href="https://github.com/apache/mesos/blob/master/include/mesos/mesos.proto";>Protobuf
 definition</a> and the configuration notes below). The master then promises 
not to process messages from that framework at a rate above <code>qps</code>. 
The outstanding messages are stored in memory on the master.</p>
 
 <h2>Rate Limits Configuration</h2>
 

Modified: mesos/site/publish/documentation/high-availability/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/high-availability/index.html?rev=1707671&r1=1707670&r2=1707671&view=diff
==============================================================================
--- mesos/site/publish/documentation/high-availability/index.html (original)
+++ mesos/site/publish/documentation/high-availability/index.html Fri Oct  9 
08:10:08 2015
@@ -83,7 +83,7 @@
        <div class="col-md-8">
                <h1>Mesos High Availability Mode</h1>
 
-<p>Mesos has a high-availability mode that uses multiple Mesos masters; one 
active master (called the leader or leading master) and several backups in case 
it fails. The masters elect the leader, with <a 
href="http://zookeeper.apache.org/";>Apache ZooKeeper</a> both coordinating the 
election and handling leader detection by masters, slaves, and scheduler 
drivers. More information regarding <a 
href="http://zookeeper.apache.org/doc/trunk/recipes.html#sc_leaderElection";>how 
leader election works</a> is available on the Apache Zookeeper website.</p>
+<p>If the Mesos master is unavailable, existing tasks can continue to execute, 
but new resources cannot be allocated and new tasks cannot be launched. To 
reduce the chance of this situation occurring, Mesos has a high-availability 
mode that uses multiple Mesos masters: one active master (called the 
<em>leader</em> or leading master) and several <em>backups</em> in case it 
fails. The masters elect the leader, with <a 
href="http://zookeeper.apache.org/";>Apache ZooKeeper</a> both coordinating the 
election and handling leader detection by masters, slaves, and scheduler 
drivers. More information regarding <a 
href="http://zookeeper.apache.org/doc/trunk/recipes.html#sc_leaderElection";>how 
leader election works</a> is available on the Apache Zookeeper website.</p>
 
 <p><strong>Note</strong>: This document assumes you know how to start, run, 
and work with ZooKeeper, whose client library is included in the standard Mesos 
build.</p>
 
@@ -96,7 +96,7 @@
 <li><p>Provide the znode path to all masters, slaves, and framework schedulers 
as follows:</p>
 
 <ul>
-<li><p>Start the mesos-master binaries using the <code>--zk</code> flag, e.g. 
`&ndash;zk=zk://host1:port1,host2:port2,&hellip;/path'</p></li>
+<li><p>Start the mesos-master binaries using the <code>--zk</code> flag, e.g. 
<code>--zk=zk://host1:port1,host2:port2,.../path</code></p></li>
 <li><p>Start the mesos-slave binaries with 
<code>--master=zk://host1:port1,host2:port2,.../path</code></p></li>
 <li><p>Start any framework schedulers using the same <code>zk</code> path as 
in the last two steps. The SchedulerDriver must be constructed with this path, 
as shown in the <a 
href="http://mesos.apache.org/documentation/latest/app-framework-development-guide/";>Framework
 Development Guide</a>.</p></li>
 </ul>
@@ -108,40 +108,21 @@
 
 <p>Refer to the <a 
href="http://mesos.apache.org/documentation/latest/app-framework-development-guide/";>Scheduler
 API</a> for how to deal with leadership changes.</p>
 
-<h2>Implementation Details</h2>
-
-<p>Mesos implements two levels of ZooKeeper leader election abstractions, one 
in <code>src/zookeeper</code> and the other in <code>src/master</code> (look 
for <code>contender|detector.hpp|cpp</code>).</p>
-
-<ul>
-<li><p>The lower level <code>LeaderContender</code> and 
<code>LeaderDetector</code> implement a generic ZooKeeper election algorithm 
loosely modeled after this
-<a 
href="http://zookeeper.apache.org/doc/trunk/recipes.html#sc_leaderElection";>recipe</a>
 (sans herd effect handling due to the master group&rsquo;s small size, which 
is often 3).</p></li>
-<li><p>The higher level <code>MasterContender</code> and 
<code>MasterDetector</code> wrap around ZooKeeper&rsquo;s contender and 
detector abstractions as adapters to provide/interpret the ZooKeeper 
data.</p></li>
-<li><p>Each Mesos master simultaneously uses both a contender and a detector 
to try to elect themselves and detect who the current leader is. A separate 
detector is necessary because each master&rsquo;s WebUI redirects browser 
traffic to the current leader when that master is not elected. Other Mesos 
components (i.e. slaves and scheduler drivers) use the detector to find the 
current leader and connect to it.</p></li>
-</ul>
-
-
-<p>The notion of the group of leader candidates is implemented in 
<code>Group</code>. This abstraction handles reliable (through queues and 
retries of retryable errors under the covers) ZooKeeper group membership 
registration, cancellation, and monitoring. It watches for several ZooKeeper 
session events:</p>
-
-<ul>
-<li>Connection</li>
-<li>Reconnection</li>
-<li>Session Expiration</li>
-<li>ZNode creation, deletion, updates</li>
-</ul>
-
-
-<p>We also explicitly timeout our sessions when disconnected from ZooKeeper 
for a specified amount of time. See 
<code>MASTER_CONTENDER_ZK_SESSION_TIMEOUT</code> and 
<code>MASTER_DETECTOR_ZK_SESSION_TIMEOUT</code>. This is because the ZooKeeper 
client libraries only notify of session expiration upon reconnection. These 
timeouts are of particular interest for network partitions.</p>
-
 <h2>Component Disconnection Handling</h2>
 
-<p>When a network partition disconnects a component (master, slave, scheduler 
driver) from ZooKeeper, the component&rsquo;s Master Detector induces a timeout 
event. This notifies the component that it has no leading master. Depending on 
the component, the following happens. (Note that while a component is 
disconnected from ZooKeeper, a master may still be in communication with slaves 
or schedulers and vice versa.)</p>
+<p>When a network partition disconnects a component (master, slave, or 
scheduler driver) from ZooKeeper, the component&rsquo;s Master Detector induces 
a timeout event. This notifies the component that it has no leading master. 
Depending on the component, the following happens. (Note that while a component 
is disconnected from ZooKeeper, a master may still be in communication with 
slaves or schedulers and vice versa.)</p>
 
 <ul>
 <li><p>Slaves disconnected from ZooKeeper no longer know which master is the 
leader. They ignore messages from masters to ensure they don&rsquo;t act on a 
non-leader&rsquo;s decisions. When a slave reconnects to ZooKeeper, ZooKeeper 
informs it of the current leader and the slave stops ignoring messages from the 
leader.</p></li>
 <li><p>Masters enter leaderless state irrespective of whether they are a 
leader or not before the disconnection.</p>
 
 <ul>
-<li><p>If the leader was disconnected from ZooKeeper, it aborts its process. 
The user/developer/administrator can start a new, connected to ZooKeeper, 
master instance that starts as a backup.</p></li>
+<li><p>If the leader was disconnected from ZooKeeper, it aborts its process. 
The user/developer/administrator can then start a new master instance which 
will try to reconnect to ZooKeeper.</p>
+
+<ul>
+<li>Note that many production deployments of Mesos use a process supervisor 
(such as systemd or supervisord) that is configured to automatically restart 
the Mesos master if the process aborts unexpectedly.</li>
+</ul>
+</li>
 <li><p>Otherwise, the disconnected backup waits to reconnect with ZooKeeper 
and possibly get elected as the new leading master.</p></li>
 </ul>
 </li>
@@ -154,10 +135,34 @@
 <ul>
 <li><p>The slave fails health checks from the leader.</p></li>
 <li><p>The leader marks the slave as deactivated and sends its tasks to the 
LOST state. The  <a 
href="http://mesos.apache.org/documentation/latest/app-framework-development-guide/";>Framework
 Development Guide</a> describes these various task states.</p></li>
-<li><p>Deactivated slaves may not re-register with the leader, and are told to 
shut down upon any post-deactivation communication.</p></li>
+<li><p>Deactivated slaves may not re-register with the leader and are told to 
shut down upon any post-deactivation communication.</p></li>
+</ul>
+
+
+<h2>Implementation Details</h2>
+
+<p>Mesos implements two levels of ZooKeeper leader election abstractions, one 
in <code>src/zookeeper</code> and the other in <code>src/master</code> (look 
for <code>contender|detector.hpp|cpp</code>).</p>
+
+<ul>
+<li><p>The lower level <code>LeaderContender</code> and 
<code>LeaderDetector</code> implement a generic ZooKeeper election algorithm 
loosely modeled after this
+<a 
href="http://zookeeper.apache.org/doc/trunk/recipes.html#sc_leaderElection";>recipe</a>
 (sans herd effect handling due to the master group&rsquo;s small size, which 
is often 3).</p></li>
+<li><p>The higher level <code>MasterContender</code> and 
<code>MasterDetector</code> wrap around ZooKeeper&rsquo;s contender and 
detector abstractions as adapters to provide/interpret the ZooKeeper 
data.</p></li>
+<li><p>Each Mesos master simultaneously uses both a contender and a detector 
to try to elect themselves and detect who the current leader is. A separate 
detector is necessary because each master&rsquo;s WebUI redirects browser 
traffic to the current leader when that master is not elected. Other Mesos 
components (i.e., slaves and scheduler drivers) use the detector to find the 
current leader and connect to it.</p></li>
 </ul>
 
 
+<p>The notion of the group of leader candidates is implemented in 
<code>Group</code>. This abstraction handles reliable (through queues and 
retries of retryable errors under the covers) ZooKeeper group membership 
registration, cancellation, and monitoring. It watches for several ZooKeeper 
session events:</p>
+
+<ul>
+<li>Connection</li>
+<li>Reconnection</li>
+<li>Session Expiration</li>
+<li>ZNode creation, deletion, updates</li>
+</ul>
+
+
+<p>We also explicitly timeout our sessions when disconnected from ZooKeeper 
for a specified amount of time. See 
<code>MASTER_CONTENDER_ZK_SESSION_TIMEOUT</code> and 
<code>MASTER_DETECTOR_ZK_SESSION_TIMEOUT</code>. This is because the ZooKeeper 
client libraries only notify of session expiration upon reconnection. These 
timeouts are of particular interest for network partitions.</p>
+
        </div>
 </div>
 

Modified: mesos/site/publish/documentation/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/index.html?rev=1707671&r1=1707670&r2=1707671&view=diff
==============================================================================
--- mesos/site/publish/documentation/index.html (original)
+++ mesos/site/publish/documentation/index.html Fri Oct  9 08:10:08 2015
@@ -119,6 +119,7 @@
 <ul>
 <li><a href="/documentation/attributes-resources/">Attributes and 
Resources</a> for how to describe the slaves that comprise a cluster.</li>
 <li><a href="/documentation/latest/fetcher/">Fetcher Cache</a> for how to 
configure the Mesos fetcher cache.</li>
+<li><a 
href="/documentation/latest/networking-for-mesos-managed-containers/">Networking
 for Mesos-managed Containers</a></li>
 <li><a href="/documentation/latest/oversubscription/">Oversubscription</a> for 
how to configure Mesos to take advantage of unused resources to launch 
&ldquo;best-effort&rdquo; tasks.</li>
 <li><a href="/documentation/latest/persistent-volume/">Persistent Volume</a> 
for how to allow tasks to access persistent storage resources.</li>
 <li><a href="/documentation/latest/reservation/">Reservation</a> for how to 
configure Mesos to allow slaves to reserve resources.</li>

Modified: mesos/site/publish/documentation/latest/committers/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/committers/index.html?rev=1707671&r1=1707670&r2=1707671&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/committers/index.html (original)
+++ mesos/site/publish/documentation/latest/committers/index.html Fri Oct  9 
08:10:08 2015
@@ -87,7 +87,7 @@
 
 <h2>Becoming a committer</h2>
 
-<p>Every new committer has to be proposed by a current committer and then 
voted in by the members of the Mesos PMC. For details about this process and 
for candidate requirements see the general <a 
href="https://community.apache.org/newcommitter.html";>Apache guidelines for 
assessing new candidates for committership</a>. Candidates prepare for their 
nomination as committer by contributing to the Mesos project and its community, 
by acting according to the <a href="http://theapacheway.com";>Apache Way</a>, 
and by generally following the path <a 
href="https://community.apache.org/contributors/";>from contributor to 
committer</a> for Apache projects. Specifically for the Mesos project, you can 
make use of the <a 
href="https://community.apache.org/committer-candidate-checklist/";>Apache Mesos 
Committer Candidate Checklist</a> for suggestions of what kind of contributions 
and demonstrated behaviors can be instrumental, and to keep track of your 
progress.</p>
+<p>Every new committer has to be proposed by a current committer and then 
voted in by the members of the Mesos PMC. For details about this process and 
for candidate requirements see the general <a 
href="https://community.apache.org/newcommitter.html";>Apache guidelines for 
assessing new candidates for committership</a>. Candidates prepare for their 
nomination as committer by contributing to the Mesos project and its community, 
by acting according to the <a href="http://theapacheway.com";>Apache Way</a>, 
and by generally following the path <a 
href="https://community.apache.org/contributors/";>from contributor to 
committer</a> for Apache projects. Specifically for the Mesos project, you can 
make use of the <a 
href="/documentation/latest/committer-candidate-checklist/">Apache Mesos 
Committer Candidate Checklist</a> for suggestions of what kind of contributions 
and demonstrated behaviors can be instrumental, and to keep track of your 
progress.</p>
 
 <h2>Current Committers</h2>
 

Modified: 
mesos/site/publish/documentation/latest/framework-rate-limiting/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/framework-rate-limiting/index.html?rev=1707671&r1=1707670&r2=1707671&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/framework-rate-limiting/index.html 
(original)
+++ mesos/site/publish/documentation/latest/framework-rate-limiting/index.html 
Fri Oct  9 08:10:08 2015
@@ -89,7 +89,7 @@
 
 <p>In a multi-framework environment, this feature aims to protect the 
throughput of high-SLA (e.g., production, service) frameworks by having the 
master throttle messages from other (e.g., development, batch) frameworks.</p>
 
-<p>To throttle messages from a framework, the Mesos cluster operator sets a 
<code>qps</code> (queries per seconds) value for each framework identified by 
its principal (You can also throttle a group of frameworks together but 
we&rsquo;ll assume individual frameworks in this doc unless otherwise stated; 
see the <code>RateLimits</code> <a 
href="https://github.com/apache/mesos/blob/master/include/mesos/mesos.proto";>ProtoBuf
 definition</a> and the configuration notes below). The master then promises 
not to process messages from that framework at a rate above <code>qps</code>. 
The outstanding messages are stored in memory on the master.</p>
+<p>To throttle messages from a framework, the Mesos cluster operator sets a 
<code>qps</code> (queries per seconds) value for each framework identified by 
its principal (You can also throttle a group of frameworks together but 
we&rsquo;ll assume individual frameworks in this doc unless otherwise stated; 
see the <code>RateLimits</code> <a 
href="https://github.com/apache/mesos/blob/master/include/mesos/mesos.proto";>Protobuf
 definition</a> and the configuration notes below). The master then promises 
not to process messages from that framework at a rate above <code>qps</code>. 
The outstanding messages are stored in memory on the master.</p>
 
 <h2>Rate Limits Configuration</h2>
 

Modified: mesos/site/publish/documentation/latest/high-availability/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/high-availability/index.html?rev=1707671&r1=1707670&r2=1707671&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/high-availability/index.html 
(original)
+++ mesos/site/publish/documentation/latest/high-availability/index.html Fri 
Oct  9 08:10:08 2015
@@ -83,7 +83,7 @@
        <div class="col-md-8">
                <h1>Mesos High Availability Mode</h1>
 
-<p>Mesos has a high-availability mode that uses multiple Mesos masters; one 
active master (called the leader or leading master) and several backups in case 
it fails. The masters elect the leader, with <a 
href="http://zookeeper.apache.org/";>Apache ZooKeeper</a> both coordinating the 
election and handling leader detection by masters, slaves, and scheduler 
drivers. More information regarding <a 
href="http://zookeeper.apache.org/doc/trunk/recipes.html#sc_leaderElection";>how 
leader election works</a> is available on the Apache Zookeeper website.</p>
+<p>If the Mesos master is unavailable, existing tasks can continue to execute, 
but new resources cannot be allocated and new tasks cannot be launched. To 
reduce the chance of this situation occurring, Mesos has a high-availability 
mode that uses multiple Mesos masters: one active master (called the 
<em>leader</em> or leading master) and several <em>backups</em> in case it 
fails. The masters elect the leader, with <a 
href="http://zookeeper.apache.org/";>Apache ZooKeeper</a> both coordinating the 
election and handling leader detection by masters, slaves, and scheduler 
drivers. More information regarding <a 
href="http://zookeeper.apache.org/doc/trunk/recipes.html#sc_leaderElection";>how 
leader election works</a> is available on the Apache Zookeeper website.</p>
 
 <p><strong>Note</strong>: This document assumes you know how to start, run, 
and work with ZooKeeper, whose client library is included in the standard Mesos 
build.</p>
 
@@ -96,7 +96,7 @@
 <li><p>Provide the znode path to all masters, slaves, and framework schedulers 
as follows:</p>
 
 <ul>
-<li><p>Start the mesos-master binaries using the <code>--zk</code> flag, e.g. 
`&ndash;zk=zk://host1:port1,host2:port2,&hellip;/path'</p></li>
+<li><p>Start the mesos-master binaries using the <code>--zk</code> flag, e.g. 
<code>--zk=zk://host1:port1,host2:port2,.../path</code></p></li>
 <li><p>Start the mesos-slave binaries with 
<code>--master=zk://host1:port1,host2:port2,.../path</code></p></li>
 <li><p>Start any framework schedulers using the same <code>zk</code> path as 
in the last two steps. The SchedulerDriver must be constructed with this path, 
as shown in the <a 
href="http://mesos.apache.org/documentation/latest/app-framework-development-guide/";>Framework
 Development Guide</a>.</p></li>
 </ul>
@@ -108,40 +108,21 @@
 
 <p>Refer to the <a 
href="http://mesos.apache.org/documentation/latest/app-framework-development-guide/";>Scheduler
 API</a> for how to deal with leadership changes.</p>
 
-<h2>Implementation Details</h2>
-
-<p>Mesos implements two levels of ZooKeeper leader election abstractions, one 
in <code>src/zookeeper</code> and the other in <code>src/master</code> (look 
for <code>contender|detector.hpp|cpp</code>).</p>
-
-<ul>
-<li><p>The lower level <code>LeaderContender</code> and 
<code>LeaderDetector</code> implement a generic ZooKeeper election algorithm 
loosely modeled after this
-<a 
href="http://zookeeper.apache.org/doc/trunk/recipes.html#sc_leaderElection";>recipe</a>
 (sans herd effect handling due to the master group&rsquo;s small size, which 
is often 3).</p></li>
-<li><p>The higher level <code>MasterContender</code> and 
<code>MasterDetector</code> wrap around ZooKeeper&rsquo;s contender and 
detector abstractions as adapters to provide/interpret the ZooKeeper 
data.</p></li>
-<li><p>Each Mesos master simultaneously uses both a contender and a detector 
to try to elect themselves and detect who the current leader is. A separate 
detector is necessary because each master&rsquo;s WebUI redirects browser 
traffic to the current leader when that master is not elected. Other Mesos 
components (i.e. slaves and scheduler drivers) use the detector to find the 
current leader and connect to it.</p></li>
-</ul>
-
-
-<p>The notion of the group of leader candidates is implemented in 
<code>Group</code>. This abstraction handles reliable (through queues and 
retries of retryable errors under the covers) ZooKeeper group membership 
registration, cancellation, and monitoring. It watches for several ZooKeeper 
session events:</p>
-
-<ul>
-<li>Connection</li>
-<li>Reconnection</li>
-<li>Session Expiration</li>
-<li>ZNode creation, deletion, updates</li>
-</ul>
-
-
-<p>We also explicitly timeout our sessions when disconnected from ZooKeeper 
for a specified amount of time. See 
<code>MASTER_CONTENDER_ZK_SESSION_TIMEOUT</code> and 
<code>MASTER_DETECTOR_ZK_SESSION_TIMEOUT</code>. This is because the ZooKeeper 
client libraries only notify of session expiration upon reconnection. These 
timeouts are of particular interest for network partitions.</p>
-
 <h2>Component Disconnection Handling</h2>
 
-<p>When a network partition disconnects a component (master, slave, scheduler 
driver) from ZooKeeper, the component&rsquo;s Master Detector induces a timeout 
event. This notifies the component that it has no leading master. Depending on 
the component, the following happens. (Note that while a component is 
disconnected from ZooKeeper, a master may still be in communication with slaves 
or schedulers and vice versa.)</p>
+<p>When a network partition disconnects a component (master, slave, or 
scheduler driver) from ZooKeeper, the component&rsquo;s Master Detector induces 
a timeout event. This notifies the component that it has no leading master. 
Depending on the component, the following happens. (Note that while a component 
is disconnected from ZooKeeper, a master may still be in communication with 
slaves or schedulers and vice versa.)</p>
 
 <ul>
 <li><p>Slaves disconnected from ZooKeeper no longer know which master is the 
leader. They ignore messages from masters to ensure they don&rsquo;t act on a 
non-leader&rsquo;s decisions. When a slave reconnects to ZooKeeper, ZooKeeper 
informs it of the current leader and the slave stops ignoring messages from the 
leader.</p></li>
 <li><p>Masters enter leaderless state irrespective of whether they are a 
leader or not before the disconnection.</p>
 
 <ul>
-<li><p>If the leader was disconnected from ZooKeeper, it aborts its process. 
The user/developer/administrator can start a new, connected to ZooKeeper, 
master instance that starts as a backup.</p></li>
+<li><p>If the leader was disconnected from ZooKeeper, it aborts its process. 
The user/developer/administrator can then start a new master instance which 
will try to reconnect to ZooKeeper.</p>
+
+<ul>
+<li>Note that many production deployments of Mesos use a process supervisor 
(such as systemd or supervisord) that is configured to automatically restart 
the Mesos master if the process aborts unexpectedly.</li>
+</ul>
+</li>
 <li><p>Otherwise, the disconnected backup waits to reconnect with ZooKeeper 
and possibly get elected as the new leading master.</p></li>
 </ul>
 </li>
@@ -154,10 +135,34 @@
 <ul>
 <li><p>The slave fails health checks from the leader.</p></li>
 <li><p>The leader marks the slave as deactivated and sends its tasks to the 
LOST state. The  <a 
href="http://mesos.apache.org/documentation/latest/app-framework-development-guide/";>Framework
 Development Guide</a> describes these various task states.</p></li>
-<li><p>Deactivated slaves may not re-register with the leader, and are told to 
shut down upon any post-deactivation communication.</p></li>
+<li><p>Deactivated slaves may not re-register with the leader and are told to 
shut down upon any post-deactivation communication.</p></li>
+</ul>
+
+
+<h2>Implementation Details</h2>
+
+<p>Mesos implements two levels of ZooKeeper leader election abstractions, one 
in <code>src/zookeeper</code> and the other in <code>src/master</code> (look 
for <code>contender|detector.hpp|cpp</code>).</p>
+
+<ul>
+<li><p>The lower level <code>LeaderContender</code> and 
<code>LeaderDetector</code> implement a generic ZooKeeper election algorithm 
loosely modeled after this
+<a 
href="http://zookeeper.apache.org/doc/trunk/recipes.html#sc_leaderElection";>recipe</a>
 (sans herd effect handling due to the master group&rsquo;s small size, which 
is often 3).</p></li>
+<li><p>The higher level <code>MasterContender</code> and 
<code>MasterDetector</code> wrap around ZooKeeper&rsquo;s contender and 
detector abstractions as adapters to provide/interpret the ZooKeeper 
data.</p></li>
+<li><p>Each Mesos master simultaneously uses both a contender and a detector 
to try to elect themselves and detect who the current leader is. A separate 
detector is necessary because each master&rsquo;s WebUI redirects browser 
traffic to the current leader when that master is not elected. Other Mesos 
components (i.e., slaves and scheduler drivers) use the detector to find the 
current leader and connect to it.</p></li>
 </ul>
 
 
+<p>The notion of the group of leader candidates is implemented in 
<code>Group</code>. This abstraction handles reliable (through queues and 
retries of retryable errors under the covers) ZooKeeper group membership 
registration, cancellation, and monitoring. It watches for several ZooKeeper 
session events:</p>
+
+<ul>
+<li>Connection</li>
+<li>Reconnection</li>
+<li>Session Expiration</li>
+<li>ZNode creation, deletion, updates</li>
+</ul>
+
+
+<p>We also explicitly timeout our sessions when disconnected from ZooKeeper 
for a specified amount of time. See 
<code>MASTER_CONTENDER_ZK_SESSION_TIMEOUT</code> and 
<code>MASTER_DETECTOR_ZK_SESSION_TIMEOUT</code>. This is because the ZooKeeper 
client libraries only notify of session expiration upon reconnection. These 
timeouts are of particular interest for network partitions.</p>
+
        </div>
 </div>
 

Modified: mesos/site/publish/documentation/latest/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/index.html?rev=1707671&r1=1707670&r2=1707671&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/index.html (original)
+++ mesos/site/publish/documentation/latest/index.html Fri Oct  9 08:10:08 2015
@@ -119,6 +119,7 @@
 <ul>
 <li><a href="/documentation/attributes-resources/">Attributes and 
Resources</a> for how to describe the slaves that comprise a cluster.</li>
 <li><a href="/documentation/latest/fetcher/">Fetcher Cache</a> for how to 
configure the Mesos fetcher cache.</li>
+<li><a 
href="/documentation/latest/networking-for-mesos-managed-containers/">Networking
 for Mesos-managed Containers</a></li>
 <li><a href="/documentation/latest/oversubscription/">Oversubscription</a> for 
how to configure Mesos to take advantage of unused resources to launch 
&ldquo;best-effort&rdquo; tasks.</li>
 <li><a href="/documentation/latest/persistent-volume/">Persistent Volume</a> 
for how to allow tasks to access persistent storage resources.</li>
 <li><a href="/documentation/latest/reservation/">Reservation</a> for how to 
configure Mesos to allow slaves to reserve resources.</li>

Added: 
mesos/site/publish/documentation/latest/networking-for-mesos-managed-containers/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/networking-for-mesos-managed-containers/index.html?rev=1707671&view=auto
==============================================================================
--- 
mesos/site/publish/documentation/latest/networking-for-mesos-managed-containers/index.html
 (added)
+++ 
mesos/site/publish/documentation/latest/networking-for-mesos-managed-containers/index.html
 Fri Oct  9 08:10:08 2015
@@ -0,0 +1,415 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+                   <meta name="viewport" content="width=device-width, 
initial-scale=1.0">
+
+                   <link 
href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" 
rel="stylesheet">
+                   <link rel="alternate" type="application/atom+xml" 
title="Apache Mesos Blog" href="/blog/feed.xml">
+                   
+                   <link href="../../../assets/css/main.css" media="screen" 
rel="stylesheet" type="text/css" />
+                               
+                   
+                       
+                       <!-- Google Analytics Magic -->
+                       <script type="text/javascript">
+                         var _gaq = _gaq || [];
+                         _gaq.push(['_setAccount', 'UA-20226872-1']);
+                         _gaq.push(['_setDomainName', 'apache.org']);
+                         _gaq.push(['_trackPageview']);
+
+                         (function() {
+                           var ga = document.createElement('script'); ga.type 
= 'text/javascript'; ga.async = true;
+                           ga.src = ('https:' == document.location.protocol ? 
'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                           var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+                         })();
+                       </script>
+    </head>
+    <body>
+                       <!-- magical breadcrumbs -->
+                       <div class="topnav">
+                       <ul class="breadcrumb">
+                         <li>
+                                       <div class="dropdown">
+                                         <a data-toggle="dropdown" 
href="#">Apache Software Foundation <span class="caret"></span></a>
+                                         <ul class="dropdown-menu" role="menu" 
aria-labelledby="dLabel">
+                                                       <li><a 
href="http://www.apache.org";>Apache Homepage</a></li>
+                                                       <li><a 
href="http://www.apache.org/licenses/";>License</a></li>
+                                               <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>  
+                                               <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+                                                       <li><a 
href="http://www.apache.org/security/";>Security</a></li>
+                                         </ul>
+                                       </div>
+                               </li>
+                               <li><a href="http://mesos.apache.org";>Apache 
Mesos</a></li>
+                               
+                               
+                                       <li><a href="/documentation
+/">Documentation
+</a></li>
+                               
+                               
+                       </ul><!-- /breadcrumb -->
+                       </div>
+                       
+                       <!-- navbar excitement -->
+           <div class="navbar navbar-static-top" role="navigation">
+             <div class="navbar-inner">
+               <div class="container">
+                                               <a href="/" class="logo"><img 
src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+                                       <div class="nav-collapse">
+                                               <ul class="nav nav-pills 
navbar-right">
+                                                 <li><a 
href="/gettingstarted/">Getting Started</a></li>
+                                                 <li><a 
href="/documentation/latest/">Documentation</a></li>
+                                                 <li><a 
href="/downloads/">Downloads</a></li>
+                                                 <li><a 
href="/community/">Community</a></li>
+                                               </ul>
+                                       </div>
+               </div>
+             </div>
+           </div><!-- /.navbar -->
+
+      <div class="container">
+
+                       <div class="row-fluid">
+       <div class="col-md-4">
+               <h4>If you're new to Mesos</h4>
+               <p>See the <a href="/gettingstarted/">getting started</a> page 
for more information about downloading, building, and deploying Mesos.</p>
+               
+               <h4>If you'd like to get involved or you're looking for 
support</h4>
+               <p>See our <a href="/community/">community</a> page for more 
details.</p>
+       </div>
+       <div class="col-md-8">
+               <h1>Networking for Mesos-managed containers</h1>
+
+<p>While networking plays a key role in data center infrastructure, it is 
&ndash; for
+now &ndash; beyond the scope of Mesos to try to address the concerns of 
networking
+setup, topology and performance. However, Mesos can ease integrations with
+existing networking solutions and enable features, like IP per container,
+task-granular task isolation and service discovery. More often than not, it
+will be challenging to provide a one-size-fits-all networking solution. The
+requirements and available solutions will vary across all cloud-only,
+on-premise, and hybrid deployments.</p>
+
+<p>One of the primary goals for the networking support in Mesos was to have a
+pluggable mechanism to allow users to enable custom networking solution as
+needed. As a result, several extensions were added to Mesos components in
+version 0.25.0 to enable networking support. Further, all the extensions are
+opt-in to allow older frameworks and applications without networking support to
+coexist with the newer ones.</p>
+
+<p>The rest of this document describes the overall architecture of all the 
involved
+components, configuration steps for enabling IP-per-container, and required
+framework changes.</p>
+
+<h2>How does it work?</h2>
+
+<p><img src="images/networking-architecture.png" alt="Mesos Networking 
Architecture" /></p>
+
+<p>A key observation is that the networking support is enabled via a Mesos 
module
+and thus the Mesos master and agents are completely oblivious of it. It is
+completely up to the networking module to provide the desired support. Next,
+the IP requests are provided on a best effort manner. Thus, the framework 
should
+be willing to handle ignored (in cases where the module(s) are not present) or
+declined (the IPs can&rsquo;t be assigned due to various reasons) requests.</p>
+
+<p>To maximize backwards-compatibility with existing frameworks, schedulers 
must
+opt-in to network isolation per-container. Schedulers opt in to network
+isolation using new data structures in the TaskInfo message.</p>
+
+<h3>Terminology</h3>
+
+<ul>
+<li><p>IP Address Management (IPAM) Server</p>
+
+<ul>
+<li>assigns IPs on demand</li>
+<li>recycles IPs once they have been released</li>
+<li>(optionally) can tag IPs with a given string/id.</li>
+</ul>
+</li>
+<li><p>IPAM client</p>
+
+<ul>
+<li>tightly coupled with a particular IPAM server</li>
+<li>acts as a bridge between the &ldquo;Network Isolator Module&rdquo; and the 
IPAM server</li>
+<li>communicates with the server to request/release IPs</li>
+</ul>
+</li>
+<li><p>Network Isolator Module (NIM):</p>
+
+<ul>
+<li>a Mesos module for the Agent implementing the <code>Isolator</code> 
interface</li>
+<li>looks at TaskInfos to detect the IP requirements for the tasks</li>
+<li>communicates with the IPAM client to request/release IPs</li>
+<li>communicates with an external network virtualizer/isolator to enable 
network
+isolation</li>
+</ul>
+</li>
+<li><p>Cleanup Module:</p>
+
+<ul>
+<li>responsible for doing a cleanup (releasing IPs, etc.) during a Agent lost
+event, dormant otherwise</li>
+</ul>
+</li>
+</ul>
+
+
+<h3>Framework requests IP address for containers</h3>
+
+<ol>
+<li><p>A Mesos framework uses the TaskInfo message to requests IPs for each
+container being launched. (The request is ignored if the Mesos cluster
+doesn&rsquo;t have support for IP-per-container.)</p></li>
+<li><p>Mesos Master processes TaskInfos and forwards them to the Agent for 
launching
+tasks.</p></li>
+</ol>
+
+
+<h3>Network isolator module gets IP from IPAM server</h3>
+
+<ol>
+<li><p>Mesos Agent inspects the TaskInfo to detect the container requirements
+(MesosContainerizer in this case) and prepares various Isolators for the
+to-be-launched container.</p>
+
+<ul>
+<li>The NIM inspects the TaskInfo to decide whether to enable network isolator
+or not.</li>
+</ul>
+</li>
+<li><p>If network isolator is to be enabled, NIM requests IP address(es) via 
IPAM
+  client and informs the Agent.</p></li>
+</ol>
+
+
+<h3>Agent launches container with a network namespace</h3>
+
+<ol>
+<li>The Agent launches a container within a new network namespace.
+
+<ul>
+<li>The Agent calls into NIM to perform &ldquo;isolation&rdquo;</li>
+<li>The NIM then calls into network virtualizer to isolate the container.</li>
+</ul>
+</li>
+</ol>
+
+
+<h3>Network virtualizer assigns IP address to the container and isolates 
it.</h3>
+
+<ol>
+<li>NIM then &ldquo;decorates&rdquo; the TaskStatus with the IP information.
+
+<ul>
+<li>The IP address(es) from TaskStatus are made available at Master&rsquo;s
+state endpoint.</li>
+<li>The TaskStatus is also forwarded to the framework to inform it of the IP
+addresses.</li>
+<li>When a task is killed or lost, NIM communicates with IPAM client to release
+corresponding IP address(es).</li>
+</ul>
+</li>
+</ol>
+
+
+<h3>Cleanup module detects lost Agents and performs cleanup</h3>
+
+<ol>
+<li><p>The cleanup module gets notified if there is an Agent-lost 
event.</p></li>
+<li><p>The cleanup module communicates with the IPAM client to release all IP
+address(es) associated with the lost Agent. The IPAM may have a grace period
+before the address(es) are recycled.</p></li>
+</ol>
+
+
+<h2>Configuration</h2>
+
+<p>The network isolator module is not part of standard Mesos distribution. 
However,
+there is an example implementation at 
https://github.com/mesosphere/net-modules.</p>
+
+<p>Once the network isolation module has been built into a shared dynamic 
library,
+we can load it into Mesos Agent (/documentation/latest/see <a 
href="modules/">modules documentation</a> on
+instructions for building and loading a module).</p>
+
+<h2>Enabling frameworks for IP-per-container capability</h2>
+
+<h3>NetworkInfo</h3>
+
+<p>A new NetworkInfo message has been introduced:</p>
+
+<pre><code class="{.proto}">message NetworkInfo {
+  enum Protocol {
+    IPv4 = 0,
+    IPv6 = 1
+  }
+
+  optional Protocol protocol = 1;
+
+  optional string ip_address = 2;
+
+  repeated string groups = 3;
+
+  optional Labels labels = 4;
+};
+</code></pre>
+
+<p>When requesting an IP address from the IPAM, one needs to set the 
<code>protocol</code>
+field to <code>IPv4</code> or <code>IPv6</code>. Setting 
<code>ip_address</code> to a valid IP address allows the
+framework to specify a static IP address for the container (if supported by the
+NIM). This is helpful in situations where a task must be bound to a particular
+IP address even as it is killed and restarted on a different node.</p>
+
+<h3>Examples of specifying network requirements</h3>
+
+<p>Frameworks wanting to enable IP per container, need to provide 
<code>NetworkInfo</code>
+message in TaskInfo. Here are a few examples:</p>
+
+<ol>
+<li><p>A request for one address of unspecified protocol version using the 
default
+command executor</p>
+
+<pre><code>TaskInfo {
+  ...
+  command: ...,
+  container: ContainerInfo {
+    network_infos: [
+      NetworkInfo {
+        protocol: None;
+        ip_address: None;
+        groups: [];
+        labels: None;
+      }
+    ]
+  }
+}
+</code></pre></li>
+<li><p>A request for one IPv4 and one IPv6 address, in two separate groups 
using the
+default command executor</p>
+
+<pre><code>TaskInfo {
+  ...
+  command: ...,
+  container: ContainerInfo {
+    network_infos: [
+      NetworkInfo {
+        protocol: IPv4;
+        ip_address: None;
+        groups: ["public"];
+        labels: None;
+      },
+      NetworkInfo {
+        protocol: IPv6;
+        ip_address: None;
+        groups: ["private"];
+        labels: None;
+      }
+    ]
+  }
+}
+</code></pre></li>
+<li><p>A request for a specific IP address using a custom executor</p>
+
+<pre><code>TaskInfo {
+  ...
+  executor: ExecutorInfo {
+    ...,
+    container: ContainerInfo {
+      network_infos: [
+        NetworkInfo {
+          protocol: None;
+          ip_address: "10.1.2.3";
+          groups: [];
+          labels: None;
+        }
+      ]
+    }
+  }
+}
+</code></pre></li>
+</ol>
+
+
+<p>NOTE: The Mesos Containerizer will reject any CommandInfo that has a 
ContainerInfo. For this reason, when opting in to network isolation when using 
the Mesos Containerizer, set TaskInfo.ContainerInfo.NetworkInfo.</p>
+
+<h2>Address Discovery</h2>
+
+<p>The NetworkInfo message allows frameworks to request IP address(es) to be
+assigned at task launch time on the Mesos agent.  After opting in to network
+isolation for a given executor’s container in this way, frameworks will need 
to
+know what address(es) were ultimately assigned in order to perform health
+checks, or any other out-of-band communication.</p>
+
+<p>This is accomplished by adding a new field to the TaskStatus message.</p>
+
+<pre><code class="{.proto}">message ContainerStatus {
+   repeated NetworkInfo network_infos;
+}
+
+message TaskStatus {
+  ...
+  optional ContainerStatus container;
+  ...
+};
+</code></pre>
+
+<p>Further, the container IP addresses are also exposed via Master&rsquo;s 
state
+endpoint. The JSON output from Master&rsquo;s state endpoint contains a list 
of task
+statuses. If a task&rsquo;s container was started with it&rsquo;s own IP 
address, the
+assigned IP address will be exposed as part of the <code>TASK_RUNNING</code> 
status.</p>
+
+<p>NOTE: Since per-container address(es) are strictly opt-in from the 
framework,
+the framework may ignore the IP address(es) provided in StatusUpdate if it
+didn&rsquo;t set NetworkInfo in the first place.</p>
+
+<h2>Writing a Custom Network Isolator Module</h2>
+
+<p>A network isolator module implements the Isolator interface provided by 
Mesos.
+The module is loaded as a dynamic shared library in to the Mesos Agent and gets
+hooked up in the container launch sequence. A network isolator may communicate
+with external IPAM and network virtualizer tools to fulfill framework
+requirements.</p>
+
+<p>In terms of the Isolator API, there are three key callbacks that a network
+isolator module should implement:</p>
+
+<ol>
+<li><p><code>Isolator::prepare()</code> provides the module with a chance to 
decide whether or
+not the enable network isolation for the given task container. If the network
+isolation is to be enabled, the Isolator::prepare call would inform the Agent
+to create a private network namespace for the coordinator. It is this
+interface, that will also generate an IP address (statically or with the help
+of an external IPAM agent) for the container.</p></li>
+<li><p><code>Isolator::isolate()</code> provide the module with the 
opportunity to <em>isolate</em>
+the container <em>after</em> it has been created but before the executor is 
launched
+inside the container. This would involve creating virtual ethernet adapter
+for the container and assigning it an IP address. The module can also use
+help of an external network virtualizer/isolator for setting up network for
+the container.</p></li>
+<li><p><code>Isolator::cleanup()</code> is called when the container 
terminates. This allows the
+module to perform any cleanups such as recovering resources and releasing IP
+addresses as needed.</p></li>
+</ol>
+
+
+       </div>
+</div>
+
+                       
+             <hr>
+
+                               <!-- footer -->
+             <div class="footer">
+               <p>&copy; 2012-2015 <a href="http://apache.org";>The Apache 
Software Foundation</a>.
+               Apache Mesos, the Apache feather logo, and the Apache Mesos 
project logo are trademarks of The Apache Software Foundation.<p>
+             </div><!-- /footer -->
+
+           </div> <!-- /container -->
+
+           <!-- JS -->
+           <script src="//code.jquery.com/jquery-1.11.0.min.js" 
type="text/javascript"></script>
+                       <script 
src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" 
type="text/javascript"></script>
+    </body>
+</html>

Modified: mesos/site/publish/documentation/latest/operational-guide/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/operational-guide/index.html?rev=1707671&r1=1707670&r2=1707671&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/operational-guide/index.html 
(original)
+++ mesos/site/publish/documentation/latest/operational-guide/index.html Fri 
Oct  9 08:10:08 2015
@@ -83,11 +83,17 @@
        <div class="col-md-8">
                <h1>Operational Guide</h1>
 
+<h2>Using a process supervisor</h2>
+
+<p>Mesos uses a &ldquo;<a 
href="https://en.wikipedia.org/wiki/Fail-fast";>fail-fast</a>&rdquo; approach to 
error handling: if a serious error occurs, Mesos will typically exit rather 
than trying to continue running in a possibly erroneous state. For example, 
when Mesos is configured for <a 
href="/documentation/latest/high-availability">high availability</a>, the 
leading master will abort itself when it discovers it has been partitioned away 
from the Zookeeper quorum. This is a safety precaution to ensure the previous 
leader doesn&rsquo;t continue communicating in an unsafe state.</p>
+
+<p>To ensure that such failures are handled appropriately, production 
deployments of Mesos typically use a <em>process supervisor</em> (such as 
systemd or supervisord) to detect when Mesos processes exit. The supervisor can 
be configured to restart the failed process automatically and/or to notify the 
cluster operator to investigate the situation.</p>
+
 <h2>Changing the master quorum</h2>
 
-<p>Currently the master leverages a paxos-based replicated log as its storage 
backend (<code>--registry=replicated_log</code> is the only storage backend 
supported). Each master participates in the ensemble as a log replica. The 
<code>--quorum</code> flag determines a majority of the masters.</p>
+<p>The master leverages a Paxos-based replicated log as its storage backend 
(<code>--registry=replicated_log</code> is the only storage backend currently 
supported). Each master participates in the ensemble as a log replica. The 
<code>--quorum</code> flag determines a majority of the masters.</p>
 
-<p>The following table shows the tolerance to master failures, for each quorum 
size:</p>
+<p>The following table shows the tolerance to master failures for each quorum 
size:</p>
 
 <table>
 <thead>
@@ -151,7 +157,7 @@
 <p>To increase the quorum by N, repeat this process to increment the quorum 
size N times.</p>
 
 <p>NOTE: Currently, moving out of a single master setup requires wiping the 
replicated log
-state and starting fresh. This will wipe all persistent data (e.g. slaves, 
maintenance
+state and starting fresh. This will wipe all persistent data (e.g., slaves, 
maintenance
 information, quota information, etc). To move from 1 master to 3 masters:</p>
 
 <ol>
@@ -167,7 +173,7 @@ information, quota information, etc). To
 
 <ol>
 <li>Initially, 5 masters are running with <code>--quorum=3</code></li>
-<li>Remove 2 masters from the cluster, ensure they will not be restarted (See 
NOTE section above). Now 3 masters are running with <code>--quorum=3</code></li>
+<li>Remove 2 masters from the cluster, ensure they will not be restarted (see 
NOTE section above). Now 3 masters are running with <code>--quorum=3</code></li>
 <li>Restart the 3 masters with <code>--quorum=2</code></li>
 </ol>
 
@@ -178,9 +184,9 @@ information, quota information, etc). To
 
 <p>Please see the NOTE section above. So long as the failed master is 
guaranteed to not re-join the ensemble, it is safe to start a new master 
<em>with an empty log</em> and allow it to catch up.</p>
 
-<h2>External access for mesos master</h2>
+<h2>External access for Mesos master</h2>
 
-<p>If the default ip (or the command line arg <code>--ip</code>) points to an 
internal IP, then external entities such as framework scheduler would not be 
able to reach the master. To address that scenario, an externally accessible 
IP:port can be setup via the <code>--advertise_ip</code> and 
<code>--advertise_port</code> command line arguments of mesos master. If 
configured, external entities such as framework scheduler interact with the 
advertise_ip:advertise_port from where the request needs to be proxied to the 
internal IP:Port on which mesos master is listening.</p>
+<p>If the default IP (or the command line arg <code>--ip</code>) is an 
internal IP, then external entities such as framework schedulers will be unable 
to reach the master. To address that scenario, an externally accessible IP:port 
can be setup via the <code>--advertise_ip</code> and 
<code>--advertise_port</code> command line arguments of 
<code>mesos-master</code>. If configured, external entities such as framework 
schedulers interact with the advertise_ip:advertise_port from where the request 
needs to be proxied to the internal IP:port on which the Mesos master is 
listening.</p>
 
        </div>
 </div>

Modified: mesos/site/publish/documentation/latest/upgrades/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/upgrades/index.html?rev=1707671&r1=1707670&r2=1707671&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/upgrades/index.html (original)
+++ mesos/site/publish/documentation/latest/upgrades/index.html Fri Oct  9 
08:10:08 2015
@@ -115,6 +115,18 @@
 </ul>
 
 
+<p>In order to upgrade a running cluster:</p>
+
+<ul>
+<li>Rebuild and install any modules so that upgraded masters/slaves can use 
them.</li>
+<li>Install the new master binaries and restart the masters.</li>
+<li>Install the new slave binaries and restart the slaves.</li>
+<li>Upgrade the schedulers by linking the latest native library / jar / egg 
(if necessary).</li>
+<li>Restart the schedulers.</li>
+<li>Upgrade the executors by linking the latest native library / jar / egg (if 
necessary).</li>
+</ul>
+
+
 <h2>Upgrading from 0.23.x to 0.24.x</h2>
 
 <p><strong>NOTE</strong> Support for live upgrading a driver based scheduler 
to HTTP based (experimental) scheduler has been added.</p>

Added: 
mesos/site/publish/documentation/networking-for-mesos-managed-containers/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/networking-for-mesos-managed-containers/index.html?rev=1707671&view=auto
==============================================================================
--- 
mesos/site/publish/documentation/networking-for-mesos-managed-containers/index.html
 (added)
+++ 
mesos/site/publish/documentation/networking-for-mesos-managed-containers/index.html
 Fri Oct  9 08:10:08 2015
@@ -0,0 +1,415 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+                   <meta name="viewport" content="width=device-width, 
initial-scale=1.0">
+
+                   <link 
href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" 
rel="stylesheet">
+                   <link rel="alternate" type="application/atom+xml" 
title="Apache Mesos Blog" href="/blog/feed.xml">
+                   
+                   <link href="../../assets/css/main.css" media="screen" 
rel="stylesheet" type="text/css" />
+                               
+                   
+                       
+                       <!-- Google Analytics Magic -->
+                       <script type="text/javascript">
+                         var _gaq = _gaq || [];
+                         _gaq.push(['_setAccount', 'UA-20226872-1']);
+                         _gaq.push(['_setDomainName', 'apache.org']);
+                         _gaq.push(['_trackPageview']);
+
+                         (function() {
+                           var ga = document.createElement('script'); ga.type 
= 'text/javascript'; ga.async = true;
+                           ga.src = ('https:' == document.location.protocol ? 
'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                           var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+                         })();
+                       </script>
+    </head>
+    <body>
+                       <!-- magical breadcrumbs -->
+                       <div class="topnav">
+                       <ul class="breadcrumb">
+                         <li>
+                                       <div class="dropdown">
+                                         <a data-toggle="dropdown" 
href="#">Apache Software Foundation <span class="caret"></span></a>
+                                         <ul class="dropdown-menu" role="menu" 
aria-labelledby="dLabel">
+                                                       <li><a 
href="http://www.apache.org";>Apache Homepage</a></li>
+                                                       <li><a 
href="http://www.apache.org/licenses/";>License</a></li>
+                                               <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>  
+                                               <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+                                                       <li><a 
href="http://www.apache.org/security/";>Security</a></li>
+                                         </ul>
+                                       </div>
+                               </li>
+                               <li><a href="http://mesos.apache.org";>Apache 
Mesos</a></li>
+                               
+                               
+                                       <li><a href="/documentation
+/">Documentation
+</a></li>
+                               
+                               
+                       </ul><!-- /breadcrumb -->
+                       </div>
+                       
+                       <!-- navbar excitement -->
+           <div class="navbar navbar-static-top" role="navigation">
+             <div class="navbar-inner">
+               <div class="container">
+                                               <a href="/" class="logo"><img 
src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+                                       <div class="nav-collapse">
+                                               <ul class="nav nav-pills 
navbar-right">
+                                                 <li><a 
href="/gettingstarted/">Getting Started</a></li>
+                                                 <li><a 
href="/documentation/latest/">Documentation</a></li>
+                                                 <li><a 
href="/downloads/">Downloads</a></li>
+                                                 <li><a 
href="/community/">Community</a></li>
+                                               </ul>
+                                       </div>
+               </div>
+             </div>
+           </div><!-- /.navbar -->
+
+      <div class="container">
+
+                       <div class="row-fluid">
+       <div class="col-md-4">
+               <h4>If you're new to Mesos</h4>
+               <p>See the <a href="/gettingstarted/">getting started</a> page 
for more information about downloading, building, and deploying Mesos.</p>
+               
+               <h4>If you'd like to get involved or you're looking for 
support</h4>
+               <p>See our <a href="/community/">community</a> page for more 
details.</p>
+       </div>
+       <div class="col-md-8">
+               <h1>Networking for Mesos-managed containers</h1>
+
+<p>While networking plays a key role in data center infrastructure, it is 
&ndash; for
+now &ndash; beyond the scope of Mesos to try to address the concerns of 
networking
+setup, topology and performance. However, Mesos can ease integrations with
+existing networking solutions and enable features, like IP per container,
+task-granular task isolation and service discovery. More often than not, it
+will be challenging to provide a one-size-fits-all networking solution. The
+requirements and available solutions will vary across all cloud-only,
+on-premise, and hybrid deployments.</p>
+
+<p>One of the primary goals for the networking support in Mesos was to have a
+pluggable mechanism to allow users to enable custom networking solution as
+needed. As a result, several extensions were added to Mesos components in
+version 0.25.0 to enable networking support. Further, all the extensions are
+opt-in to allow older frameworks and applications without networking support to
+coexist with the newer ones.</p>
+
+<p>The rest of this document describes the overall architecture of all the 
involved
+components, configuration steps for enabling IP-per-container, and required
+framework changes.</p>
+
+<h2>How does it work?</h2>
+
+<p><img src="images/networking-architecture.png" alt="Mesos Networking 
Architecture" /></p>
+
+<p>A key observation is that the networking support is enabled via a Mesos 
module
+and thus the Mesos master and agents are completely oblivious of it. It is
+completely up to the networking module to provide the desired support. Next,
+the IP requests are provided on a best effort manner. Thus, the framework 
should
+be willing to handle ignored (in cases where the module(s) are not present) or
+declined (the IPs can&rsquo;t be assigned due to various reasons) requests.</p>
+
+<p>To maximize backwards-compatibility with existing frameworks, schedulers 
must
+opt-in to network isolation per-container. Schedulers opt in to network
+isolation using new data structures in the TaskInfo message.</p>
+
+<h3>Terminology</h3>
+
+<ul>
+<li><p>IP Address Management (IPAM) Server</p>
+
+<ul>
+<li>assigns IPs on demand</li>
+<li>recycles IPs once they have been released</li>
+<li>(optionally) can tag IPs with a given string/id.</li>
+</ul>
+</li>
+<li><p>IPAM client</p>
+
+<ul>
+<li>tightly coupled with a particular IPAM server</li>
+<li>acts as a bridge between the &ldquo;Network Isolator Module&rdquo; and the 
IPAM server</li>
+<li>communicates with the server to request/release IPs</li>
+</ul>
+</li>
+<li><p>Network Isolator Module (NIM):</p>
+
+<ul>
+<li>a Mesos module for the Agent implementing the <code>Isolator</code> 
interface</li>
+<li>looks at TaskInfos to detect the IP requirements for the tasks</li>
+<li>communicates with the IPAM client to request/release IPs</li>
+<li>communicates with an external network virtualizer/isolator to enable 
network
+isolation</li>
+</ul>
+</li>
+<li><p>Cleanup Module:</p>
+
+<ul>
+<li>responsible for doing a cleanup (releasing IPs, etc.) during a Agent lost
+event, dormant otherwise</li>
+</ul>
+</li>
+</ul>
+
+
+<h3>Framework requests IP address for containers</h3>
+
+<ol>
+<li><p>A Mesos framework uses the TaskInfo message to requests IPs for each
+container being launched. (The request is ignored if the Mesos cluster
+doesn&rsquo;t have support for IP-per-container.)</p></li>
+<li><p>Mesos Master processes TaskInfos and forwards them to the Agent for 
launching
+tasks.</p></li>
+</ol>
+
+
+<h3>Network isolator module gets IP from IPAM server</h3>
+
+<ol>
+<li><p>Mesos Agent inspects the TaskInfo to detect the container requirements
+(MesosContainerizer in this case) and prepares various Isolators for the
+to-be-launched container.</p>
+
+<ul>
+<li>The NIM inspects the TaskInfo to decide whether to enable network isolator
+or not.</li>
+</ul>
+</li>
+<li><p>If network isolator is to be enabled, NIM requests IP address(es) via 
IPAM
+  client and informs the Agent.</p></li>
+</ol>
+
+
+<h3>Agent launches container with a network namespace</h3>
+
+<ol>
+<li>The Agent launches a container within a new network namespace.
+
+<ul>
+<li>The Agent calls into NIM to perform &ldquo;isolation&rdquo;</li>
+<li>The NIM then calls into network virtualizer to isolate the container.</li>
+</ul>
+</li>
+</ol>
+
+
+<h3>Network virtualizer assigns IP address to the container and isolates 
it.</h3>
+
+<ol>
+<li>NIM then &ldquo;decorates&rdquo; the TaskStatus with the IP information.
+
+<ul>
+<li>The IP address(es) from TaskStatus are made available at Master&rsquo;s
+state endpoint.</li>
+<li>The TaskStatus is also forwarded to the framework to inform it of the IP
+addresses.</li>
+<li>When a task is killed or lost, NIM communicates with IPAM client to release
+corresponding IP address(es).</li>
+</ul>
+</li>
+</ol>
+
+
+<h3>Cleanup module detects lost Agents and performs cleanup</h3>
+
+<ol>
+<li><p>The cleanup module gets notified if there is an Agent-lost 
event.</p></li>
+<li><p>The cleanup module communicates with the IPAM client to release all IP
+address(es) associated with the lost Agent. The IPAM may have a grace period
+before the address(es) are recycled.</p></li>
+</ol>
+
+
+<h2>Configuration</h2>
+
+<p>The network isolator module is not part of standard Mesos distribution. 
However,
+there is an example implementation at 
https://github.com/mesosphere/net-modules.</p>
+
+<p>Once the network isolation module has been built into a shared dynamic 
library,
+we can load it into Mesos Agent (/documentation/latest/see <a 
href="modules/">modules documentation</a> on
+instructions for building and loading a module).</p>
+
+<h2>Enabling frameworks for IP-per-container capability</h2>
+
+<h3>NetworkInfo</h3>
+
+<p>A new NetworkInfo message has been introduced:</p>
+
+<pre><code class="{.proto}">message NetworkInfo {
+  enum Protocol {
+    IPv4 = 0,
+    IPv6 = 1
+  }
+
+  optional Protocol protocol = 1;
+
+  optional string ip_address = 2;
+
+  repeated string groups = 3;
+
+  optional Labels labels = 4;
+};
+</code></pre>
+
+<p>When requesting an IP address from the IPAM, one needs to set the 
<code>protocol</code>
+field to <code>IPv4</code> or <code>IPv6</code>. Setting 
<code>ip_address</code> to a valid IP address allows the
+framework to specify a static IP address for the container (if supported by the
+NIM). This is helpful in situations where a task must be bound to a particular
+IP address even as it is killed and restarted on a different node.</p>
+
+<h3>Examples of specifying network requirements</h3>
+
+<p>Frameworks wanting to enable IP per container, need to provide 
<code>NetworkInfo</code>
+message in TaskInfo. Here are a few examples:</p>
+
+<ol>
+<li><p>A request for one address of unspecified protocol version using the 
default
+command executor</p>
+
+<pre><code>TaskInfo {
+  ...
+  command: ...,
+  container: ContainerInfo {
+    network_infos: [
+      NetworkInfo {
+        protocol: None;
+        ip_address: None;
+        groups: [];
+        labels: None;
+      }
+    ]
+  }
+}
+</code></pre></li>
+<li><p>A request for one IPv4 and one IPv6 address, in two separate groups 
using the
+default command executor</p>
+
+<pre><code>TaskInfo {
+  ...
+  command: ...,
+  container: ContainerInfo {
+    network_infos: [
+      NetworkInfo {
+        protocol: IPv4;
+        ip_address: None;
+        groups: ["public"];
+        labels: None;
+      },
+      NetworkInfo {
+        protocol: IPv6;
+        ip_address: None;
+        groups: ["private"];
+        labels: None;
+      }
+    ]
+  }
+}
+</code></pre></li>
+<li><p>A request for a specific IP address using a custom executor</p>
+
+<pre><code>TaskInfo {
+  ...
+  executor: ExecutorInfo {
+    ...,
+    container: ContainerInfo {
+      network_infos: [
+        NetworkInfo {
+          protocol: None;
+          ip_address: "10.1.2.3";
+          groups: [];
+          labels: None;
+        }
+      ]
+    }
+  }
+}
+</code></pre></li>
+</ol>
+
+
+<p>NOTE: The Mesos Containerizer will reject any CommandInfo that has a 
ContainerInfo. For this reason, when opting in to network isolation when using 
the Mesos Containerizer, set TaskInfo.ContainerInfo.NetworkInfo.</p>
+
+<h2>Address Discovery</h2>
+
+<p>The NetworkInfo message allows frameworks to request IP address(es) to be
+assigned at task launch time on the Mesos agent.  After opting in to network
+isolation for a given executor’s container in this way, frameworks will need 
to
+know what address(es) were ultimately assigned in order to perform health
+checks, or any other out-of-band communication.</p>
+
+<p>This is accomplished by adding a new field to the TaskStatus message.</p>
+
+<pre><code class="{.proto}">message ContainerStatus {
+   repeated NetworkInfo network_infos;
+}
+
+message TaskStatus {
+  ...
+  optional ContainerStatus container;
+  ...
+};
+</code></pre>
+
+<p>Further, the container IP addresses are also exposed via Master&rsquo;s 
state
+endpoint. The JSON output from Master&rsquo;s state endpoint contains a list 
of task
+statuses. If a task&rsquo;s container was started with it&rsquo;s own IP 
address, the
+assigned IP address will be exposed as part of the <code>TASK_RUNNING</code> 
status.</p>
+
+<p>NOTE: Since per-container address(es) are strictly opt-in from the 
framework,
+the framework may ignore the IP address(es) provided in StatusUpdate if it
+didn&rsquo;t set NetworkInfo in the first place.</p>
+
+<h2>Writing a Custom Network Isolator Module</h2>
+
+<p>A network isolator module implements the Isolator interface provided by 
Mesos.
+The module is loaded as a dynamic shared library in to the Mesos Agent and gets
+hooked up in the container launch sequence. A network isolator may communicate
+with external IPAM and network virtualizer tools to fulfill framework
+requirements.</p>
+
+<p>In terms of the Isolator API, there are three key callbacks that a network
+isolator module should implement:</p>
+
+<ol>
+<li><p><code>Isolator::prepare()</code> provides the module with a chance to 
decide whether or
+not the enable network isolation for the given task container. If the network
+isolation is to be enabled, the Isolator::prepare call would inform the Agent
+to create a private network namespace for the coordinator. It is this
+interface, that will also generate an IP address (statically or with the help
+of an external IPAM agent) for the container.</p></li>
+<li><p><code>Isolator::isolate()</code> provide the module with the 
opportunity to <em>isolate</em>
+the container <em>after</em> it has been created but before the executor is 
launched
+inside the container. This would involve creating virtual ethernet adapter
+for the container and assigning it an IP address. The module can also use
+help of an external network virtualizer/isolator for setting up network for
+the container.</p></li>
+<li><p><code>Isolator::cleanup()</code> is called when the container 
terminates. This allows the
+module to perform any cleanups such as recovering resources and releasing IP
+addresses as needed.</p></li>
+</ol>
+
+
+       </div>
+</div>
+
+                       
+             <hr>
+
+                               <!-- footer -->
+             <div class="footer">
+               <p>&copy; 2012-2015 <a href="http://apache.org";>The Apache 
Software Foundation</a>.
+               Apache Mesos, the Apache feather logo, and the Apache Mesos 
project logo are trademarks of The Apache Software Foundation.<p>
+             </div><!-- /footer -->
+
+           </div> <!-- /container -->
+
+           <!-- JS -->
+           <script src="//code.jquery.com/jquery-1.11.0.min.js" 
type="text/javascript"></script>
+                       <script 
src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" 
type="text/javascript"></script>
+    </body>
+</html>

Modified: mesos/site/publish/documentation/operational-guide/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/operational-guide/index.html?rev=1707671&r1=1707670&r2=1707671&view=diff
==============================================================================
--- mesos/site/publish/documentation/operational-guide/index.html (original)
+++ mesos/site/publish/documentation/operational-guide/index.html Fri Oct  9 
08:10:08 2015
@@ -83,11 +83,17 @@
        <div class="col-md-8">
                <h1>Operational Guide</h1>
 
+<h2>Using a process supervisor</h2>
+
+<p>Mesos uses a &ldquo;<a 
href="https://en.wikipedia.org/wiki/Fail-fast";>fail-fast</a>&rdquo; approach to 
error handling: if a serious error occurs, Mesos will typically exit rather 
than trying to continue running in a possibly erroneous state. For example, 
when Mesos is configured for <a 
href="/documentation/latest/high-availability">high availability</a>, the 
leading master will abort itself when it discovers it has been partitioned away 
from the Zookeeper quorum. This is a safety precaution to ensure the previous 
leader doesn&rsquo;t continue communicating in an unsafe state.</p>
+
+<p>To ensure that such failures are handled appropriately, production 
deployments of Mesos typically use a <em>process supervisor</em> (such as 
systemd or supervisord) to detect when Mesos processes exit. The supervisor can 
be configured to restart the failed process automatically and/or to notify the 
cluster operator to investigate the situation.</p>
+
 <h2>Changing the master quorum</h2>
 
-<p>Currently the master leverages a paxos-based replicated log as its storage 
backend (<code>--registry=replicated_log</code> is the only storage backend 
supported). Each master participates in the ensemble as a log replica. The 
<code>--quorum</code> flag determines a majority of the masters.</p>
+<p>The master leverages a Paxos-based replicated log as its storage backend 
(<code>--registry=replicated_log</code> is the only storage backend currently 
supported). Each master participates in the ensemble as a log replica. The 
<code>--quorum</code> flag determines a majority of the masters.</p>
 
-<p>The following table shows the tolerance to master failures, for each quorum 
size:</p>
+<p>The following table shows the tolerance to master failures for each quorum 
size:</p>
 
 <table>
 <thead>
@@ -151,7 +157,7 @@
 <p>To increase the quorum by N, repeat this process to increment the quorum 
size N times.</p>
 
 <p>NOTE: Currently, moving out of a single master setup requires wiping the 
replicated log
-state and starting fresh. This will wipe all persistent data (e.g. slaves, 
maintenance
+state and starting fresh. This will wipe all persistent data (e.g., slaves, 
maintenance
 information, quota information, etc). To move from 1 master to 3 masters:</p>
 
 <ol>
@@ -167,7 +173,7 @@ information, quota information, etc). To
 
 <ol>
 <li>Initially, 5 masters are running with <code>--quorum=3</code></li>
-<li>Remove 2 masters from the cluster, ensure they will not be restarted (See 
NOTE section above). Now 3 masters are running with <code>--quorum=3</code></li>
+<li>Remove 2 masters from the cluster, ensure they will not be restarted (see 
NOTE section above). Now 3 masters are running with <code>--quorum=3</code></li>
 <li>Restart the 3 masters with <code>--quorum=2</code></li>
 </ol>
 
@@ -178,9 +184,9 @@ information, quota information, etc). To
 
 <p>Please see the NOTE section above. So long as the failed master is 
guaranteed to not re-join the ensemble, it is safe to start a new master 
<em>with an empty log</em> and allow it to catch up.</p>
 
-<h2>External access for mesos master</h2>
+<h2>External access for Mesos master</h2>
 
-<p>If the default ip (or the command line arg <code>--ip</code>) points to an 
internal IP, then external entities such as framework scheduler would not be 
able to reach the master. To address that scenario, an externally accessible 
IP:port can be setup via the <code>--advertise_ip</code> and 
<code>--advertise_port</code> command line arguments of mesos master. If 
configured, external entities such as framework scheduler interact with the 
advertise_ip:advertise_port from where the request needs to be proxied to the 
internal IP:Port on which mesos master is listening.</p>
+<p>If the default IP (or the command line arg <code>--ip</code>) is an 
internal IP, then external entities such as framework schedulers will be unable 
to reach the master. To address that scenario, an externally accessible IP:port 
can be setup via the <code>--advertise_ip</code> and 
<code>--advertise_port</code> command line arguments of 
<code>mesos-master</code>. If configured, external entities such as framework 
schedulers interact with the advertise_ip:advertise_port from where the request 
needs to be proxied to the internal IP:port on which the Mesos master is 
listening.</p>
 
        </div>
 </div>

Modified: mesos/site/publish/documentation/upgrades/index.html
URL: 
http://svn.apache.org/viewvc/mesos/site/publish/documentation/upgrades/index.html?rev=1707671&r1=1707670&r2=1707671&view=diff
==============================================================================
--- mesos/site/publish/documentation/upgrades/index.html (original)
+++ mesos/site/publish/documentation/upgrades/index.html Fri Oct  9 08:10:08 
2015
@@ -115,6 +115,18 @@
 </ul>
 
 
+<p>In order to upgrade a running cluster:</p>
+
+<ul>
+<li>Rebuild and install any modules so that upgraded masters/slaves can use 
them.</li>
+<li>Install the new master binaries and restart the masters.</li>
+<li>Install the new slave binaries and restart the slaves.</li>
+<li>Upgrade the schedulers by linking the latest native library / jar / egg 
(if necessary).</li>
+<li>Restart the schedulers.</li>
+<li>Upgrade the executors by linking the latest native library / jar / egg (if 
necessary).</li>
+</ul>
+
+
 <h2>Upgrading from 0.23.x to 0.24.x</h2>
 
 <p><strong>NOTE</strong> Support for live upgrading a driver based scheduler 
to HTTP based (experimental) scheduler has been added.</p>


Reply via email to