Kubernetes Health Checks: Liveness, Readiness & Startup Probes
1Concept
Kubernetes probes monitor container health: Startup probe checks initialization, Readiness probe controls traffic routing, and Liveness probe restarts deadlocked containers.
2Architecture Diagram
Kubernetes Cluster ├── /health/startup ──> Verifies initial bootstrap finished (Gives slow starts time) ├── /health/readiness ──> Checks DB/Redis connectivity (Removes from load balancer if down) └── /health/liveness ──> Checks deadlock/CPU stalls (Restarts container if unresponsive)
3Code Example
C# 13 & .NET 9
using System;
public class HealthChecksConceptDemo
{
public static void Main()
{
Console.WriteLine("Health Checks configuration in ASP.NET Core 9:");
Console.WriteLine("builder.Services.AddHealthChecks()");
Console.WriteLine(" .AddNpgSql(dbConnection, name: "database")");
Console.WriteLine(" .AddRedis(redisConnection, name: "redis");");
Console.WriteLine("app.MapHealthChecks("/health/readiness");");
Console.WriteLine("app.MapHealthChecks("/health/liveness");");
}
}4Expected Output
Health Checks configuration in ASP.NET Core 9:
builder.Services.AddHealthChecks()
.AddNpgSql(dbConnection, name: "database")
.AddRedis(redisConnection, name: "redis");
app.MapHealthChecks("/health/readiness");
app.MapHealthChecks("/health/liveness");5Key Takeaways
- ✓Readiness probes must verify critical downstream connections (DB, Redis, MQ).
- ✓Liveness probes should only check process responsiveness to avoid cascading pod restarts.
- ✓Map endpoints to `/health/readiness` and `/health/liveness`.