Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
47aece40
Commit
47aece40
authored
Dec 14, 2015
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #18646 from mesosphere/sur-690-docs
Auto commit by PR queue bot
parents
6fbbe9a6
7bf86d61
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
40 deletions
+47
-40
scheduler.md
contrib/mesos/docs/scheduler.md
+47
-40
No files found.
contrib/mesos/docs/scheduler.md
View file @
47aece40
...
@@ -35,53 +35,60 @@ is restarted.
...
@@ -35,53 +35,60 @@ is restarted.
A Mesos cluster can be statically partitioned using
[
resources roles
][
2
]
. Each
A Mesos cluster can be statically partitioned using
[
resources roles
][
2
]
. Each
resource is assigned such a role (
`*`
is the default role, if none is explicitly
resource is assigned such a role (
`*`
is the default role, if none is explicitly
assigned in the mesos-slave command line). The Mesos master will send offers to
assigned in the mesos-slave command line). The Mesos master will send offers to
frameworks for
`*`
resources and – optionally –
for one extra
role that a
frameworks for
`*`
resources and – optionally –
one additional
role that a
framework is assigned to. Right now only one such
extra
role for a framework is
framework is assigned to. Right now only one such
additional
role for a framework is
supported.
supported.
### Configuring Roles for the Scheduler
### Configuring Roles for the Scheduler
Every Mesos framework scheduler can choose among
the
offered
`*`
resources and
Every Mesos framework scheduler can choose among offered
`*`
resources and
those of the extra
role. The Kubernetes-Mesos scheduler supports this by setting
optionally one additional
role. The Kubernetes-Mesos scheduler supports this by setting
the framework roles in the scheduler command line, e.g.
the framework roles in the scheduler command line, e.g.
```
bash
```
bash
$
km scheduler ...
--mesos-roles
=
"*,role1"
...
$
km scheduler ...
--mesos-
framework-
roles
=
"*,role1"
...
```
```
This will tell the Kubernetes-Mesos scheduler to default to using
`*`
resources
This permits the Kubernetes-Mesos scheduler to accept offered resources for the
`*`
and
`role1`
roles.
if a pod is not specially assigned to another role. Moreover, the extra role
By default pods may be assigned any combination of resources for the roles accepted by the scheduler.
`role1`
is allowed, i.e. the Mesos master will send resources or role
`role1`
This default role assignment behavior may be overridden using the
`--mesos-default-pod-roles`
flag or
to the Kubernetes scheduler.
else by annotating the pod (as described later).
Note the following restrictions and possibilities:
One can configure default pod roles, e.g.
-
Due to the restrictions of Mesos, only one extra role may be provided on the
command line.
```
bash
-
It is allowed to only pass an extra role without the
`*`
, e.g.
`--mesos-roles=role1`
.
$
km scheduler ...
--mesos-default-pod-roles
=
"role1"
...
This means that no
`*`
resources should be considered by the scheduler at all.
```
-
It is allowed to pass the extra role first, e.g.
`--mesos-roles=role1,*`
.
This means that
`role1`
is the default role for pods without special role
This will tell the Kubernetes-Mesos scheduler to default to
`role1`
resource offers.
assignment (see below). But
`*`
resources would be considered for pods with a special
`*`
The configured default pod roles must be a subset of the configured framework roles.
assignment.
The order of configured default pod roles is relevant,
`--mesos-default-pod-roles=role1,*`
will first try to consume
`role1`
resources
from an offer and, once depleted, fall back to
`*`
resources.
The configuration
`--mesos-default-pod-roles=*,role1`
has the reverse behavior.
It first tries to consume
`*`
resources from an offer and, once depleted, falls
back to
`role1`
resources.
Due to restrictions of Mesos, currently only one additional role next to
`*`
can be configured
for both framework and default pod roles.
### Specifying Roles for Pods
### Specifying Roles for Pods
By default a pod is scheduled using resources
of the role which comes first in
By default a pod is scheduled using resources
as specified using the
the list of scheduler roles
.
`--mesos-default-pod-roles`
configuration
.
A pod can o
pt-out of this default behaviour using the
`k8s.mesosphere.io/roles`
A pod can o
verride of this default behaviour using a
`k8s.mesosphere.io/roles`
label
:
annotation
:
```
yaml
```
yaml
k8s.mesosphere.io/roles
:
role1,role2,role3
k8s.mesosphere.io/roles
:
"
*,role1"
```
```
The format is a comma separated list of allowed resource roles. The scheduler
The format is a comma separated list of allowed resource roles. The scheduler
will try to schedule the pod with
`role1`
resources first, using
`role2`
will try to schedule the pod with
`*`
resources first, using
`role1`
resources if the former are not available and finally falling back to
`role3`
resources if the former are not available or are depleted.
resources.
The
`*`
role may be specified as well in this list.
**Note:**
An empty list will mean that no resource roles are allowed which is
**Note:**
An empty list will mean that no resource roles are allowed which is
equivalent to a pod which is unschedulable.
equivalent to a pod which is unschedulable.
...
@@ -93,29 +100,29 @@ apiVersion: v1
...
@@ -93,29 +100,29 @@ apiVersion: v1
kind
:
Pod
kind
:
Pod
metadata
:
metadata
:
name
:
backend
name
:
backend
label
s
:
annotation
s
:
k8s.mesosphere.io/roles
:
*,
prod,test,dev
k8s.mesosphere.io/roles
:
"
*,public"
namespace
:
prod
namespace
:
prod
spec
:
spec
:
...
...
```
```
This
`
prod/backend`
pod will be scheduled using resources from all four
roles,
This
`
*/public`
pod will be scheduled using resources from both
roles,
preferably using
`*`
resources, followed by
`p
rod`
,
`test`
and
`dev
`
. If none
preferably using
`*`
resources, followed by
`p
ublic
`
. If none
of those
for
roles provides enough resources, the scheduling fails.
of those roles provides enough resources, the scheduling fails.
**Note:**
The scheduler will also allow to mix different roles in the following
**Note:**
The scheduler will also allow to mix different roles in the following
sense: if a node provides
`cpu`
resources for the
`*`
role, but
`mem`
resources
sense: if a node provides
`cpu`
resources for the
`*`
role, but
`mem`
resources
only for the
`p
rod`
role, the upper pod will be schedule
using
`cpu(*)`
and
only for the
`p
ublic`
role, the above pod will be scheduled
using
`cpu(*)`
and
`mem(p
rod
)`
resources.
`mem(p
ublic
)`
resources.
**Note:**
The scheduler might also mix within one resource type, i.e. it will
**Note:**
The scheduler might also mix within one resource type, i.e. it will
use as many
`cpu`
s of the
`*`
role as possible. If a pod requires even more
use as many
`cpu`
s of the
`*`
role as possible. If a pod requires even more
`cpu`
resources (defined using the
`pod.spec.resources.limits`
property) for successful
`cpu`
resources (defined using the
`pod.spec.resources.limits`
property) for successful
scheduling, the scheduler will add resources from the
`p
rod`
,
`test`
and
`dev
`
scheduling, the scheduler will add resources from the
`p
ublic
`
role
s, in this order
until the pod resource requirements are satisfied. E.g. a
role until the pod resource requirements are satisfied. E.g. a
pod might be scheduled with 0.5
`cpu(*)`
, 1.5
`cpu(p
rod)`
and 1
`cpu(test
)`
pod might be scheduled with 0.5
`cpu(*)`
, 1.5
`cpu(p
ublic
)`
resources plus e.g. 2 GB
`mem(p
rod
)`
resources.
resources plus e.g. 2 GB
`mem(p
ublic
)`
resources.
## Tuning
## Tuning
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment