This guide shows you how you can easily deploy a hyper converged (compute and storage) cluster in any cloud (GCE, AWS, Azure) with Kubernetes and Portworx.

Step 1: Select your cloud instance type

You can use any cloud instances (like EC2) with persistent storage. Portworx will automatically detect the performance of the volumes and match the CoS levels to the containers appropriately. Portworx will also aggregate the capacity across all the cloud instances to provide a global pool of virtual, highly available storage to Kubernetes.

Compatible instance and storage options for popular cloud providers are:

ProviderInstance OptionsStorage Options
AWSAny EC2 instance typeGP2, IO1 or ST1
GCEAny GCE instance typePersistent disks and SSDs
AzureAny Linux VMDisk storage type

Supported bare metal cloud providers are

When chosing an instance, verify that you meet the minimum requirements available on the Portworx enterpris getting started guide.

Portworx recommends a minimum cluster size of 3 nodes.

Step 2: Configure the host software

A recent enough Linux distribution is typically all that is needed. We recommend one of the following:

  • Ubuntu Xenial+
  • CentOS 7.0+
  • RHEL 7+
  • CoreOS 1192.1.0+

Next, install Docker. Portworx recommends Docker 1.12 with Device Mapper.

Note: Portworx requires Docker to allow shared mounts. This is standard as of Docker 1.12. If you are running Docker without shared mounts, please follow the steps listed on the Portworx shared mount propagation documentation.

Step 3: Deploy PX with Kubernetes

At this point, you have everything you need to deploy Portworx with Kubernetes to create a hyperconverged compute with storage cluster.

Visit Run Portworx with Kubernetes to get portworx and kubernetes running on all the nodes in your cluster.

An example BOM

In an example deployment, we used GCE to deploy a 30 node Portworx with Kubernetes cluster. The cost breakdown (minus the Portworx Enterprise licence fees) to run this 30 node cluster per hour was as follows:

Bill of Materials

MaterialTypeDetailsCost per hour
Compute Instancen1-standard-44 CPU cores, 4 GB RAM with 375 GB local SSD$0.20
Linux DistroUbuntu Xenial4.4.0-38-generic$0.0
Container EngineDocker1.12 with device mapper$0.0

Hourly compute costs

Based on the above BOM, the total hourly cost for the 30 node converged container cluster was $6.

Monthly storage costs

GCEs disk pricing information is available at

Each instance in our reference deployment had a local 375 GB SSD volume. Google charges $0.17 per GB. Therefore each instance cost us $63.75 per month. The total cost of storage per month for the 30 node cluster was $1912.50.

Total monthly breakdown

In total, we had a 30 node cluster with the following properties:

CPU120 cores
Memory120 GB
Storage11.250 TB

The total monthly cost to run this in GCE was: