Arctic TechnoLabs
DevOps

Zero-Downtime Deployments With Kubernetes: Our Exact Setup

arctictechnolabs
April 25, 2026
| 2 min read 216 words

Deploying to production should be boring. At NexaCore we deploy dozens of times per day across client systems, and zero-downtime is table stakes. Here is the exact Kubernetes setup we use.

Rolling Updates With PodDisruptionBudgets

The foundation is a rolling update strategy with a PodDisruptionBudget that guarantees at least 80% of pods are always available during a rollout. This means Kubernetes will never take down more than 20% of your pods at once, regardless of node pressure.

Readiness Probes That Actually Work

Most readiness probe failures we see in the wild are either too aggressive (causing false evictions) or too permissive (sending traffic to pods that are not ready). Our standard: HTTP probe on the health endpoint, 5-second initial delay, 3-second period, 2 failure threshold. The health endpoint checks the database connection and any critical external dependencies before returning 200.

Graceful Shutdown

When Kubernetes sends SIGTERM, your app needs to stop accepting new connections, finish in-flight requests, and exit cleanly. We set a 30-second terminationGracePeriodSeconds and handle SIGTERM explicitly in every service to drain the connection pool and flush any pending writes.

Blue-Green for High-Risk Deploys

For database migrations or major architectural changes, we use blue-green deployments via a separate deployment and service swap. More overhead, but for changes where you need an instant rollback button, it is worth it.

Share this article

arctictechnolabs

Engineer & writer at ArcticTechnoLabs. Building the future one commit at a time.

More posts →

Leave a Comment

Your email address will not be published. Required fields are marked *

Related Articles

Let's Talk