Node Pressure Evictions: When the Kubelet Starts Killing
Why the kubelet evicts pods before the kernel OOM killer wakes up, how thresholds and priority decide victims, and how I tuned our eviction noise away.
Read the postWhy the kubelet evicts pods before the kernel OOM killer wakes up, how thresholds and priority decide victims, and how I tuned our eviction noise away.
Read the postThe liveness, readiness, and startup probe setup I ship in production, why naive liveness probes cause restart storms, and how I tune health checks.
Read the postA production guide to taints and tolerations: NoSchedule vs PreferNoSchedule vs NoExecute, dedicated node pools, and the tolerationSeconds trap.
Read the postWhy default-deny comes first with Kubernetes NetworkPolicies, the DNS and egress breakage that follows, and the CNI gotchas nobody warns you about.
Read the postHow I manage kubeconfigs across dozens of clusters: KUBECONFIG merging, context naming, namespace defaults, and avoiding wrong-cluster deploys.
Read the postFrom 2 clusters to 20: kubeconfig hygiene, fleet-wide visibility, and GitOps per cluster. The patterns that keep multi-cluster from becoming multi-chaos.
Read the postKubernetes upgrades don't have to be scary. Version skew rules, drain and PDB discipline, deprecation hunting, and how managed vs self-managed changes the job.
Read the postStop paging on CPU and start paging on burn rate. A practical guide to SLOs, error budgets, and multi-window alerts for Kubernetes services.
Read the postMost clusters run 30-50% idle because requests don't match reality. A practical walkthrough of requests vs usage, OpenCost, right-sizing, and spot nodes.
Read the postkubectl debug with ephemeral containers fixes the oldest problem in Kubernetes troubleshooting: distroless images with no shell. Distroless and node debugging.
Read the post