-
Notifications
You must be signed in to change notification settings - Fork 240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update docs to hide Mesos #4413
Merged
Merged
Changes from 6 commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
4bdc1a9
Update docs to hide Mesos
w-gao fca547c
Merge branch 'master' into issues/4354-deprecate-mesos
w-gao 8215eb0
Merge branch 'master' into issues/4354-deprecate-mesos
w-gao d34a4dd
address review comments
w-gao 2d8f1cd
remove invisible characters?
w-gao 70c4622
replace mesos in more places
w-gao 2b321ff
Merge remote-tracking branch 'upstream/master' into issues/4354-depre…
adamnovak f0ca3a3
Document Kubernetes-managed autoscaling, with in-workflow Mesos autos…
adamnovak f5f3a1c
Reword some documentation and messages
adamnovak 858133d
Chase out more Mesoses
adamnovak 739b8a7
Merge branch 'master' into issues/4354-deprecate-mesos
adamnovak 4222c02
Merge remote-tracking branch 'upstream/master' into issues/4354-depre…
adamnovak 97a3543
Don't insist on processes actually running promptly in parallel
adamnovak d2bcac7
Ask for a compatible set of Sphinx packages
adamnovak 9acc515
Keep back astroid
adamnovak File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -99,21 +99,27 @@ during the computation of a workflow, first set up and configure an account with | |
the installed version that you are using if you're using a different version): :: | ||
|
||
$ TOIL_APPLIANCE_SELF=quay.io/ucsc_cgl/toil:5.3.0 \ | ||
toil launch-cluster clustername \ | ||
toil launch-cluster <cluster-name> \ | ||
--clusterType kubernetes \ | ||
--leaderNodeType t2.medium \ | ||
--nodeTypes t2.medium -w 1 \ | ||
--zone us-west-1a \ | ||
--keyPairName id_rsa | ||
|
||
To further break down each of these commands: | ||
|
||
**TOIL_APPLIANCE_SELF=quay.io/ucsc_cgl/toil:latest** --- This is optional. It specifies a mesos docker image that we maintain with the latest version of toil installed on it. If you want to use a different version of toil, please specify the image tag you need from https://quay.io/repository/ucsc_cgl/toil?tag=latest&tab=tags. | ||
**TOIL_APPLIANCE_SELF=quay.io/ucsc_cgl/toil:latest** --- This is optional. It specifies a ubuntu-based docker image that we maintain with the latest version of toil installed on it. If you want to use a different version of toil, please specify the image tag you need from https://quay.io/repository/ucsc_cgl/toil?tag=latest&tab=tags. | ||
|
||
**toil launch-cluster** --- Base command in toil to launch a cluster. | ||
|
||
**clustername** --- Just choose a name for your cluster. | ||
**<cluster-name>** --- Just choose a name for your cluster. | ||
|
||
**--clusterType kubernetes** --- Specify the type of cluster to coordinate and execute your workflow. Kubernetes is the recommended option. | ||
|
||
**--leaderNodeType t2.medium** --- Specify the leader node type. Make a t2.medium (2CPU; 4Gb RAM; $0.0464/Hour). List of available AWS instances: https://aws.amazon.com/ec2/pricing/on-demand/ | ||
|
||
**--nodeTypes t2.medium -w 1** --- Specify the worker node type and the number of worker nodes to launch. The kubernetes cluster requires at least 1 worker node. | ||
|
||
**--zone us-west-1a** --- Specify the AWS zone you want to launch the instance in. Must have the same prefix as the zone in your awscli credentials (which, in the example of this tutorial is: "us-west-1"). | ||
|
||
**--keyPairName id_rsa** --- The name of your key pair, which should be "id_rsa" if you've followed this tutorial. | ||
|
@@ -162,7 +168,7 @@ Getting started with the provisioner is simple: | |
`here <http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-config-files>`__. | ||
|
||
The Toil provisioner is built around the Toil Appliance, a Docker image that bundles | ||
Toil and all its requirements (e.g. Mesos). This makes deployment simple across | ||
Toil and all its requirements (e.g. Kubernetes). This makes deployment simple across | ||
platforms, and you can even simulate a cluster locally (see :ref:`appliance_dev` for details). | ||
|
||
.. admonition:: Choosing Toil Appliance Image | ||
|
@@ -182,12 +188,14 @@ Details about Launching a Cluster in AWS | |
---------------------------------------- | ||
|
||
Using the provisioner to launch a Toil leader instance is simple using the ``launch-cluster`` command. For example, | ||
to launch a cluster named "my-cluster" with a t2.medium leader in the us-west-2a zone, run :: | ||
to launch a kubernetes cluster named "my-cluster" with a t2.medium leader in the us-west-2a zone, run :: | ||
|
||
(venv) $ toil launch-cluster my-cluster \ | ||
--clusterType kubernetes \ | ||
--leaderNodeType t2.medium \ | ||
--nodeTypes t2.medium -w 1 \ | ||
--zone us-west-2a \ | ||
--keyPairName <your-AWS-key-pair-name> | ||
--keyPairName <AWS-key-pair-name> | ||
|
||
The cluster name is used to uniquely identify your cluster and will be used to | ||
populate the instance's ``Name`` tag. Also, the Toil provisioner will | ||
|
@@ -234,9 +242,12 @@ change. This is in contrast with :ref:`Autoscaling`. | |
To launch worker nodes alongside the leader we use the ``-w`` option:: | ||
|
||
(venv) $ toil launch-cluster my-cluster \ | ||
--clusterType kubernetes \ | ||
--leaderNodeType t2.small -z us-west-2a \ | ||
--keyPairName your-AWS-key-pair-name \ | ||
--nodeTypes m3.large,t2.micro -w 1,4 | ||
--keyPairName <AWS-key-pair-name> \ | ||
--nodeTypes m3.large,t2.micro -w 1,4 \ | ||
--zone us-west-2a | ||
|
||
|
||
This will spin up a leader node of type t2.small with five additional workers --- one m3.large instance and four t2.micro. | ||
|
||
|
@@ -264,6 +275,8 @@ look like :: | |
Running a Workflow with Autoscaling | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
.. TODO: change to use kubernetes. But the kubernetes batch system doesn't support autoscaling? | ||
|
||
Autoscaling is a feature of running Toil in a cloud whereby additional cloud instances are launched to run the workflow. | ||
Autoscaling leverages Mesos containers to provide an execution environment for these workflows. | ||
|
||
|
@@ -276,6 +289,7 @@ Autoscaling leverages Mesos containers to provide an execution environment for t | |
#. Launch the leader node in AWS using the :ref:`launchCluster` command: :: | ||
|
||
(venv) $ toil launch-cluster <cluster-name> \ | ||
--clusterType mesos \ | ||
--keyPairName <AWS-key-pair-name> \ | ||
--leaderNodeType t2.medium \ | ||
--zone us-west-2a | ||
|
@@ -382,7 +396,7 @@ For example, to launch a Toil cluster with a Kubernetes scheduler, run: :: | |
--provisioner=aws \ | ||
--clusterType kubernetes \ | ||
--zone us-west-2a \ | ||
--keyPairName wlgao@ucsc.edu \ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I forgot to replace this in the last PR. |
||
--keyPairName <AWS-key-pair-name> \ | ||
--leaderNodeType t2.medium \ | ||
--leaderStorage 50 \ | ||
--nodeTypes t2.medium -w 1-4 \ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the kubernetes batch system not support autoscaling? I tried this with
--clusterType=kubernetes
, but when I run:I get:
It does look like the kubernetes batch system doesn't implement
AbstractScalableBatchSystem
.Are there other ways to dynamically spin up nodes that I am not aware of?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like our Kubernetes implementation supports scaling up and down through Kubernetes's cluster autoscaler (which you get when you pass a range of numbers instead of a single number for the number of nodes you want of a given type, when launching the cluster).
Running the Toil-integrated autoscaler as part of the workflow needs the
AbstractScalableBatchSystem
functions to e.g. drain nodes to safely scale them away. The Kubernetes cluster autoscaler is supposed to take care of all of that inside of Kubernetes and not inside the individual workflows.