In a disaggregated deployment of Portworx, the storage nodes are separate from the compute (or storageless) nodes. Based on the environment in which you are deploying Portworx, the installation instructions for disaggregated mode change.
Cloud based autoscaling environments
In a cloud autoscaling environment, Portworx recommends using two separate node groups—one for storage nodes and the other for compute (storageless) nodes. This architecture enables you to scale up and scale down your compute cluster based on your application needs while keeping the storage node group constant.
Prepare your nodes
Before you deploy Portworx, you need to designate your nodes as storage and storageless (compute). Portworx looks for the following labels on the Kubernetes nodes to identify them as a part the storage node group or the storageless node group:
When using a managed Kubernetes cluster in the cloud, such as AKS or EKS, add these label pairs to your node groups when you create the node groups. This way, the cloud will ensure that these labels are always present on the Kubernetes nodes.
Follow the installation instructions for your cloud provider, making sure to select Operator based deployment.
Once you have generated the StorageCluster spec, you will need to add the following environment variable in the
- name: ENABLE_ASG_STORAGE_PARTITIONING
You can also add the environment variables from the spec generator using the Environment Variables dropdown menu.
A sample StorageCluster spec for AWS looks like this:
- name: "ENABLE_ASG_STORAGE_PARTITIONING"
Once this environment variable is set, Portworx will run the nodes which are labeled as
portworx.io/node-type=storage as storage nodes, and it will run the nodes labeled as
portworx.io/node-type=storageless as storageless nodes.
In an on-premises environment, you can use a disaggregated deployment model when you have a heterogeneous cluster configuration, where some of your nodes have storage disks while the rest of the nodes are compute only with no disks configured.
Preparing your nodes
Before you deploy Portworx, you need to designate your nodes as storage and storageless (compute). Portworx looks for the following labels on the Kubernetes nodes to identify them as a part the storage node group or the compute (storageless) node group:
Follow the installation instructions for your on-premises environment, making sure to select Operator based deployment.
Once you have generated the StorageCluster spec, you will need to create two separate node sections in it to define the device settings for the storage and storageless (compute) nodes.
Here is a sample StorageCluster spec that uses node-specific overrides:
In this example, Portworx on the nodes labeled as
portworx.io/node-type=storage expects two disks,
/dev/nvme2, and it will run them as storage nodes. On the other hand, Portworx on the nodes labeled as
portworx.io/node-type=storageless will ignore any disks that might be found on the node and run as storageless nodes.