Skip to main content
StreamNative Private Cloud uses Kubernetes Storage Classes to provision persistent storage volumes for ZooKeeper and BookKeeper.

Use default Kubernetes StorageClass

By default, StreamNative Private Cloud uses the default Kubernetes StorageClass to provision persistent volumes on Custom Resources (CRs). Use the command below to get the name of the current default storage class.
To change the default Storage Class that is used to provision volumes, see Change the default StorageClass .

Use specific Kubernetes StorageClass

You can provide a storage class to use for ZooKeeper and BookKeeper.To use a specific Kubernetes StorageClass, follow these steps.
  1. Create or use a pre-defined StorageClass you want to use in your Kubernetes cluster. You need to have sufficient permissions to create and modify StorageClasses in your Kubernetes cluster if you intend to create a new StorageClass to use rather than using a pre-existing one.
  2. In your ZooKeeper and BookKeeper CRs, specify the name of the StorageClass to use:
  • ZooKeeperCluster
  • BookKeeperCluster

PVC metadata

You can add custom annotations and labels to BookKeeper PVC resources. Currently, only BookKeeper PVCs support this feature. To configure PVC metadata for BookKeeper, add the metadata field under journal and/or ledger in the BookKeeperCluster CR:
The configured annotations and labels will be added to the PVC resources created by the BookKeeperCluster CR.

Tiered Storage

Tiered Storage makes storing huge volumes of data in Pulsar manageable by reducing operational burden and cost. The fundamental idea is to separate data storage from data processing, allowing each to scale independently. With Tiered Storage, you can send data to cost-effective object storage, and scale brokers only when you need more compute resources. StreamNative Private Cloud supports the following object storage solutions for Tiered Storage:
  • AWS S3
  • Google Cloud Storage
  • Azure Blob Storage

Enable Tiered Storage

To enable Tiered Storage, you need to configure the type of blob storage to use and its related properties, such as the bucket / container, the region, and the credentials in the PulsarBroker CR. When a Pulsar cluster is deleted, StreamNative Private Cloud does not perform a garbage collection of the Tiered Storage bucket contents. You can either wait for the set deletion interval or manually delete the objects in the Tiered Storage bucket.

Configure Tiered Storage for AWS S3

Before enabling Tiered Storage on Amazon Web Services (AWS) with Amazon Simple Storage Service (S3 buckets), you need to configure the following:
  • Create an AWS S3 bucket.
  • Create an IAM role in your AWS account and attach the following IAM policy to grant the necessary permissions for accessing the S3 bucket:
  • Create a Kubernetes ServiceAccount with the IAM role annotation:
To enable Tiered Storage for AWS S3, configure the PulsarBroker CR as follows:
This table outlines fields available for configuring Tiered Storage for AWS S3.

Configure Tiered Storage for Google Cloud Storage

Before enabling Tiered Storage with Google Cloud Storage (GCS), you need to configure the following:
  • Create a GCS service account.
  • Create a GCS bucket.
  • Create a Kubernetes secret to save your Google credentials with the following command. When you configure Tiered Storage, you can specify the Kubernetes secret. Pulsar brokers use the credentials stored in the Kubernetes secret to access the storage container. When your storage credentials change, you need to restart the Pulsar cluster.
To enable Tiered Storage for Google Cloud Storage, configure the PulsarBroker CR as follows:
This table outlines fields available for configuring Tiered Storage for Google Cloud Storage.

Configure Tiered Storage for Azure Blob Storage

Before enabling Tiered Storage with Azure Blob Storage, you need to configure the following:
  • Create an Azure storage account and a storage account access key.
  • Create an Azure Blob container.
  • Create a Kubernetes secret to save your Azure credentials with the command below. When you configure Tiered Storage, you can specify the Kubernetes secret. Pulsar brokers use the credentials stored in the Kubernetes secret to access the storage container. When your storage credentials change, you need to restart the Pulsar cluster.
To enable Tiered Storage for Azure Blob Storage, configure the PulsarBroker CR as follows:
This table outlines fields available for configuring Tiered Storage for Azure Blob Storage.