Getting started with Maestro Clusters
A Maestro Cluster is a “blank” instance of Kubernetes infrastructure - i.e. with no application specific components installed. You can use a Cluster to deploy multiple applications to the same set of servers.
Note
Clusters are only compatible with applications built using Maestro Version 2.
What you’ll need
Before you start, please check you have the following:
- A Cloud 66 Account — If you don’t already have one, sign up for a Cloud 66 account. You’ll get free unlimited access to all products for 4 weeks.
- Application code and/or pre-built images — Application code should be hosted in a (secure) publicly accessible git repository and pre-built images should be hosted in image publicly accessible repositories.
- A Cloud account linked to Cloud 66 or your own servers set up — See below.
An account with your cloud provider of choice. Cloud 66 supports AWS, Google Cloud, Microsoft Azure, DigitalOcean, Hetzner, OVH, Packet, Rackspace,
Vultr, and Cloud A.
Click on any of the links above for instructions on linking your cloud provider to your Cloud 66 account.
Registered servers are a great way for operations teams to manage and allocate physical server resources for consumption by dev teams. Registered servers are a pool of your own servers (on a private or public cloud) that can be used for any application and configuration. For more information on how to add your own registered servers, we recommend this tutorial.
Creating a Maestro Cluster
To get started with your cluster — firstly switch to the Clusters dashboard in main navigation bar at the top of the page.
Then, click the green new cluster button.
Next, give your cluster a name that will make it easy to identify. Then, choose the deployment target for your cluster. You can choose one of your existing cloud providers, or click Add Clouds to add a new cloud provider.
You can also use your own server - although you will need to register it first. In our example we’re choosing to deploy to Digital Ocean.
Depending on which cloud or registered server you selected above, we can now choose options for our new cluster, such as region and capacity. In this example we’ll choose 3 servers with 2GB of RAM each in the Amsterdam 3 Region.
Note
The first server in your cluster will always be your Kubernetes master node. You can decide later if you would like this server to share application workloads or only run Kubernetes management tasks.
Deployment
Once you’re happy with your choices; hit the Create Cluster button to start building your new Maestro cluster!
You can watch the progess of the build on your dashboard, or you can close the window and get on with other work. We will alert you via email when your cluster is up and running.
During the build and deployment process you can view the log to see what’s happening behind the scenes. You can also drill down to specific servers to see what is going on there during deployment.
When your deployment is complete you’ll have your first Maestro cluster up and running!
Configuring the Cluster
As we have a cluster that has multiple servers, we can easily switch our master node from a shared master to a dedicated master. To do this we simply click the shared master dropdown link and select Yes! Switch to Dedicated Master
We can also easily add additional server nodes to this cluster or remove existing server nodes from this cluster. (Note that the master server cannot be removed without deleting the entire cluster.)
Deploying applications to the cluster
If you now create a new Maestro application (see [Getting Started with Maestro for help with this(/maestro/quickstarts/getting-started.html)) at the point where you can select your Cloud provider, you will now see additional items clusters. Select your cluster, and deploy your application!
What’s next?
- Learn how to add a load balancer to your application.
- Learn about using failover groups to make your application highly available
- Learn how to deploy your service(s) in parallel to speed up the deployment process.
- Your deployment configuration is stored in a manifest.yml file. Learn how to edit your manifest file to access advanced deployment features.