Deploy a Cluster
Palette helps you create and manage Kubernetes clusters in various cloud environments with minimal overhead.
Palette offers profile-based management for Kubernetes, enabling consistency, repeatability, and operational efficiency across multiple clusters. A cluster profile allows you to customize the cluster infrastructure stack, allowing you to choose the desired Operating System (OS), Kubernetes, Container Network Interfaces (CNI), Container Storage Interfaces (CSI). You can further customize the stack with add-on application layers. For more information about cluster profile types, refer to Cluster Profiles.
After defining a cluster profile, you can provide the cloud environment details, the control plane, and worker node configurations to deploy a host cluster.
This tutorial will teach you how to deploy a host cluster with Palette using Amazon Web Services (AWS), Microsoft Azure, or Google Cloud Platform (GCP) cloud providers. You can deploy a cluster using either Palette or Terraform. You will learn about Cluster Mode and Cluster Profiles and how these components enable you to deploy customized applications to Kubernetes with minimal effort.
Architecture
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, often called control plane nodes, and worker nodes where you will deploy applications. The result is a host cluster that Palette manages.
Deploy the Cluster and the Application
Select the workflow you want to learn more about.
UI Workflow
You can create and manage clusters directly from the Palette dashboard. Use the following steps to learn how to deploy a host cluster to multiple cloud providers.
Prerequisites
To complete this tutorial, you will need the following.
-
A public cloud account from one of these providers:
-
Register the cloud account in Palette. The following resources provide additional guidance.
- Register and Manage AWS Accounts
- Register and Manage Azure Cloud Accounts
- Register and Manage GCP Accounts
-
An SSH Key Pair. Use the Create and Upload an SSH Key guide to learn how to create an SSH key and upload it to Palette.
- AWS users must create an AWS Key pair before starting the tutorial. If you need additional guidance, check out the Create EC2 SSH Key Pair tutorial.
Deploy the Environment
The following steps will guide you through deploying the cluster infrastructure. You will start by creating a cluster profile that you apply to the host cluster.
- AWS
- Azure
- Google Cloud
Create Cluster Profile (AWS)
Cluster profiles are templates you create with the following core layers and any add-on layers such as security, monitoring, logging, and more.
- Operating System (OS)
- Kubernetes distribution and version
- Network Container Interface (CNI)
- Storage Container Interface (CSI)
You customize profiles by choosing the type of component and version. In this way, profiles offer a reproducible way to create clusters.
Log in to Palette and navigate to the left Main Menu. Select Profiles to view the cluster profile page. You can view the list of available cluster profiles. To create a cluster profile, click the Add Cluster Profile button.
Follow the wizard to create a new profile.
In the Basic Information section, assign the name aws-profile, a brief profile description, select the type as Full, and assign the tag env:aws. You can leave the version empty if you want to. Just be aware that the version defaults to 1.0.0. Click on Next.
Cloud Type allows you to choose the infrastructure provider with which this cluster profile is associated. Select AWS and click on Next.
Profile Layers, this is the main configuration step where you specify the packs that compose the profile. There are four required infrastructure packs and several optional add-on packs you can choose from. Every pack requires you to select the Pack Type, Registry, and Pack Name.
For this tutorial, use the following packs:
Pack Name | Version | Layer |
---|---|---|
ubuntu-aws LTS | 22.4.x | Operating System |
Kubernetes | 1.27.x | Kubernetes |
cni-calico | 3.26.x | Network |
csi-aws-ebs | 1.22.x | Storage |
As you fill out the information for each layer, click on Next to proceed to the next layer.
Click on Confirm after you have completed filling out all the core layers.
The review section gives an overview of the cluster profile configuration you selected. Click on Finish Configuration to create the cluster profile.
You can modify cluster profiles after you create them by adding, removing, or editing the layers.
Create a New Cluster
Navigate to the left Main Menu and select Cluster. From the clusters page, click on the Add New Cluster button.
Palette will prompt you to either deploy a new cluster or import an existing one. Click on Deploy New Cluster to access the cluster deployment wizard. Select AWS and click the Start AWS Configuration button. Use the following steps to create a host cluster in AWS.
Basic information
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.
Cluster Profile
A list is displayed of available profiles you can choose to deploy to AWS. Select the cluster profile you created earlier and click on Next.
Parameters
The Parameters 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.
Cluster Configuration
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.
Nodes Configuration
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.
Settings
In the 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.
Review
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.
Click on your cluster to review its details such as deployment status, event logs, cluster profile, monitoring data, and other information about the cluster.
Create Cluster Profile (Azure)
Cluster profiles are templates you create with the following core layers and any add-on layers such as security, monitoring, logging, and more.
- Operating System (OS)
- Kubernetes distribution and version
- Network Container Interface (CNI)
- Storage Container Interface (CSI)
A cluster profile contains these core and additional add-on layers, such as security, monitoring, logging, etc.
You customize profiles by choosing the type of component and version. In this way, profiles offer a reproducible way to create clusters.
Log in to Palette and navigate to the left Main Menu. Select Profiles to view the cluster profile page. You can view the list of available cluster profiles. To create a cluster profile, click the Add Cluster Profile button.
Follow the wizard to create a new profile.
In the Basic Information section, assign the name azure-profile, a brief profile description, select the type as Full, and assign the tag env:azure. You can leave the version empty if you want to. Just be aware that the version defaults to 1.0.0. Click on Next.
Cloud Type allows you to choose the infrastructure provider with which this cluster profile is associated. Select Azure and click on Next.
Profile Layers is the main configuration step where you specify the packs that compose the profile. You can choose from four required infrastructure packs and several optional add-on packs. Every pack requires you to select the Pack Type, Registry, and Pack Name.
For this tutorial, use the following packs:
Pack Name | Version | Layer |
---|---|---|
ubuntu-azure LTS | 22.4.x | Operating System |
Kubernetes | 1.27.x | Kubernetes |
cni-calico-azure | 3.26.x | Network |
Azure Disk | 1.28.x | Storage |
As you fill out the information for each layer, click on Next to proceed to the next layer.
Click on Confirm after you have completed filling out all the core layers.
The review section gives an overview of the cluster profile configuration you selected. Click on Finish Configuration to finish creating the cluster profile.
You can modify cluster profiles after you create them by adding, removing, or editing the layers.
Create a New Cluster
Navigate to the left Main Menu and select Clusters. Click the Add New Cluster button.
Click on Deploy New Cluster to access the cluster deployment wizard. Select Azure and click the Start Azure Configuration button. Use the following steps to create a host cluster in Azure.
Basic information
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.