Skip to content

Concepts

Core concepts for workload optimization, cost impact, and automation in EcoScale.

A workload is any Kubernetes object that manages or creates pods with one or more containers. Workloads include standard built-in kinds such as Deployment, StatefulSet, DaemonSet, Job, and CronJob. Custom CRD kinds that manage pods also count — for example, Argo Rollouts and Elasticsearch operated through ECK.

In EcoScale docs, “workload” and “target workload” refer to the same concept.

A WorkloadScaler is the Kubernetes resource EcoScale uses to connect a target workload with optimization policy and recommendation status. It identifies the target workload, declares what should be optimized, and controls whether recommendations remain in preview or can be automated.

apiVersion: escale.dev/v1alpha1
kind: WorkloadScaler
metadata:
name: example-api
namespace: example
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: example-api
namespace: example
optimize:
- resource
interval: 1d
resources:
updatePolicy:
updateMode: Preview
resourcePolicy:
containerPolicies:
- name: api
cpu:
scalingGoal: Balanced
scalingPolicy: RequestsOnly
memory:
scalingGoal: Balanced
scalingPolicy: RequestsAndLimits

This example keeps the workload in preview mode while allowing EcoScale to generate CPU and memory recommendations for the api container.

A WorkloadScalerRule is the cluster-level discovery rule that tells the agent which workloads should get WorkloadScaler resources. Rules are useful when platform teams want repeatable discovery and safe defaults across namespaces or workload kinds.

For custom workload CRDs, a rule can include a podNamePattern so EcoScale can match the workload to its pods for metrics queries. Rules can also define defaults for controller-created WorkloadScaler resources, while individual workloads can opt out with escale.dev/skip-defaults: "true".

A recommendation is EcoScale’s proposed resource posture for a workload or container. In these docs, recommendations refer to CPU and memory requests and limits. Each recommendation should be reviewed in context before it is applied or automated.

The optimization score summarizes how optimized a workload appears on a 0 to 100 scale. Higher scores indicate a better resource posture. Lower scores help teams find workloads with more room for improvement.

score = 100 − |(current − recommended) ÷ current × 100|

CPU and memory scores are computed independently, then combined into a weighted overall score using the weights 0.6 for CPU and 0.4 for memory.

Efficiency rate reflects how effectively allocated resources are being used. It helps teams identify workloads that may be overprovisioned even when cost configuration is not yet available.

rate = min(usage ÷ current, 1.0) × 100

Cost impact compares current cost with projected target cost. A negative net impact indicates projected savings, while a positive net impact indicates that the workload may need more resources to meet its operational needs.

currentCost = currentCPU × cpuPrice + currentMemory × memoryPrice
targetCost = targetCPU × cpuPrice + targetMemory × memoryPrice
netImpact = (targetCost − currentCost) × timeMultiplier

A resource request is the amount of CPU or memory Kubernetes uses for scheduling and allocation decisions. Requests are central to capacity planning and often influence internal cost models.

A resource limit is the maximum CPU or memory a container can consume. Limits can protect shared capacity, but poorly tuned limits can also create throttling or termination risk.

Preview mode keeps recommendations visible without applying them automatically. It is the recommended starting point for new workloads, critical services, and teams that are still building trust in the optimization workflow.

Automation allows trusted resource recommendations to be applied continuously. It is most appropriate for stable workloads with strong metrics history and a record of safe manual applies.

A cluster is a Kubernetes environment connected to EcoScale. Cluster context prevents teams from confusing similarly named workloads across staging, production, and regional environments.

A namespace organizes workloads within a cluster. EcoScale uses namespaces to group optimization data, support ownership boundaries, and help teams prioritize work at the right operational level.