Default Node Groups
Porter provisions three node groups by default:| Node Group | Purpose | Autoscaling |
|---|---|---|
| System | Kubernetes system workloads | Fixed |
| Monitoring | Observability stack (metrics, logs) | Fixed |
| Application | Your application workloads | Enabled (1 node minimum) |
Changing Instance Types
You can modify the instance type for any node group from the Infrastructure settings.Navigate to Infrastructure
From your Porter dashboard, click on the Infrastructure tab in the left sidebar.
Configure the node group
Expand the node group dropdown (e.g., Default node group) to see the following settings:
| Setting | Description |
|---|---|
| Machine type | The underlying instance for nodes. Options vary by cloud provider. |
| Maximum nodes | Upper limit for autoscaling under high load |
| Minimum nodes | Lower limit for autoscaling under low load |
| Disk size | Storage capacity for each node (default: 50GB) |
Instance Type Pricing
AWS Instance Types
Azure Instance Types
GCP Instance Types
Why is my instance type not available?
Instance types may not be available if:- The instance is not available in your cluster’s region (cloud providers release new instances on a phased, region-by-region basis)
- The instance type hasn’t been validated by Porter for compatibility
Creating a Custom Node Group
Create custom node groups for specialized workloads like GPU processing, high-memory applications, or isolated environments.Navigate to Infrastructure
From your Porter dashboard, click on the Infrastructure tab in the left sidebar.
Configure the node group
Choose between two configuration approaches:
- Cost Optimization
- Fixed Instance Type
Cost optimization automatically selects the most cost-effective instance types for your workloads. Any cluster provisioned in AWS will default to cost optimized node groups.Set your maximum CPU cores limit to prevent unexpected scaling. This caps infrastructure costs while allowing flexibility in instance selection.
Limitations
The following configurations should use fixed instance types instead:- GPU instances (e.g., instances with NVIDIA GPUs)
- Spot instances
- Instances in public subnets
- Instances with specialized hardware requirements
Health Checks Required: For production applications on cost-optimized node groups, configure proper health checks. This ensures applications can be safely rescheduled as nodes are reshuffled.
GKE Workload Identity (GCP)
For node groups on GKE clusters, you can opt individual node pools into Workload Identity. When enabled, the GKE metadata server runs on the node pool so pods scheduled there can impersonate a GCP IAM service account at runtime — without mounting service account keys. Enable this on any node group whose workloads need to call GCP APIs (for example, BigQuery, Cloud Storage, or Pub/Sub) using a GCP service account connection.Edit the node group
From your Porter dashboard, navigate to Infrastructure → your GKE cluster, and expand the node group you want to enable Workload Identity on.
Toggle Enable Workload Identity
Switch on Enable Workload Identity. The toggle appears only for GCP clusters.
Leave Workload Identity disabled on node groups whose workloads don’t need GCP API access. The metadata server adds a small amount of overhead per node and exposes additional metadata endpoints to pods on the pool.
Assigning Workloads to Node Groups
Once your custom node group is created, assign applications to run on it:- Navigate to your application in the Porter dashboard
- Go to the Services tab
- Click the service you want to assign
- Under General, find the Node group selector
- Select your custom node group from the dropdown
- Save and redeploy your application
Deleting a Node Group
To remove a custom node group:- Migrate any workloads running on the node group to another node group
- Navigate to Infrastructure → Cluster
- Find the node group you want to delete
- Click the delete icon and confirm

