Skip to main content
Astra Control Service
All cloud providers
  • Amazon Web Services
  • Google Cloud
  • Microsoft Azure
  • All cloud providers

Add a public self-managed cluster to Astra Control Service

Contributors netapp-mwallis netapp-dbagwell

After you set up your environment, you're ready to create a Kubernetes cluster and then add it to Astra Control Service.

A self-managed cluster is a cluster that you directly provision and manage. Astra Control Service supports self-managed clusters that run in a public cloud environment. You can add a self-managed cluster to Astra Control Service by uploading a kubeconfig.yaml file. You'll need to ensure the cluster meets the requirements outlined here.

Supported Kubernetes distributions

You can use Astra Control Service to manage the following types of public, self-managed clusters:

Kubernetes distribution Supported versions

Kubernetes (Upstream)

1.27 to 1.29

Rancher Kubernetes Engine (RKE)

RKE 1: Versions 1.24.17, 1.25.13, 1.26.8 with Rancher Manager 2.7.9
RKE 2: Versions 1.23.16 and 1.24.13 with Rancher Manager 2.6.13
RKE 2: Versions 1.24.17, 1.25.14, 1.26.9 with Rancher Manager 2.7.9

Red Hat OpenShift Container Platform

4.12 through 4.14

These instructions assume that you have already created a self-managed cluster.

Add the cluster to Astra Control Service

After you log in to Astra Control Service, your first step is to start managing your clusters. Before you add a cluster to Astra Control Service, you'll need to perform specific tasks and make sure the cluster meets certain requirements.

Before you begin

A self-managed cluster is a cluster that you directly provision and manage. Astra Control Service supports self-managed clusters that run in a public cloud environment. Your self-managed clusters can use Astra Control Provisioner to interface with NetApp storage services, or they can use Container Storage Interface (CSI) drivers to interface with Amazon Elastic Block Store (EBS), Azure Managed Disks, and Google Persistent Disk.

Astra Control Service supports self-managed clusters that use the following Kubernetes distributions:

  • Red Hat OpenShift Container Platform

  • Rancher Kubernetes Engine

  • Upstream Kubernetes

Your self-managed cluster needs to meet the following requirements:

  • The cluster must be accessible via the internet.

  • If you are using or plan to use storage enabled with CSI drivers, the appropriate CSI drivers must be installed on the cluster. For more information on using CSI drivers to integrate storage, refer to the documentation for your storage service.

  • You have access to the cluster kubeconfig file that includes only one context element. Follow these instructions to generate a kubeconfig file.

  • If you are adding the cluster using a kubeconfig file that references a private Certificate Authority (CA), add the following line to the cluster section of the kubeconfig file. This enables Astra Control to add the cluster:

    insecure-skip-tls-verify: true
  • Rancher only: When managing application clusters in a Rancher environment, modify the application cluster's default context in the kubeconfig file provided by Rancher to use a control plane context instead of the Rancher API server context. This reduces load on the Rancher API server and improves performance.

  • Astra Control Provisioner requirements: You should have a properly configured Astra Control Provisioner, including its Astra Trident components, to manage clusters.

    • Review Astra Trident environment requirements: Prior to installing or upgrading Astra Control Provisioner, review the supported frontends, backends, and host configurations.

    • Enable Astra Control Provisioner functionality: It's highly recommended that you install Astra Trident 23.10 or later and enable Astra Control Provisioner advanced storage functionality. In coming releases, Astra Control will not support Astra Trident if the Astra Control Provisioner is not also enabled.

    • Configure a storage backend: At least one storage backend must be configured in Astra Trident on the cluster.

    • Configure a storage class: At least one storage class must be configured in Astra Trident on the cluster. If a default storage class is configured, ensure that it is the only storage class that has the default annotation.

    • Configure a volume snapshot controller and install a volume snapshot class: Install a volume snapshot controller so that snapshots can be created in Astra Control. Create at least one VolumeSnapshotClass using Astra Trident.

Steps
  1. On the Dashboard, select Manage Kubernetes cluster.

    Follow the prompts to add the cluster.

  2. Provider: Select the Other tab to add details about your self-managed cluster.

    1. Other: Provide details about your self-managed cluster by uploading a kubeconfig.yaml file or by pasting the contents of the kubeconfig.yaml file from your clipboard.

      Note If you create your own kubeconfig file, you should define only one context element in it. Refer to Kubernetes documentation for information about creating kubeconfig files.
  3. Credential name: Provide a name for the self-managed cluster credential you are uploading to Astra Control. By default, the credential name is auto-populated as the name of the cluster.

  4. Private route identifier: This field is for use with private clusters only.

  5. Select Next.

  6. (Optional) Storage: Optionally, select the storage class that you'd like Kubernetes applications deployed to this cluster to use by default.

    1. To select a new default storage class for the cluster, enable the Assign a new default storage class check box.

    2. Select a new default storage class from the list.

      Note

      Each cloud provider storage service displays the following price, performance, and resilience information:

      • Cloud Volumes Service for Google Cloud: Price, performance, and resilience information

      • Google Persistent Disk: No price, performance, or resilience information available

      • Azure NetApp Files: Performance and resilience information

      • Azure Managed disks: No price, performance, or resilience information available

      • Amazon Elastic Block Store: No price, performance, or resilience information available

      • Amazon FSx for NetApp ONTAP: No price, performance, or resilience information available

      • NetApp Cloud Volumes ONTAP: No price, performance, or resilience information available

      Each storage class can utilize one of the following services:

  7. Select Next.

  8. Review & Approve: Review the configuration details.

  9. Select Add to add the cluster to Astra Control Service.

Change the default storage class

You can change the default storage class for a cluster.

Change the default storage class using Astra Control

You can change the default storage class for a cluster from within Astra Control. If your cluster uses a previously installed storage backend service, you might not be able to use this method to change the default storage class (the Set as default action is not selectable). In this case, you can Change the default storage class using the command line.

Steps
  1. In the Astra Control Service UI, select Clusters.

  2. On the Clusters page, select the cluster that you want to change.

  3. Select the Storage tab.

  4. Select the Storage classes category.

  5. Select the Actions menu for the storage class that you want to set as default.

  6. Select Set as default.

Change the default storage class using the command line

You can change the default storage class for a cluster using Kubernetes commands. This method works regardless of your cluster's configuration.

Steps
  1. Log in to your Kubernetes cluster.

  2. List the storage classes in your cluster:

    kubectl get storageclass
  3. Remove the default designation from the default storage class. Replace <SC_NAME> with the name of the storage class:

    kubectl patch storageclass <SC_NAME> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
  4. Mark a different storage class as default. Replace <SC_NAME> with the name of the storage class:

    kubectl patch storageclass <SC_NAME> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
  5. Confirm the new default storage class:

    kubectl get storageclass