<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Neeraja Khanapure</title>
    <description>The latest articles on DEV Community by Neeraja Khanapure (@neeraja_khanapure_4a33a5f).</description>
    <link>https://dev.to/neeraja_khanapure_4a33a5f</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3594314%2Feb8f6250-03b3-4528-af8b-17a146fe27c2.png</url>
      <title>DEV Community: Neeraja Khanapure</title>
      <link>https://dev.to/neeraja_khanapure_4a33a5f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/neeraja_khanapure_4a33a5f"/>
    <language>en</language>
    <item>
      <title>Kubernetes rollouts: promote on SLOs, not on "pods are Ready"</title>
      <dc:creator>Neeraja Khanapure</dc:creator>
      <pubDate>Sat, 14 Mar 2026 15:57:32 +0000</pubDate>
      <link>https://dev.to/neeraja_khanapure_4a33a5f/kubernetes-rollouts-promote-on-slos-not-on-pods-are-ready-27f0</link>
      <guid>https://dev.to/neeraja_khanapure_4a33a5f/kubernetes-rollouts-promote-on-slos-not-on-pods-are-ready-27f0</guid>
      <description>&lt;p&gt;Readiness is a local signal. Production impact is global.&lt;br&gt;
Pods can be Ready while your SLO window is already burning.&lt;br&gt;
The failure chain&lt;br&gt;
Rollout shifts traffic fast.&lt;br&gt;
New pods saturate before HPA reacts.&lt;br&gt;
HPA scrape window is 15 to 30 seconds minimum.&lt;br&gt;
P95 latency climbs.&lt;br&gt;
Error rate ticks up.&lt;br&gt;
SLI degrades.&lt;br&gt;
Everything looks healthy. The error budget is draining quietly.&lt;br&gt;
Why "pods are Ready" lies to you&lt;br&gt;
Ready means the container started and passed a health check.&lt;br&gt;
It says nothing about P95 latency, error rate, or whether your SLO slice is holding.&lt;br&gt;
Canary gets stuck green because metrics are too coarse.&lt;br&gt;
No labels, no slices, blast radius stays invisible.&lt;br&gt;
Three resolvers&lt;br&gt;
Pre-scale before the first canary step&lt;br&gt;
Bump replicas before traffic shifts.&lt;br&gt;
HPA catches up from a safe baseline instead of a saturated one.&lt;br&gt;
Match step interval to your HPA scaleUp window&lt;br&gt;
Default stabilization window is 3 minutes.&lt;br&gt;
Check yours with:&lt;br&gt;
bashkubectl get hpa -o yaml&lt;br&gt;
Promoting before that window closes is promoting blind.&lt;br&gt;
Gate steps on SLI health&lt;br&gt;
Wire an AnalysisRun in Argo Rollouts that checks error rate and P95 latency are within SLO bounds before promoting.&lt;br&gt;
If the SLI is still recovering, promotion waits.&lt;br&gt;
The rule&lt;br&gt;
Promote only when the canary holds the SLO slice that matters for a fixed window.&lt;br&gt;
Anything outside that window triggers auto-rollback.&lt;br&gt;
Rollout speed and autoscaler reaction time are tuned independently.&lt;br&gt;
That gap is where error budget burns before anyone pages.&lt;/p&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://www.linkedin.com/posts/neerajakhanapure_kubernetes-sre-devops-ugcPost-7438609724431998976-SUaY?utm_source=share&amp;amp;amp%3Butm_medium=member_desktop&amp;amp;amp%3Brcm=ACoAABMKgGoB6y5JLsCvHdjL6I5oxdA-230Stpg" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.licdn.com%2Fdms%2Fimage%2Fv2%2FD5612AQFbRKl4bpocww%2Farticle-cover_image-shrink_720_1280%2FB56Zzs.3doGgAI-%2F0%2F1773502429603%3Fe%3D2147483647%26v%3Dbeta%26t%3D89YU0lG-UVi1F7AbfcwdPbGX94cg1wpg44HcHtqxXIQ" height="auto" class="m-0"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://www.linkedin.com/posts/neerajakhanapure_kubernetes-sre-devops-ugcPost-7438609724431998976-SUaY?utm_source=share&amp;amp;amp%3Butm_medium=member_desktop&amp;amp;amp%3Brcm=ACoAABMKgGoB6y5JLsCvHdjL6I5oxdA-230Stpg" rel="noopener noreferrer" class="c-link"&gt;
            Kubernetes rollouts: promote on SLOs, not on "pods are Ready" | Neeraja Khanapure
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Pods are Ready. P95 is climbing. Error rate is ticking. HPA has not moved.
The rollout looks healthy. The SLO window is already burning.
The exact failure chain and three resolvers that actually work. Pre-scaling, matching step interval to your HPA stabilization window, and gating promotion on SLI health instead of pod status.
#kubernetes #sre #devops #platformengineering
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fstatic.licdn.com%2Faero-v1%2Fsc%2Fh%2Fal2o9zrvru7aqj8e1x2rzsrca"&gt;
          linkedin.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;




&lt;p&gt;Deep dive: &lt;a href="https://neeraja-portfolio-v1.vercel.app/workflows/kubernetes-rollouts-promote-on-slos-not-on-pods-are-ready" rel="noopener noreferrer"&gt;https://neeraja-portfolio-v1.vercel.app/workflows/kubernetes-rollouts-promote-on-slos-not-on-pods-are-ready&lt;/a&gt;&lt;br&gt;
What is the step interval on your rollouts right now?&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>sre</category>
      <category>cloudnative</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
