Phase 30 of 30 · Topic 30.2

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`.