Skip to main content

Create and Manage CloudStack Clusters

tech preview

This is a Tech Preview feature and is subject to change. Do not use this feature in production workloads. This feature is supported in self-hosted Palette only.

You can deploy Kubernetes clusters on Apache CloudStack using Palette. Use the following steps to create and manage CloudStack clusters in Palette.

Limitations

warning

Creating and building clusters was done with KVM Hypervisor. These steps should be the same for other hypervisors but there may be variations. You may need to build your own images based on hypervisor type and image type that is supported by the hypervisor. Refer to the CAPI Image Builder for guidance.

Prerequisites

  • The ApacheCloudStack feature flag is enabled.

  • A CloudStack account registered in Palette. Refer to the Add CloudStack Accounts to Palette guide to learn how to add CloudStack accounts.

  • A cluster profile for the CloudStack environment. You can learn how to create a cluster profile by following the steps in the Create a Cluster Profile guide.

  • An imported CloudStack template used to map to the Ubuntu or BYOOS image, and Kubernetes version defined in the cluster profile.

    Importing a template

    In CloudStack console, navigate to Images.

    Select Templates and click on Register Template from URL.

    Provide values for the fields below.

    FieldDescription
    URLProvide the following Ubuntu template URL or the URL to your BYOOS. The URL must end with qcow2 when using KVM as the hypervisor.
    NameMust follow the format u-2404-0-k-13210-0.
    DescriptionOptional.
    ZoneSpecify the zone from the dropdown.
    DomainSpecify the domain from the dropdown.
    HypervisorSelect KVM from the dropdown.
    FormatSelect QCOW2 from the dropdown.
    OS typeSelect Ubuntu 24.04 (64-bit) from the dropdown.
    Template typeSelect USER from the dropdown.
    ExtractableLeave default.
    Dynamically scalableLeave default.
    PublicSelect the checkbox.
    Password enabledLeave default.
    HVMLeave default.

    Click OK.

    Note: Image name must follow the required format, must be set Public, and only one template with that name may exist per user. Duplicate names can cause CloudStack functional issues and deployment failures.

    For example, user A imports an image named u-2404-0-k-13210-0 and sets it to Public availability. User B creates another template with the same name but does not mark it Public. User A will have one template named u-2404-0-k-13210-0 and user B will have two templates named u-2404-0-k-13210-0. When user B deploys a cluster using u-2404-0-k-13210-0, the deployment will fail with a duplicate template error: Reconciler error: expected 1 Template with name u-2404-0-k-13210-0, but got 2.

Create a CloudStack Cluster

  1. Log in to Palette.

  2. Navigate to the left Main Menu and select Clusters.

  3. Click Add New Cluster on the Create a New Cluster page.

  4. Select Apache CloudStack and click the Start Apache CloudStack Configuration button.

  5. Fill out the input fields. Use the table below to learn more about each input fields. Click on the Next button when you are done.

    Field NameDescriptionRequired
    Cluster nameThe name of the cluster.Yes
    DescriptionA brief description of the cluster.No
    TagsTags to help you identify the cluster.No
    Cloud AccountThe Apache CloudStack account to use for the cluster. If no account is available, ensure you deployed a PCG into the Apache CloudStack environment.Yes
  6. Choose between deploying your cluster using individual cluster profiles or a single cluster template.

    info

    Cluster templates are a Tech Preview feature and can be used only if the ClusterTemplates feature flag is enabled.

    1. On the Cluster setup type window, choose Cluster Profiles > Add Cluster Profile.

    2. Select the appropriate full or infrastructure cluster profile and Confirm your selection.

    3. Review the layers of your cluster profile. Use the drop-down menus to select the appropriate cluster profile version, add necessary add-on profiles, and make changes to YAML configuration files as needed. When finished, select Next.

      tip

      For ease of reuse and to persist changes across clusters using the same cluster profile, we recommend creating a new version of your cluster profile rather than making inline changes.

  7. The Profile variables configuration window opens if your cluster profile is configured to use cluster profile variables. Fill in the appropriate values, and select Next.

  1. Fill out the Apache CloudStack configuration details for the cluster. Refer to the table below to learn more about each option. Click Next to proceed.

    Field NameDescriptionRequired
    ZoneThe Apache CloudStack physical environment the cluster will be created in.Yes
    Project NameThe Project name within the Domain that the cluster will be created in.Yes
    SSH KeyThe SSH key to use for the cluster. Check out the Create and Upload an SSH Key guide to learn how to upload an SSH key to Palette.No
    Static placementThe network type to use for the cluster. Select Static IP if you want to use static IP addresses. Select DHCP if you want to use Dynamic Host Configuration Protocol (DHCP).Yes
    Sync cluster with CloudStack Kubernetes Service (CKS)To use this, the CloudStack Kubernetes Service must be enabled on the CloudStack management server in a Global Setting.No
    Update worker pools in parallelPalette can more efficiently manage workloads by updating multiple workpools simultaneously.No
  1. Configure the control plane and worker node pool configurations. Click Next to proceed.

    Control Plane Pool Configuration

    tip

    To apply the same configuration to the worker node pool as the control plane node pool, click the Copy from the Control Plane Pool button. This will copy the control plane pool configuration to the worker node pool.

    Field NameDescription
    Node Pool NameThe name of the control plane node pool.
    Number of nodes in the poolThe number of control plane nodes. Allowed values are 1, 3, and 5.
    Allow Worker CapabilityEnable this option to workloads to be deployed on control plane nodes.
    Additional LabelsAdditional labels to apply to the control plane nodes.
    TaintsTaints to apply to the control plane nodes. If enabled, an input field is displayed to specify the taint key, value and effect. Check out the Node Labels and Taints page to learn more.

    Cloud Configuration

    Field NameDescription
    Compute offeringSelect the compute offering to use for all nodes in the node pool.
    Networks (optional)Select the guest network to use.

    Worker Plane Pool Configuration

    Field NameDescription
    Node Pool NameThe name of the control plane node pool.
    Enable AutoscalerScale the pool horizontally based on its per-node workload counts. The Minimum size specifies the lower bound of nodes in the pool, and the Maximum size specifies the upper bound. Setting both parameters to the same value results in a static node count. Refer to the Cluster API autoscaler documentation for more information on autoscaling.
    Node Repave IntervalThe interval at which the worker nodes are repaved in seconds. Refer to the Repave Behavior and Configuration for additional information about repave behaviors.
    Number of Nodes in the PoolNumber of nodes to be provisioned for the node pool. This field is hidden if Enable Autoscaler is toggled on.
    Rolling UpdateChoose between Expand First and Contract First to determine the order in which nodes are added or removed from the worker node pool. Expand first adds new nodes before removing old nodes. Contract first removes old nodes before adding new nodes.
    Additional LabelsAdditional labels to apply to the control plane nodes.
    TaintsTaints to apply to the control plane nodes. If enabled, an input field is displayed to specify the taint key, value and effect. Check out the Node Labels and Taints page to learn more.

    Cloud Configuration

    Field NameDescription
    Compute offeringSelect the compute offering to use for all nodes in the node pool.
    Networks (optional)Select the guest network to use.

    You can click Copy from Control Plane Pool if you want to re-use the Control Plane Pool's Compute offering and Networks.

    Click on the Next button when you are done.

  1. On the Optional cluster settings page, select from among the items on the left menu to configure additional options. Refer to the applicable guide for additional information.

    Left Menu ItemAdditional Information
    Cluster Timezone(Optional) Set the timezone to be used for the cluster
    Manage machinesOS Patching
    Schedule scansCompliance Scan
    Schedule backupsBackup and Restore
    RBAC- Create Role Bindings
    - Palette eXtended Kubernetes (PXK)
  1. Click on the Validate button and review the cluster configuration and settings summary.

  2. Click Finish Configuration to deploy the cluster.

The cluster deployment process is initiated. You can monitor the cluster deployment progress by navigating to the left Main Menu and selecting Clusters. Click on the cluster you just created to view the cluster details page. The Cluster Status field displays the current status of the cluster.

Validate

Use the following steps to validate that the cluster is available and healthy.

  1. Log in to Palette.

  2. Navigate to the left Main Menu and click Clusters.

  3. The Clusters page lists all available clusters that Palette manages. Select the cluster you deployed to review its details page.

  4. Ensure the Cluster Status field contains the value Running.

tip

You can download the cluster's kubeconfig file to access the cluster using the Kubernetes command-line tool, kubectl. Check out the Access a Cluster guide to learn how to download the kubeconfig file.

Next Steps

Now that you have a Kubernetes cluster deployed, you can deploy applications to CloudStack. We recommend you review the Day-2 responsibilities and become familiar with the cluster management tasks. Check out the Manage Clusters documentation to learn more about Day-2 responsibilities.