Install Portworx on Auto Scaling groups
This topic explains how to install Portworx with Kubernetes on Amazon Web Services (AWS) Auto Scaling groups (ASG). Follow the steps in this topic in order.
For more information on using Auto-Scaling groups, go here.
Prepare
Granting Portworx the needed AWS permissions
Portworx creates and attaches EBS volumes. As such, it needs the AWS permissions to do so. Below is a sample policy describing these permissions:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "<stmt-id>",
"Effect": "Allow",
"Action": [
"ec2:AttachVolume",
"ec2:ModifyVolume",
"ec2:DetachVolume",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:DeleteTags",
"ec2:DeleteVolume",
"ec2:DescribeTags",
"ec2:DescribeVolumeAttribute",
"ec2:DescribeVolumesModifications",
"ec2:DescribeVolumeStatus",
"ec2:DescribeVolumes",
"ec2:DescribeInstances",
"autoscaling:DescribeAutoScalingGroups"
],
"Resource": [
"*"
]
}
]
}
You can provide these permissions to Portworx in one of the following ways:
- Instance Privileges: Provide above permissions for all the instances in the autoscaling cluster by applying the corresponding IAM role. More info about IAM roles and policies can be found here
- Environment Variables: Create a User with the above policy and provide the security credentials (
AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
) to Portworx.
Install
If you are not using instance privileges, you must also specify AWS environment variables in the StorageCluster spec file. The environment variables to specify (for the KOPS IAM user) are:
AWS_ACCESS_KEY_ID=<id>,AWS_SECRET_ACCESS_KEY=<key>
If generating the StorageCluster spec via the GUI wizard, specify the AWS environment variables in the List of environment variables field. If generating the StorageCluster spec via the command line, specify the AWS environment variables using the e
parameter.
Install the Operator
Enter the following kubectl create
command to deploy the operator:
kubectl create -f https://install.portworx.com/?comp=pxoperator
Generate the specs
To install Portworx with Kubernetes, you must first generate Kubernetes manifests that you will deploy in your cluster:
Navigate to PX-Central and log in, or create an account.
Click Continue with Portworx Enterprise option:
Choose an appropriate license for your requirement and click Continue:
Apply the specs
Apply the generated specs to your cluster.
kubectl apply -f px-spec.yaml
Monitor the Portworx nodes
Enter the following
kubectl get
command and wait until all Portworx nodes show as ready in the output:kubectl -n kube-system get storagenodes -l name=portworx
Enter the following
kubectl describe
command with the name of one of the Portworx nodes to show the current installation status for individual nodes:kubectl -n kube-system describe storagenode <portworx-node-name>
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal PortworxMonitorImagePullInPrgress 7m48s portworx, k8s-node-2 Portworx image portworx/px-enterprise:2.5.0 pull and extraction in progress Warning NodeStateChange 5m26s portworx, k8s-node-2 Node is not in quorum. Waiting to connect to peer nodes on port 9002. Normal NodeStartSuccess 5m7s portworx, k8s-node-2 PX is ready on this node
NOTE: In your output, the image pulled will differ based on your chosen Portworx license type and version.
Post-Install
Once you have a running Portworx installation, below sections are useful.
-
Kubernetes operations Operations guide for running Portworx in Production with Kubernetes
-
Storage operations Learn how to perform various storage operations using Portworx on Kubernetes
-
Stateful applications on Kubernetes Learn how to install various applications with Portworx on Kubernetes