{"id":59,"date":"2026-10-11T17:40:04","date_gmt":"2026-10-11T17:40:04","guid":{"rendered":"https:\/\/smartcloudspend.com\/?p=59"},"modified":"2026-10-30T11:58:20","modified_gmt":"2026-10-30T11:58:20","slug":"kubernetes-finops-kubernetes-cost-optimization-guide","status":"publish","type":"post","link":"https:\/\/smartcloudspend.com\/?p=59","title":{"rendered":"Complete Guide to Kubernetes Cost Optimization (K8s FinOps)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>By Ra\u00fal P\u00e9rez \u00b7<\/em> <em>Last updated: October 2026 \u00b7 Reading time: 13 min<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes makes it easy to ship software. It also makes it easy to waste money without noticing. A developer copies a manifest with generous resource requests, the scheduler dutifully reserves that capacity, and the cluster autoscaler adds nodes to fit it. Nobody ever sees a cost line for &#8220;requested but never used.&#8221; It just shows up in the cloud invoice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide explains how Kubernetes spending really works and gives you a practical, ordered playbook for reducing it: measure first, then right-size, then autoscale, then change how you buy compute, and finally build the habits that keep costs down. It applies to EKS, AKS and GKE, plus self-managed clusters, with examples you can adapt today.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Kubernetes Costs Spiral<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There are a few structural reasons clusters tend to be expensive:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Requests drive billing, not usage.<\/strong> The scheduler places pods based on resource <em>requests<\/em>. Nodes are sized and added to satisfy requests. If a pod requests 2 CPUs and uses 0.2, you still pay for the 2.<\/li>\n\n\n\n<li><strong>Shared infrastructure hides ownership.<\/strong> In a multi-tenant cluster, one invoice covers dozens of teams. Without allocation, nobody feels responsible.<\/li>\n\n\n\n<li><strong>Defaults are generous.<\/strong> Copy-pasted manifests, Helm chart defaults and &#8220;just to be safe&#8221; limits inflate footprints.<\/li>\n\n\n\n<li><strong>Idle capacity is invisible.<\/strong> Empty space on nodes, unallocated CPU and memory, and forgotten namespaces do not trigger alerts.<\/li>\n\n\n\n<li><strong>Autoscaling scales up eagerly and down cautiously.<\/strong> Without tuning, clusters ratchet upward and stay there.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Industry surveys regularly report that a large share of requested Kubernetes resources goes unused. Exact figures vary widely by organization, so measure your own cluster rather than relying on a headline number.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Kubernetes Cost Equation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It helps to think of cluster cost in layers:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Total cost = Nodes (compute) + Storage + Networking + Control plane + Add-ons\/tools<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For most teams, <strong>nodes<\/strong> are 60 to 80 percent of the bill. So the central question is: <em>how many nodes do we run, of what type, at what price, and how full are they?<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That breaks into four levers:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Reduce what pods request<\/strong> (right-sizing)<\/li>\n\n\n\n<li><strong>Match node count to demand<\/strong> (autoscaling and bin packing)<\/li>\n\n\n\n<li><strong>Pay less per node<\/strong> (Spot, commitments, Arm, instance selection)<\/li>\n\n\n\n<li><strong>Eliminate what should not exist<\/strong> (idle workloads, orphaned storage, over-replication)<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Get Visibility Before You Optimize<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You cannot reduce what you cannot see. Start by answering three questions: who spends what, how much of it is waste, and where is the idle capacity?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tools for Kubernetes cost visibility<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Tool<\/th><th>Type<\/th><th>Strengths<\/th><\/tr><tr><td>OpenCost<\/td><td>Open source (CNCF project)<\/td><td>Vendor-neutral cost allocation by namespace, workload, label<\/td><\/tr><tr><td>Kubecost<\/td><td>Commercial with free tier, built on OpenCost<\/td><td>Dashboards, savings recommendations, multi-cluster views<\/td><\/tr><tr><td>Cloud provider tools<\/td><td>AWS split cost allocation data, Azure AKS cost analysis, GKE cost allocation<\/td><td>Native billing integration<\/td><\/tr><tr><td>Prometheus + Grafana<\/td><td>DIY<\/td><td>Maximum flexibility, more setup effort<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Features, limits and pricing change, so check each project&#8217;s current documentation. If you want a deeper side-by-side look, see our comparison of [OpenCost vs Kubecost].<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quick wins with plain kubectl<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before installing anything, see how requested versus actual usage looks right now (requires metrics-server):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Actual usage per node\nkubectl top nodes\n\n# Actual usage per pod, all namespaces, sorted by CPU\nkubectl top pods -A --sort-by=cpu\n\n# What nodes have allocated (requests) vs capacity\nkubectl describe nodes | grep -A 8 \"Allocated resources\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If nodes show 80 percent of CPU <em>allocated<\/em> but <code>kubectl top nodes<\/code> shows 15 percent <em>used<\/em>, you have found your savings.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Build the key metrics<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Track these as standing dashboards:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cluster utilization:<\/strong> used CPU and memory divided by node capacity.<\/li>\n\n\n\n<li><strong>Request efficiency:<\/strong> used divided by requested, per workload.<\/li>\n\n\n\n<li><strong>Idle cost:<\/strong> the cost of capacity that is neither requested nor used.<\/li>\n\n\n\n<li><strong>Cost per namespace, team and environment.<\/strong><\/li>\n\n\n\n<li><strong>Unit cost:<\/strong> cost per request, per customer or per transaction, if you can attribute it.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Right-Size Requests and Limits<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is usually the single highest-impact change, and the one most often skipped.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Understand requests vs limits<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Requests<\/strong> are what the scheduler reserves for a pod. They influence node count and cost directly.<\/li>\n\n\n\n<li><strong>Limits<\/strong> are the maximum a container may use. CPU limits cause throttling; memory limits cause OOM kills.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>resources:\n  requests:\n    cpu: 250m\n    memory: 512Mi\n  limits:\n    memory: 512Mi<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A widely used practice is to set CPU requests based on realistic usage, set memory requests equal to memory limits (memory is not compressible, so overcommitting it is risky), and consider omitting CPU limits for latency-sensitive services to avoid unnecessary throttling. This is a topic of real debate in the community, so test against your own workloads. We cover the trade-offs in depth in our article on [preventing waste from over-provisioned pods and CPU limits].<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Use real data to size<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Collect at least one to two weeks of usage, including peaks, then set requests near the 90th to 95th percentile of observed usage plus a safety margin. Prometheus queries help:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># 95th percentile CPU usage per container over 14 days\nquantile_over_time(0.95,\n  rate(container_cpu_usage_seconds_total{container!=\"\"}&#91;5m])&#91;14d:5m])\n\n# Peak memory working set per container over 14 days\nmax_over_time(container_memory_working_set_bytes{container!=\"\"}&#91;14d])<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Automate with the Vertical Pod Autoscaler<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Vertical Pod Autoscaler (VPA) observes usage and recommends, or applies, new requests. Start in recommendation mode so you can review before changing anything:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: autoscaling.k8s.io\/v1\nkind: VerticalPodAutoscaler\nmetadata:\n  name: checkout-api\nspec:\n  targetRef:\n    apiVersion: apps\/v1\n    kind: Deployment\n    name: checkout-api\n  updatePolicy:\n    updateMode: \"Off\"   # recommendations only<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl describe vpa checkout-api<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Two cautions. First, do not combine VPA with an HPA on the same CPU or memory metric for the same workload, because they will fight. Second, applying VPA changes in <code>Auto<\/code> mode traditionally restarts pods to update resources, so use it deliberately on stateless services with disruption budgets. Newer Kubernetes versions are adding in-place pod resize capabilities, so check what your version supports.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open-source tools such as Goldilocks (which runs VPA in recommendation mode and shows a dashboard) make this easier for teams that prefer not to hand-edit manifests.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Enforce sane defaults with LimitRange and ResourceQuota<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Prevent the next oversized deployment before it happens:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: LimitRange\nmetadata:\n  name: defaults\n  namespace: team-a\nspec:\n  limits:\n  - type: Container\n    defaultRequest:\n      cpu: 100m\n      memory: 128Mi\n    default:\n      memory: 256Mi\n    max:\n      cpu: \"4\"\n      memory: 8Gi\n---\napiVersion: v1\nkind: ResourceQuota\nmetadata:\n  name: team-a-quota\n  namespace: team-a\nspec:\n  hard:\n    requests.cpu: \"40\"\n    requests.memory: 160Gi\n    persistentvolumeclaims: \"20\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Quotas turn an invisible shared pool into a visible budget per team.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Autoscale at Three Levels<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Effective Kubernetes autoscaling works on pods, nodes and sometimes the clock.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Horizontal Pod Autoscaler (HPA)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Scale replicas with demand instead of running peak capacity all day:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: autoscaling\/v2\nkind: HorizontalPodAutoscaler\nmetadata:\n  name: checkout-api\nspec:\n  scaleTargetRef:\n    apiVersion: apps\/v1\n    kind: Deployment\n    name: checkout-api\n  minReplicas: 2\n  maxReplicas: 20\n  metrics:\n  - type: Resource\n    resource:\n      name: cpu\n      target:\n        type: Utilization\n        averageUtilization: 65\n  behavior:\n    scaleDown:\n      stabilizationWindowSeconds: 300<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For event-driven or queue-based workloads, <strong>KEDA<\/strong> can scale on external signals (queue length, Kafka lag, cron schedules) and can scale deployments to zero, which is excellent for batch and non-production services.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Node autoscaling<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pods are only half the story. If pods shrink but nodes stay, you save nothing. Two main options exist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cluster Autoscaler:<\/strong> the long-standing, widely supported approach that adjusts the size of predefined node groups.<\/li>\n\n\n\n<li><strong>Karpenter:<\/strong> a newer node provisioner that launches right-sized instances directly based on pending pods and actively consolidates underused nodes. It is most mature on AWS, and Azure offers a Karpenter-based node auto provisioning feature for AKS.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">We compare them in detail in [Karpenter vs Cluster Autoscaler: Cost Efficiency Comparison]. For cost, the key capability to look for is <strong>consolidation<\/strong>: automatically replacing several half-empty nodes with fewer, fuller ones.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Time-based scaling<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Non-production clusters rarely need to run at night or on weekends. Options include scaling user node pools to zero on a schedule, using KEDA&#8217;s cron scaler, or stopping dev clusters entirely outside working hours. A dev environment running 50 hours a week instead of 168 can see a large drop in compute spend.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Improve Bin Packing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bin packing is how efficiently pods fill nodes. Poor packing leaves stranded capacity: a node with 1 free CPU and 10 GB free memory cannot host a pod that needs 2 CPUs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Practical improvements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Right-size requests first.<\/strong> Packing quality depends on honest requests.<\/li>\n\n\n\n<li><strong>Use fewer, larger nodes where appropriate.<\/strong> Each node carries overhead (kubelet, system daemons, DaemonSets). Larger nodes dilute that overhead, though they increase the blast radius of a failure.<\/li>\n\n\n\n<li><strong>Choose node shapes that match your workloads&#8217; CPU-to-memory ratio.<\/strong> Memory-heavy services on CPU-heavy instances strand CPU.<\/li>\n\n\n\n<li><strong>Audit DaemonSets.<\/strong> A DaemonSet requesting 500m CPU on 100 nodes reserves 50 CPUs. Trim logging and monitoring agents.<\/li>\n\n\n\n<li><strong>Use topology spread and affinity rules sparingly.<\/strong> Strict anti-affinity and spread constraints can prevent dense packing.<\/li>\n\n\n\n<li><strong>Set Pod Disruption Budgets sensibly.<\/strong> Overly strict PDBs can block node consolidation and scale-down.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Pay Less Per Node<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once you run the right amount of compute, reduce the unit price.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Spot and preemptible instances<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Spot capacity is typically offered at a steep discount compared with on-demand, in exchange for the provider&#8217;s ability to reclaim it on short notice (about two minutes on AWS). It is a strong fit for stateless web tiers with multiple replicas, CI\/CD runners, batch jobs and data processing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Safe Spot patterns:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Diversify across many instance types and availability zones.<\/li>\n\n\n\n<li>Run critical, stateful or singleton workloads on on-demand nodes.<\/li>\n\n\n\n<li>Handle interruption signals (the AWS Node Termination Handler or Karpenter&#8217;s built-in handling).<\/li>\n\n\n\n<li>Set <code>terminationGracePeriodSeconds<\/code> and readiness checks so pods drain cleanly.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># Steer a tolerant workload onto Spot nodes\nspec:\n  nodeSelector:\n    karpenter.sh\/capacity-type: spot\n  tolerations:\n  - key: \"spot\"\n    operator: \"Exists\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Read [Spot Instances for Kubernetes: Risks, Savings, and Best Practices] before moving production traffic.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Commitments for the baseline<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For the always-on core, use Savings Plans or Reserved Instances (AWS), reservations or savings plans (Azure) or committed use discounts (GCP). Commit only to the stable floor that you are confident will exist, after right-sizing. Autoscaled, bursty capacity should stay flexible.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Arm-based instances<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Arm processors (AWS Graviton, Azure Cobalt\/Ampere, GCP Tau T2A and Axion) often deliver better price-performance for many workloads. If your images are multi-architecture (or can be built that way), test Arm node pools. Always benchmark your own application, because gains vary.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pick the right instance families<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Newer generations are often cheaper per unit of performance. Avoid burstable instances for sustained workloads, and avoid GPU instances for anything that does not need a GPU.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Eliminate Waste and Orphans<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hunt for things that cost money while doing nothing:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Idle namespaces and workloads:<\/strong> deployments with near-zero CPU and network for 30 days.<\/li>\n\n\n\n<li><strong>Orphaned PersistentVolumes:<\/strong> volumes left behind when claims were deleted.<\/li>\n\n\n\n<li><strong>Unused load balancers:<\/strong> each cloud load balancer has an hourly cost. Consolidate with an ingress controller where possible.<\/li>\n\n\n\n<li><strong>Over-replication:<\/strong> three replicas in dev, or a replica count of 10 for a service that peaks at 2 pods of work.<\/li>\n\n\n\n<li><strong>Old container images and logs:<\/strong> storage and log ingestion can quietly become major line items.<\/li>\n\n\n\n<li><strong>Oversized observability:<\/strong> high-cardinality metrics and verbose debug logging can cost as much as the compute they monitor.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># Find PVs that are not bound to any claim\nkubectl get pv | grep -E 'Released|Available'\n\n# Find Services of type LoadBalancer (each may cost money)\nkubectl get svc -A | grep LoadBalancer\n\n# Find deployments scaled to zero that may be candidates for removal\nkubectl get deploy -A -o json | jq -r '.items&#91;] | select(.spec.replicas==0) | \"\\(.metadata.namespace)\/\\(.metadata.name)\"'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Put a label such as <code>owner<\/code> and an optional <code>ttl<\/code> on every namespace so ownership is clear when it is time to clean up.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: Watch Networking, Storage and Cross-Zone Traffic<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Compute gets the attention, but hidden line items add up:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cross-AZ data transfer:<\/strong> in many clouds, traffic between availability zones is billed. Chatty microservices spread across zones can generate substantial charges. Topology-aware routing can keep traffic local where it is safe to do so.<\/li>\n\n\n\n<li><strong>NAT gateway and egress:<\/strong> pulling images and calling external APIs through NAT can be costly. Use VPC endpoints or private registries and caches where possible.<\/li>\n\n\n\n<li><strong>Storage classes:<\/strong> use the cheapest class that meets performance requirements and enable volume expansion rather than overprovisioning on day one.<\/li>\n\n\n\n<li><strong>Control plane fees:<\/strong> managed clusters often charge per cluster per hour. Fifty tiny clusters cost more in fees than five well-organized ones, so weigh isolation needs against overhead.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 8: Build a FinOps Operating Model for Kubernetes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tools alone do not hold the savings. The FinOps Foundation describes a cycle of <strong>Inform, Optimize and Operate<\/strong>, and it maps cleanly onto Kubernetes:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Inform:<\/strong> label everything (<code>team<\/code>, <code>app<\/code>, <code>env<\/code>, <code>cost-center<\/code>), allocate costs per namespace and workload, and send teams showback reports.<\/li>\n\n\n\n<li><strong>Optimize:<\/strong> right-size, autoscale, adopt Spot, and use commitments.<\/li>\n\n\n\n<li><strong>Operate:<\/strong> set budgets and alerts, review costs in sprint or monthly meetings, and add cost checks to CI.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Concrete habits that work:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Standard labels<\/strong> enforced by an admission policy (Kyverno or OPA Gatekeeper).<\/li>\n\n\n\n<li><strong>Budgets per team<\/strong> tied to ResourceQuotas.<\/li>\n\n\n\n<li><strong>Cost in pull requests,<\/strong> using tools that estimate the cost impact of infrastructure changes.<\/li>\n\n\n\n<li><strong>A monthly efficiency review<\/strong> of the top 10 least efficient workloads.<\/li>\n\n\n\n<li><strong>A published unit-cost metric<\/strong> so improvements are visible.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># Kyverno policy: require a team label on Deployments\napiVersion: kyverno.io\/v1\nkind: ClusterPolicy\nmetadata:\n  name: require-team-label\nspec:\n  validationFailureAction: Enforce\n  rules:\n  - name: check-team-label\n    match:\n      any:\n      - resources:\n          kinds: &#91;\"Deployment\"]\n    validate:\n      message: \"The label 'team' is required for cost allocation.\"\n      pattern:\n        metadata:\n          labels:\n            team: \"?*\"<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">A Prioritized Kubernetes Cost Optimization Checklist<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Week 1: Measure<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Install OpenCost or Kubecost, or enable your cloud provider&#8217;s cost allocation.<\/li>\n\n\n\n<li>Record baseline cost, utilization and request efficiency.<\/li>\n\n\n\n<li>Identify the top 10 costly namespaces and workloads.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Weeks 2 to 3: Right-size<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Deploy VPA in recommendation mode and review results.<\/li>\n\n\n\n<li>Reduce requests on the largest over-provisioned workloads.<\/li>\n\n\n\n<li>Add LimitRanges and ResourceQuotas.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Week 4: Autoscale and consolidate<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configure HPAs and consider KEDA for event-driven services.<\/li>\n\n\n\n<li>Enable node consolidation (Karpenter, or tune Cluster Autoscaler scale-down).<\/li>\n\n\n\n<li>Review PDBs and DaemonSets blocking consolidation.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Month 2: Change the price<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Move fault-tolerant workloads to Spot.<\/li>\n\n\n\n<li>Test Arm node pools.<\/li>\n\n\n\n<li>Cover the stable baseline with commitments.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ongoing<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Schedule non-production shutdowns.<\/li>\n\n\n\n<li>Clean orphaned volumes and load balancers.<\/li>\n\n\n\n<li>Run monthly efficiency reviews and publish team showback.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Common Kubernetes FinOps Mistakes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Optimizing nodes before pods.<\/strong> Autoscalers cannot fix inflated requests.<\/li>\n\n\n\n<li><strong>Cutting requests without headroom.<\/strong> Aggressive trimming causes OOM kills and latency, which cost more than the savings.<\/li>\n\n\n\n<li><strong>Putting everything on Spot.<\/strong> Interruptions on a single-replica stateful service are outages.<\/li>\n\n\n\n<li><strong>Ignoring non-production.<\/strong> Dev and staging often make up 30 to 50 percent of cluster spend in some organizations.<\/li>\n\n\n\n<li><strong>One-time cleanups.<\/strong> Without governance, waste returns within a quarter.<\/li>\n\n\n\n<li><strong>Chasing savings without a reliability guardrail.<\/strong> Track SLOs alongside cost so optimization never silently degrades users&#8217; experience.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What is Kubernetes FinOps?<\/strong> Kubernetes FinOps applies FinOps principles, meaning shared accountability, visibility and continuous optimization, to containerized workloads, so engineering, finance and product teams can make informed cost decisions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How much can I realistically save on Kubernetes?<\/strong> It depends on your starting point. Clusters that have never been optimized often have substantial headroom from right-sizing, consolidation and Spot adoption, while mature clusters will see smaller gains. Measure your baseline and set targets from your own data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Should I remove CPU limits?<\/strong> Many teams do for latency-sensitive services because CPU limits can cause throttling even when the node has spare CPU. Others keep them for multi-tenant fairness. Test with your workload, and always keep memory limits.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Is OpenCost enough, or do I need Kubecost?<\/strong> OpenCost provides the core allocation engine for free. Kubecost adds a richer UI, recommendations and enterprise features. Many teams start with OpenCost and upgrade only if they need more.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Do service meshes and sidecars affect cost?<\/strong> Yes. Each sidecar requests CPU and memory per pod, which multiplies across thousands of pods. Review sidecar resource requests, and evaluate sidecar-less or ambient modes where they fit.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes cost optimization is not a one-time project. It is a loop: measure who spends what, right-size what pods ask for, let autoscalers match capacity to demand, buy that capacity more cheaply, and keep teams accountable with budgets and showback. Start with visibility and right-sizing, since those deliver the biggest gains with the lowest risk, then layer on consolidation, Spot and commitments.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By Ra\u00fal P\u00e9rez \u00b7 Last updated: October 2026 \u00b7 Reading time: 13 min Kubernetes makes it easy to ship software. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":85,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[7],"tags":[],"class_list":["post-59","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kubernetes-finops"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Kubernetes Cost Optimization: K8s FinOps Guide (2026)<\/title>\n<meta name=\"description\" content=\"Learn how to cut Kubernetes costs with right-sizing, autoscaling, Spot nodes, bin packing and cost visibility.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/smartcloudspend.com\/?p=59\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kubernetes Cost Optimization: K8s FinOps Guide (2026)\" \/>\n<meta property=\"og:description\" content=\"Learn how to cut Kubernetes costs with right-sizing, autoscaling, Spot nodes, bin packing and cost visibility.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/smartcloudspend.com\/?p=59\" \/>\n<meta property=\"og:site_name\" content=\"SmartCloudSpend\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-11T17:40:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-30T11:58:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/smartcloudspend.com\/wp-content\/uploads\/2026\/10\/Guia-visual-para-optimizar-costes-de-Kubernetes.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Raul\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Raul\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/?p=59#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/?p=59\"},\"author\":{\"name\":\"Raul\",\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/#\\\/schema\\\/person\\\/44ee75fea87758b75c9fa20bcb4736b5\"},\"headline\":\"Complete Guide to Kubernetes Cost Optimization (K8s FinOps)\",\"datePublished\":\"2026-10-11T17:40:04+00:00\",\"dateModified\":\"2026-10-30T11:58:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/?p=59\"},\"wordCount\":2325,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/?p=59#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/smartcloudspend.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Guia-visual-para-optimizar-costes-de-Kubernetes.png\",\"articleSection\":[\"Kubernetes FinOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/smartcloudspend.com\\\/?p=59#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/?p=59\",\"url\":\"https:\\\/\\\/smartcloudspend.com\\\/?p=59\",\"name\":\"Kubernetes Cost Optimization: K8s FinOps Guide (2026)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/?p=59#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/?p=59#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/smartcloudspend.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Guia-visual-para-optimizar-costes-de-Kubernetes.png\",\"datePublished\":\"2026-10-11T17:40:04+00:00\",\"dateModified\":\"2026-10-30T11:58:20+00:00\",\"description\":\"Learn how to cut Kubernetes costs with right-sizing, autoscaling, Spot nodes, bin packing and cost visibility.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/?p=59#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/smartcloudspend.com\\\/?p=59\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/?p=59#primaryimage\",\"url\":\"https:\\\/\\\/smartcloudspend.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Guia-visual-para-optimizar-costes-de-Kubernetes.png\",\"contentUrl\":\"https:\\\/\\\/smartcloudspend.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Guia-visual-para-optimizar-costes-de-Kubernetes.png\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/?p=59#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/smartcloudspend.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Complete Guide to Kubernetes Cost Optimization (K8s FinOps)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/#website\",\"url\":\"https:\\\/\\\/smartcloudspend.com\\\/\",\"name\":\"SmartCloudSpend\",\"description\":\"Cloud services budget optimizer\",\"publisher\":{\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/smartcloudspend.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/#organization\",\"name\":\"SmartCloudSpend\",\"url\":\"https:\\\/\\\/smartcloudspend.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/smartcloudspend.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/cropped-Gemini_Generated_Image_8kqpol8kqpol8kqp-removebg-preview.png\",\"contentUrl\":\"https:\\\/\\\/smartcloudspend.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/cropped-Gemini_Generated_Image_8kqpol8kqpol8kqp-removebg-preview.png\",\"width\":453,\"height\":401,\"caption\":\"SmartCloudSpend\"},\"image\":{\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/smartcloudspend.com\\\/#\\\/schema\\\/person\\\/44ee75fea87758b75c9fa20bcb4736b5\",\"name\":\"Raul\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7528fdea3565b1d864e359aadcb71d1a08ebb6360994d6a7f695c45b0f3984ed?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7528fdea3565b1d864e359aadcb71d1a08ebb6360994d6a7f695c45b0f3984ed?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7528fdea3565b1d864e359aadcb71d1a08ebb6360994d6a7f695c45b0f3984ed?s=96&d=mm&r=g\",\"caption\":\"Raul\"},\"sameAs\":[\"https:\\\/\\\/smartcloudspend.com\"],\"url\":\"https:\\\/\\\/smartcloudspend.com\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kubernetes Cost Optimization: K8s FinOps Guide (2026)","description":"Learn how to cut Kubernetes costs with right-sizing, autoscaling, Spot nodes, bin packing and cost visibility.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/smartcloudspend.com\/?p=59","og_locale":"en_US","og_type":"article","og_title":"Kubernetes Cost Optimization: K8s FinOps Guide (2026)","og_description":"Learn how to cut Kubernetes costs with right-sizing, autoscaling, Spot nodes, bin packing and cost visibility.","og_url":"https:\/\/smartcloudspend.com\/?p=59","og_site_name":"SmartCloudSpend","article_published_time":"2026-10-11T17:40:04+00:00","article_modified_time":"2026-10-30T11:58:20+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/smartcloudspend.com\/wp-content\/uploads\/2026\/10\/Guia-visual-para-optimizar-costes-de-Kubernetes.png","type":"image\/png"}],"author":"Raul","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Raul","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/smartcloudspend.com\/?p=59#article","isPartOf":{"@id":"https:\/\/smartcloudspend.com\/?p=59"},"author":{"name":"Raul","@id":"https:\/\/smartcloudspend.com\/#\/schema\/person\/44ee75fea87758b75c9fa20bcb4736b5"},"headline":"Complete Guide to Kubernetes Cost Optimization (K8s FinOps)","datePublished":"2026-10-11T17:40:04+00:00","dateModified":"2026-10-30T11:58:20+00:00","mainEntityOfPage":{"@id":"https:\/\/smartcloudspend.com\/?p=59"},"wordCount":2325,"commentCount":0,"publisher":{"@id":"https:\/\/smartcloudspend.com\/#organization"},"image":{"@id":"https:\/\/smartcloudspend.com\/?p=59#primaryimage"},"thumbnailUrl":"https:\/\/smartcloudspend.com\/wp-content\/uploads\/2026\/10\/Guia-visual-para-optimizar-costes-de-Kubernetes.png","articleSection":["Kubernetes FinOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/smartcloudspend.com\/?p=59#respond"]}]},{"@type":"WebPage","@id":"https:\/\/smartcloudspend.com\/?p=59","url":"https:\/\/smartcloudspend.com\/?p=59","name":"Kubernetes Cost Optimization: K8s FinOps Guide (2026)","isPartOf":{"@id":"https:\/\/smartcloudspend.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/smartcloudspend.com\/?p=59#primaryimage"},"image":{"@id":"https:\/\/smartcloudspend.com\/?p=59#primaryimage"},"thumbnailUrl":"https:\/\/smartcloudspend.com\/wp-content\/uploads\/2026\/10\/Guia-visual-para-optimizar-costes-de-Kubernetes.png","datePublished":"2026-10-11T17:40:04+00:00","dateModified":"2026-10-30T11:58:20+00:00","description":"Learn how to cut Kubernetes costs with right-sizing, autoscaling, Spot nodes, bin packing and cost visibility.","breadcrumb":{"@id":"https:\/\/smartcloudspend.com\/?p=59#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/smartcloudspend.com\/?p=59"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/smartcloudspend.com\/?p=59#primaryimage","url":"https:\/\/smartcloudspend.com\/wp-content\/uploads\/2026\/10\/Guia-visual-para-optimizar-costes-de-Kubernetes.png","contentUrl":"https:\/\/smartcloudspend.com\/wp-content\/uploads\/2026\/10\/Guia-visual-para-optimizar-costes-de-Kubernetes.png","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/smartcloudspend.com\/?p=59#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/smartcloudspend.com\/"},{"@type":"ListItem","position":2,"name":"Complete Guide to Kubernetes Cost Optimization (K8s FinOps)"}]},{"@type":"WebSite","@id":"https:\/\/smartcloudspend.com\/#website","url":"https:\/\/smartcloudspend.com\/","name":"SmartCloudSpend","description":"Cloud services budget optimizer","publisher":{"@id":"https:\/\/smartcloudspend.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/smartcloudspend.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/smartcloudspend.com\/#organization","name":"SmartCloudSpend","url":"https:\/\/smartcloudspend.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/smartcloudspend.com\/#\/schema\/logo\/image\/","url":"https:\/\/smartcloudspend.com\/wp-content\/uploads\/2026\/10\/cropped-Gemini_Generated_Image_8kqpol8kqpol8kqp-removebg-preview.png","contentUrl":"https:\/\/smartcloudspend.com\/wp-content\/uploads\/2026\/10\/cropped-Gemini_Generated_Image_8kqpol8kqpol8kqp-removebg-preview.png","width":453,"height":401,"caption":"SmartCloudSpend"},"image":{"@id":"https:\/\/smartcloudspend.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/smartcloudspend.com\/#\/schema\/person\/44ee75fea87758b75c9fa20bcb4736b5","name":"Raul","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/7528fdea3565b1d864e359aadcb71d1a08ebb6360994d6a7f695c45b0f3984ed?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/7528fdea3565b1d864e359aadcb71d1a08ebb6360994d6a7f695c45b0f3984ed?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7528fdea3565b1d864e359aadcb71d1a08ebb6360994d6a7f695c45b0f3984ed?s=96&d=mm&r=g","caption":"Raul"},"sameAs":["https:\/\/smartcloudspend.com"],"url":"https:\/\/smartcloudspend.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/smartcloudspend.com\/index.php?rest_route=\/wp\/v2\/posts\/59","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smartcloudspend.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smartcloudspend.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smartcloudspend.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smartcloudspend.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=59"}],"version-history":[{"count":5,"href":"https:\/\/smartcloudspend.com\/index.php?rest_route=\/wp\/v2\/posts\/59\/revisions"}],"predecessor-version":[{"id":242,"href":"https:\/\/smartcloudspend.com\/index.php?rest_route=\/wp\/v2\/posts\/59\/revisions\/242"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/smartcloudspend.com\/index.php?rest_route=\/wp\/v2\/media\/85"}],"wp:attachment":[{"href":"https:\/\/smartcloudspend.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=59"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smartcloudspend.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=59"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smartcloudspend.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=59"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}