Deploy a Cluster
This tutorial will teach you how to deploy a host cluster with Palette using Amazon Web Services (AWS). You will learn about Cluster Mode and Cluster Profiles and how these components enable you to deploy customized applications to Kubernetes with minimal effort.
As you navigate the tutorial, refer to this diagram to help you understand how Palette uses a cluster profile as a blueprint for the host cluster you deploy. Palette clusters have the same node pools you may be familiar with: control plane nodes and worker nodes where you will deploy applications. The result is a host cluster that Palette manages. The concepts you learn about in the Getting Started section are centered around a fictional case study company, Spacetastic Ltd.
π§βπ Back at Spacetastic HQβ
After successfully creating their first cluster profile and mapping out their entire technology stack, Wren, Founding Engineer and Kai, Platform Engineer, continue their Palette onboarding process. They are evaluating Palette as a potential platform orchestration tool for all the production workloads at Spacetastic, who provide an astronomy education platform deployed on Kubernetes.
"The Getting Started section is a great way to learn about Palette. The hands-on approach is just what we need to get our first cluster deployed." says Kai, scrolling through the Spectro Cloud Docs. "Wren, do you have time to continue our onboarding and get our first cluster deployed?"
Wren sits down next to Kai and sips on a cup of coffee. "Now, we'll get a hands-on feel of the Palette developer experience. You know me, I'm a champion for developer tooling and always supportive of investing in our platform. Let's follow this tutorial and deploy a cluster using the Palette UI."
Prerequisitesβ
To complete this tutorial, you will need the following.
-
Follow the steps described in the Set up Palette with AWS guide to authenticate Palette for use with your AWS cloud account.
-
A Palette cluster profile. Follow the Create a Cluster Profile tutorial to create the required AWS cluster profile.
Deploy a Clusterβ
The following steps will guide you through deploying the cluster infrastructure.
Navigate to the left Main Menu and select Clusters. Click on Create Cluster.
Palette will prompt you to select the type of cluster. Select AWS IaaS and click the Start AWS IaaS Configuration button. Use the following steps to create a host cluster in AWS.
In the Basic information section, insert the general information about the cluster, such as the Cluster name, Description, Tags, and Cloud account. Click on Next.
Click on Add Cluster Profile. A list is displayed of available profiles you can choose to deploy to AWS. Select the cluster profile you created in the Create a Cluster Profile tutorial, named aws-profile, and click on Confirm.
The Cluster Profile section displays all the layers in the cluster profile.
Each layer has a pack manifest file with the deploy configurations. The pack manifest file is in a YAML format. Each pack contains a set of default values. You can change the manifest values if needed. Click on Next to proceed.
The Cluster Config section allows you to select the Region in which to deploy the host cluster and specify other options such as the SSH Key Pair to assign to the cluster. All clusters require you to select an SSH key. After you have selected the Region and your SSH Key Pair Name, click on Next.
The Nodes Config section allows you to configure the nodes that make up the control plane and worker nodes of the host cluster.
Before you proceed to next section, review the following parameters.
-
Number of nodes in the pool - This option sets the number of control plane or worker nodes in the control plane or worker pool. For this tutorial, set the count to one for the control plane pool and two for the worker pool.
-
Allow worker capability - This option allows the control plane node to also accept workloads. This is useful when spot instances are used as worker nodes. You can check this box if you want to.
-
Instance Type - Select the compute type for the node pool. Each instance type displays the amount of CPU, RAM, and hourly cost of the instance. Select
m4.2xlarge
. -
Availability zones - Used to specify the availability zones in which the node pool can place nodes. Select an availability zone.
-
Disk size - Set the disk size to 60 GiB.
-
Instance Option - This option allows you to choose on-demand instance or spot instance for worker nodes. Select On Demand.
Select Next to proceed with the cluster deployment.
In the Cluster Settings section, you can configure advanced options such as when to patch the OS, enable security scans, manage backups, add role-based access control (RBAC) bindings, and more.
For this tutorial, you can use the default settings. Click on Validate to continue.
The Review section allows you to review the cluster configuration prior to deploying the cluster. Review all the settings and click on Finish Configuration to deploy the cluster.
Navigate to the left Main Menu and select Clusters.
The cluster deployment process can take 15 to 30 min. The deployment time varies depending on the cloud provider, cluster profile, cluster size, and the node pool configurations provided. You can learn more about the deployment progress by reviewing the event log. Click on the Events tab to view the log.
Verify the Applicationβ
Navigate to the left Main Menu and select Clusters.
Select your cluster to view its Overview tab. When the application is deployed and ready for network traffic, indicated in the Services field, Palette exposes the service URL. Click on the URL for port :8080 to access the Hello Universe application.
It can take up to three minutes for DNS to properly resolve the public load balancer URL. We recommend waiting a few moments before clicking on the service URL to prevent the browser from caching an unresolved DNS request.
Welcome to Spacetastic's astronomy education platform. Feel free to explore the pages and learn more about space. The statistics page offers information on visitor counts on your deployed cluster.
You have deployed your first application to a cluster managed by Palette. Your first application is a three-tier application with a frontend, API server, and Postgres database.
Cleanupβ
Use the following steps to remove all the resources you created for the tutorial.
To remove the cluster, navigate to the left Main Menu and click on Clusters. Select the cluster you want to delete to access its details page.
Click on Settings to expand the menu, and select Delete Cluster.
You will be prompted to type in the cluster name to confirm the delete action. Type in the cluster name to proceed with the delete step. The deletion process takes several minutes to complete.
If a cluster remains in the delete phase for over 15 minutes, it becomes eligible for a force delete. To trigger a force delete, navigate to the clusterβs details page, click on Settings, then select Force Delete Cluster. Palette automatically removes clusters stuck in the cluster deletion phase for over 24 hours.
Once the cluster is deleted, navigate to the left Main Menu and click on Profiles. Find the cluster profile you created and click on the three-dot Menu to display the Delete button. Select Delete and confirm the selection to remove the cluster profile.
Wrap-Upβ
In this tutorial, you used the cluster profile you created in the previous Create a Cluster Profile tutorial to deploy a host cluster onto AWS. After the cluster deployed, you verified the Hello Universe application was successfully deployed.
We recommend that you continue to the Deploy Cluster Profile Updates tutorial to learn how to update your host cluster.
π§βπ Catch up with Spacetasticβ
Wren and Kai have deployed their first cluster profile by following the steps described in this tutorial. They were impressed by how streamlined the process was and how the cluster profiles provided them with a deployment blueprint.
"Deploying our first cluster with Palette was intuitive." says Wren. "It's ideal to find an external partner that can take care of our Kubernetes infrastructure and free us up to deliver more educational features. I definitely think that Palette has the capabilities to take care of all the Kubernetes heavy lifting for us."
"I agree with you and I'm glad to hear you're not as skeptical anymore." says Kai, nodding and laughing. "From a platform engineering perspective, I can say that cluster profiles will provide us with reliable deployments across environments and even clouds, so I'm much more confident about our testing and deployment strategy."
Meera, Head of Cybersecurity, walks in holding a file. "I've done our security due diligence and I'm happy to report that Spectro Cloud adheres to the highest security standards. I'm happy to approve Palette for use in our organization."
"It seems like we've found a great platform that can support us. Let's explore the rest of the Getting Started section to understand what else Palette has to offer." says Kai turning back to their monitor.