Pods and scaling
Set the capacity a Plexivo Kubernetes workload may use, scale pods by hand or with an autoscaler, and change the size of each pod.
A workload has a requested capacity: a CPU and memory size per pod, and the minimum and maximum number of pods. Together they set the capacity your namespace holds. Inside that, you scale your Deployments and StatefulSets as you would anywhere else.
Minimum and maximum pods#
- Minimum is capacity held for you at all times, so your pods always have room to start.
- Maximum is the ceiling. Your namespace holds enough CPU and memory for this many pods at the workload’s size, and your autoscalers scale up to it. A workload can have up to 50.
You pay for the pods that actually run, not for the maximum. See Billing.
Change the requested capacity#
- Open the workload’s Settings tab. In Requested capacity, set CPU per pod (millicores), Memory per pod (MiB), Minimum replicas and Maximum replicas.
- Apply. Review and choose Apply change. Your manifests and storage are kept: the change resizes the capacity, not the requests written in your manifests. To give pods more CPU or memory, raise those requests too.
Growing a workload checks your plan and your organisation’s total vCPU and memory first. Shrinking always goes through.
curl -s -X PUT $API/kubernetes/$WORKLOAD \
-H "Authorization: Bearer $PLEXIVO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"req_cpu_m": 1000, "req_mem_mb": 2048, "min_replicas": 2, "max_replicas": 6}'The console does not change storage. Send req_storage_mb with the same request to change the storage the workload’s volume claims may share.
Autoscaling#
Add a HorizontalPodAutoscaler for each Deployment or StatefulSet you want to scale on load. Keep its maxReplicas within the workload’s maximum. The Deploy a container form writes one for you when you tick Scale automatically, at 70% of requested CPU.
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: web
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: web
minReplicas: 2
maxReplicas: 6
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70Scale by hand#
kubectl scale deployment web --replicas=4
kubectl scale deployment worker --replicas=0 # stop it; no pods, no charge for themA pod that would go past the workload’s capacity is not started. kubectl describe and the Logs & events tab show why.
Next steps#
Updated 27 October 2026