Deployment checklist and references
8 min read
Comprehensive Checklist & References
Pre-Production Deployment Checklist
Pod Health Checks
Table 1. Pod health check checklist
| Item | Check | Priority |
|---|---|---|
| Startup Probe | Configure a startup probe for applications with slow startup (30+ seconds) | High |
| Liveness Probe | Check internal state only, excluding external dependencies | Required |
| Readiness Probe | Check readiness to receive traffic. Include external dependencies only when they are per-replica (exclude dependencies shared by all replicas, which cause correlated failures) | Required |
| Probe timing | Verify that failureThreshold × periodSeconds is appropriate | Medium |
| Probe paths | Separate /healthz (liveness) and /ready (readiness) | High |
| ALB health checks | Verify the ALB health-check path is a valid health endpoint (it need not match the readiness probe path) | High |
| Pod Readiness Gates | Use with IP target mode or namespaces where the readiness gate is injected | Medium |
Graceful Shutdown
Table 2. Graceful Shutdown checklist
| Item | Check | Priority |
|---|---|---|
| preStop Hook | Add a sleep to wait for endpoint propagation (e.g. 5s; tune to EndpointSlice/kube-proxy update latency) | Required |
| SIGTERM handling | Implement a SIGTERM handler in the application | Required |
| terminationGracePeriodSeconds | Configure to account for preStop + shutdown time (30-120 seconds) | Required |
| Connection Draining | Implement cleanup logic for HTTP Keep-Alive and WebSocket connections | High |
| Data cleanup | Clean up DB connections, message queues, and file handles | High |
| Readiness failure | Return a readiness probe failure response when shutdown starts | Medium |
Resources and Images
Table 3. Resources and images checklist
| Item | Check | Priority |
|---|---|---|
| Resource requests/limits | Configure CPU/memory requests (for HPA and VPA) | Required |
| Image size | Minimize with multi-stage builds (target 100MB or less) | Medium |
| Image tags | Do not use the latest tag; use semantic versioning | Required |
| Security scanning | Scan for CVEs with Trivy and Grype | High |
| non-root user | Run containers as non-root | High |
High Availability
Table 4. High availability checklist
| Item | Check | Priority |
|---|---|---|
| PodDisruptionBudget | Configure minAvailable or maxUnavailable for multi-replica stateless services (singletons, batch, and leader-elected workloads are exceptions) | Required |
| Topology Spread | Configure distribution across multiple AZs | High |
| Replica count | At least 2 for stateless HA services (3+ in production). Does not apply to singletons/stateful/batch; also consider node capacity limits | Required |
| Affinity/Anti-Affinity | Prevent placement on the same node | Medium |
Related Documents
- EKS Troubleshooting and Incident Response Guide — Probe debugging and Pod troubleshooting
- EKS High Availability Architecture Guide — PDB, Graceful Shutdown, Pod Readiness Gates
- High-Speed Autoscaling with Karpenter — Karpenter Disruption and Spot instance management
- EKS Service Mesh Solution Comparison Guide — Comparison of mesh solutions related to the sidecar lifecycle, including native sidecars
External References
Official Kubernetes Documentation
- Configure Liveness, Readiness and Startup Probes
- Pod Lifecycle
- Init Containers
- Container Lifecycle Hooks
- Termination of Pods
Official AWS Documentation
- EKS Best Practices - Application Health Checks
- AWS Load Balancer Controller - Pod Readiness Gate
- EKS Workshop - Health Checks
Red Hat OpenShift Documentation
- Monitoring Application Health by Using Health Checks — Liveness, readiness, and startup probe configuration
- Using Init Containers — Init container patterns and operations
- Graceful Cluster Shutdown — Graceful shutdown procedures