You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -71,74 +72,27 @@ To use the Fleet Scheduler backend explicitly, set the controller's
71
72
72
73
$ deisctl config controller set schedulerModule=fleet
73
74
74
-
75
-
Swarm Scheduler
76
-
---------------
77
-
78
-
.. important::
79
-
80
-
The Swarm Scheduler is a technology preview and is not recommended for
81
-
production use.
82
-
83
-
`swarm`_ is a scheduling backend for Docker:
84
-
85
-
Docker Swarm is native clustering for Docker. It turns a pool of Docker hosts
86
-
into a single, virtual host.
87
-
88
-
..
89
-
90
-
Swarm serves the standard Docker API, so any tool which already communicates
91
-
with a Docker daemon can use Swarm to transparently scale to multiple hosts...
92
-
93
-
Deis includes an enhanced version of swarm v0.2.0 with node failover and optimized
94
-
locking on container creation. The Swarm Scheduler uses a `soft affinity`_ filter
95
-
to spread app containers out among available machines.
96
-
97
-
Swarm requires the Docker Remote API to be available at TCP port 2375. If you are
98
-
upgrading an earlier installation of Deis, please refer to the CoreOS documentation
99
-
to `enable the remote API`_.
100
-
101
-
.. note::
102
-
103
-
**Known Issues**
104
-
105
-
- It is not yet possible to change the default affinity filter.
106
-
107
-
To test the Swarm Scheduler backend, first install and start the swarm components:
108
-
109
-
.. code-block:: console
110
-
111
-
$ deisctl install swarm && deisctl start swarm
112
-
113
-
Then set the controller's ``schedulerModule`` to "swarm":
114
-
115
-
.. code-block:: console
116
-
117
-
$ deisctl config controller set schedulerModule=swarm
118
-
119
-
The Swarm Scheduler is now active. Commands such as ``deis destroy`` or
120
-
``deis scale web=9`` will use `swarm`_ to manage app containers.
121
-
122
-
To monitor Swarm Scheduler operations, watch the logs of the swarm-manager
123
-
component, or spy on Docker events directly on the swarm-manager machine:
75
+
.. _k8s_scheduler:
124
76
125
77
Kubernetes Scheduler
126
78
--------------------
127
79
128
80
.. important::
129
81
130
-
The Kubernetes Scheduler is a technology preview and is not recommended for
131
-
production use.
82
+
The Kubernetes Scheduler is a technology preview and is not recommended for production use.
83
+
Since it requires overlay networking, Kubernetes can only be enabled on a new cluster.
132
84
133
-
`Kubernetes`_ orchestration system for docker containers:
85
+
`Kubernetes`_ is an orchestration system for Docker containers:
134
86
135
-
Kubernetes provides APIs to manage, deploy and scale docker containers. Kubernetes deploys docker containers as `pods`_,
136
-
unique entity across a cluster. Containers inside a pod share the same namespaces. More information about `pods`_.
87
+
Kubernetes (k8s) provides APIs to manage, deploy and scale Docker containers. Kubernetes
88
+
deploys containers as `pods`_, providing a unique entity across a cluster, but allowing
89
+
containers within the pod to share a namespace.
137
90
138
-
Kubernetes requires overlay network so that each pod can get a unique IP across the cluster which is achieved by using `flannel`_.
139
-
Deis repository provides a new user-data file to bootstrap CoreOs machines on the cluster with flannel.
91
+
Kubernetes requires the `flannel`_ overlay network so each pod receives a unique IP address within
92
+
the cluster. Existing Deis clusters cannot simply turn on overlay networking. Instead, provision
93
+
a new cluster to enable `flannel`_.
140
94
141
-
To test the Kubernetes Scheduler, first install and start the kubernetes components:
95
+
To test the Kubernetes Scheduler, first install and start the Kubernetes components:
142
96
143
97
.. code-block:: console
144
98
@@ -150,23 +104,26 @@ Then set the controller's ``schedulerModule`` to "k8s":
150
104
151
105
$ deisctl config controller set schedulerModule=k8s
152
106
153
-
The Kubernetes scheduler is now active. Commands such as ``deis destroy`` or
154
-
``deis scale web=9`` will use kubernetes ApiServer to manage app pods.
107
+
The Kubernetes scheduler is now active. Commands such as ``deis destroy`` or ``deis scale web=9``
108
+
will use the Kubernetes ApiServer to manage app pods.
155
109
156
-
Deis creates a `replication controller`_ to manage pods and a `service`_ which acts as a proxy and routes traffic to the pods associated with the App.
157
-
A new release uses rolling deploy mechanism where in we create and replace the pod with the new release one by one until all the pods are replaced properly or rollback to the older release
158
-
if any error occurs which differs from the existing schedulers where we create all the containers at a time and replace them with the old ones.
110
+
Deis creates a `replication controller`_ to manage pods and a `service`_ which proxies traffic to
111
+
the pods for your app. Unlike other Deis schedulers, new app releases on Kubernetes do a rolling
112
+
deploy: pods with the new release replace old pods one at a time, until all are replaced (or until
113
+
an error forces a rollback to the previous release).
159
114
160
115
.. note::
161
116
162
117
**Known Issues**
163
118
164
-
- Kubernetes ApiServer is not HA. If ApiServer is rescheduled it will reschedule all the kubernetes units.
165
-
- Kubernetes does resource based scheduling. Specifying limits will create reservation of the specified resource on the node.
166
-
- Installing flannel is not backwards compatible as it changes Docker bridge which requires restarting
167
-
Docker Engine.
168
-
- Docker Engine is started with arguments ``--iptables=false --ip-masq=false`` for the docker not to create IP masquerading rule and use the one created by flannel.
119
+
- The flannel overlay network is not backward-compatible with earlier Deis clusters, since it
120
+
changes Docker networking and requires new units from Deis' user-data file.
121
+
- The Kubernetes ApiServer is not HA. If the ApiServer is rescheduled, it will reschedule all
122
+
Kubernetes units.
123
+
- Kubernetes implements resource-based scheduling. Specifying limits will create a reservation
124
+
of that resource on the node.
169
125
126
+
.. _mesos_scheduler:
170
127
171
128
Mesos with Marathon framework
172
129
-----------------------------
@@ -188,7 +145,7 @@ Mesos with Marathon framework
188
145
service discovery, load balancing and REST API to control your Apps.
189
146
190
147
Deis uses the Marathon framework to schedule containers. Since Marathon is a framework for long-running
191
-
jobs, Deis uses the `Fleet Scheduler`_ to run batch processing jobs. ``deisctl`` installs a standalone Mesos
148
+
jobs, Deis uses the :ref:`fleet_scheduler` to run batch processing jobs. ``deisctl`` installs a standalone Mesos
192
149
cluster. To install an HA Mesos cluster, follow the directions at `aledbf-mesos`_, and set the etcd key
193
150
``/deis/scheduler/mesos/marathon`` to any Marathon node IP address. If a request is received by a regular
194
151
Marathon node, it is proxied to the master Marathon node.
@@ -221,6 +178,58 @@ Deis starts Marathon on port 8180. You can manage apps through the Marathon UI,
221
178
- Deis does not yet use Marathon's docker container API to create containers.
222
179
- CPU shares are integers representing the number of CPUs. Memory limits should be specified in MB.
223
180
181
+
.. _swarm_scheduler:
182
+
183
+
Swarm Scheduler
184
+
---------------
185
+
186
+
.. important::
187
+
188
+
The Swarm Scheduler is a technology preview and is not recommended for
189
+
production use.
190
+
191
+
`swarm`_ is a scheduling backend for Docker:
192
+
193
+
Docker Swarm is native clustering for Docker. It turns a pool of Docker hosts
194
+
into a single, virtual host.
195
+
196
+
..
197
+
198
+
Swarm serves the standard Docker API, so any tool which already communicates
199
+
with a Docker daemon can use Swarm to transparently scale to multiple hosts...
200
+
201
+
Deis includes an enhanced version of swarm v0.2.0 with node failover and optimized
202
+
locking on container creation. The Swarm Scheduler uses a `soft affinity`_ filter
203
+
to spread app containers out among available machines.
204
+
205
+
Swarm requires the Docker Remote API to be available at TCP port 2375. If you are
206
+
upgrading an earlier installation of Deis, please refer to the CoreOS documentation
207
+
to `enable the remote API`_.
208
+
209
+
.. note::
210
+
211
+
**Known Issues**
212
+
213
+
- It is not yet possible to change the default affinity filter.
214
+
215
+
To test the Swarm Scheduler backend, first install and start the swarm components:
216
+
217
+
.. code-block:: console
218
+
219
+
$ deisctl install swarm && deisctl start swarm
220
+
221
+
Then set the controller's ``schedulerModule`` to "swarm":
222
+
223
+
.. code-block:: console
224
+
225
+
$ deisctl config controller set schedulerModule=swarm
226
+
227
+
The Swarm Scheduler is now active. Commands such as ``deis destroy`` or
228
+
``deis scale web=9`` will use `swarm`_ to manage app containers.
229
+
230
+
To monitor Swarm Scheduler operations, watch the logs of the swarm-manager
231
+
component, or spy on Docker events directly on the swarm-manager machine:
0 commit comments