Update and Scale Resource Pools
Change settings for existing resource pools with the UI, API, or hydrolixcluster.yaml
Overview
Update pools to adjust replicas, CPU, memory, or storage after creation.
Use the UI or API for quick edits, or hydrolixcluster.yaml
for versioned configuration.
Pools can’t be renamed or have their service type changed. To change those, create a new pool.
Update a pool in the UI
- Go to Scale in the left navigation.
- Select the menu for the pool you want to update.
- Edit the fields you need.
- Select Publish update.
Update a pool with the API
Use the Update Pool endpoint.
{
"name": "intake-pool",
"settings": {
"k8s_deployment": {
"replicas": "3",
"cpu": "2",
"memory": "4Gi",
"storage": "8Gi"
}
}
}
Update an automatic pool
When you configure a new table source, Hydrolix creates a pool automatically.
You can’t update these pools through the source endpoints. Instead, use the Update Pool endpoint.
Update a pool with hydrolixcluster.yaml
hydrolixcluster.yaml
The update method depends on how the pool was created:
- Manually created pools: update settings in the
pools
section. - Automatically created pools or defaults: update settings in the
scale
section.
This example shows two intake pools:
spec:
pools:
intake-pool-1:
service: intake-head
replicas: 2
intake-pool-2:
service: intake-head
cpu: 1
scale:
intake-head:
replicas: 3
cpu: 3
Result
intake-pool-1
:replicas: 2
, `cpu: 3: pool sets replicas, global sets CPUintake-pool-2
:replicas: 3
,cpu: 1
: global sets replicas, pool sets CPU
Scale a pool
Scale a pool to adjust replicas, CPU, memory, or storage without affecting other pools.
Use the UI or API for quick changes, or hydrolixcluster.yaml
for versioned configuration.
Most pool services are stateless. If you scale stateful services such as
postgres
, review Stateful and Stateless Scaling and PVC impacts before making changes.
Scale settings
These keys control how a pool uses resources:
Setting | Description | Unit |
---|---|---|
replicas | Number or range of pods in the pool | Integer or range (for example 3 or 1-5 ) |
cpu | CPU requested per pod | Number (can be fractional, such as 0.5 or 725m) |
memory | RAM requested per pod | Mi or Gi |
storage | Ephemeral storage per container | Mi or Gi |
target_cpu_utilization_percentage * | Target CPU for the Horizontal Pod Autoscaler (HPA) | 0–100, whole number |
* You can’t set target_cpu_utilization_percentage
with the API. Use hydrolixcluster.yaml
or Kubernetes directly.
Scale a pool in the UI
- Open Scale in the left navigation.
- Find the pool and select the menu.
- Update replicas and resources.
- Select Publish update.
Scale a pool with the API
Use the Update pool endpoint.
{
"name": "intake-pool",
"settings": {
"k8s_deployment": {
"replicas": "3",
"cpu": "2",
"memory": "4Gi",
"storage": "8Gi"
}
}
}
Scale a pool with hydrolixcluster.yaml
hydrolixcluster.yaml
Update a manually created pool
spec:
pools:
intake-pool:
service: intake-head
replicas: 3
cpu: 2
memory: 4Gi
storage: 8Gi
Set an HPA target
This example sets the CPU target to 30% for the Horizontal Pod Autoscaler (HPA).
spec:
pools:
merge-peer-ii:
service: merge-peer
replicas: 2-4
target_cpu_utilization_percentage: 30
Precedence of scale
and pools
settings
scale
and pools
settingsValues under spec.scale.<service>
apply to all pools of that service unless a pool defines its own value.
Example:
spec:
pools:
intake-pool-1:
service: intake-head
replicas: 2
intake-pool-2:
service: intake-head
cpu: 1
scale:
intake-head:
replicas: 3
cpu: 3
Result
intake-pool-1
:replicas: 2
,cpu: 3
-> Pool sets replicas, global sets CPUintake-pool-2
:replicas: 3
,cpu: 1
-> Global sets replicas, pool sets CPU
Related
Updated about 8 hours ago