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:
|Provider||Instance Options||Storage Options|
|AWS||Any EC2 instance type||GP2, IO1 or ST1|
|GCE||Any GCE instance type||Persistent disks and SSDs|
|Azure||Any Linux VM||Disk storage type|
Supported bare metal cloud providers are
- Scaleway. Use this image: https://www.scaleway.com/imagehub/docker/
- Digital Ocean
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
|Material||Type||Details||Cost per hour|
|Compute Instance||n1-standard-4||4 CPU cores, 4 GB RAM with 375 GB local SSD||$0.20|
|Linux Distro||Ubuntu Xenial||4.4.0-38-generic||$0.0|
|Container Engine||Docker||1.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 https://cloud.google.com/compute/pricing.
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:
The total monthly cost to run this in GCE was: