kube-prometheus-stack: Monitoring That Won't Page You at 3AM
kube-prometheus-stack gets you 90% of the way there and pages you for the wrong 10%. How I tune alerts, add recording rules, and keep cardinality under control.
Read the post50 posts about kubernetes in the conndeck blog — field notes on local-first Kubernetes operations, GitOps, and production debugging.
kube-prometheus-stack gets you 90% of the way there and pages you for the wrong 10%. How I tune alerts, add recording rules, and keep cardinality under control.
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 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 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 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 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 postHow to scan container images with Trivy or Grype and enforce results with Kyverno or Gatekeeper admission policies, plus an exception workflow that won't get abused.
Read the postHow to tune Kubernetes audit policy, what to actually alert on, and how to keep log volume from eating your budget. Practical audit logging for platform teams.
Read the postA field-tested rollout plan for Pod Security Standards: audit mode first, baseline before restricted, and exemptions that don't become permanent.
Read the postPractical Kubernetes RBAC design: namespaced Roles over ClusterRoles, aggregated clusterroles for teams, killing wildcard verbs, and audits people actually run.
Read the postService account tokens are mounted into every pod by default. Here's how automountServiceAccountToken, bound tokens, and workload identity close the hole.
Read the postA pragmatic take on supply chain security: cosign keyless signing, signature verification at admission, SBOMs that get used, and SLSA without ceremony.
Read the postEveryone takes etcd snapshots; nobody restores one until it's life or death. Snapshots, quorum loss, and the restore procedure you should drill quarterly.
Read the postPVs, PVCs, and StorageClasses explained the way I wish someone had explained them to me: provisioning, reclaim policies, and expansion, minus the confusion.
Read the postPostgres on Kubernetes doesn't have to be scary. How operators like CloudNativePG handle failover, backups, and upgrades, and why the objections are dated.
Read the postA Pending PVC is always one of a few causes: missing provisioner, topology conflicts, WaitForFirstConsumer timing, or quota. Here's how to tell them apart.
Read the postStatefulSets give pods stable names, storage, and ordered rollout. When that matters, when a Deployment is fine, and the headless service nobody explains.
Read the postVelero backups are easy to set up and easy to set up wrong. Schedules, kopia file-system backups, snapshot pitfalls, and the restore test that matters.
Read the postA practitioner's guide to Argo Rollouts: canary steps, AnalysisTemplates with Prometheus metrics, aborts and rollbacks, and the gotchas that bite small teams.
Read the postAn honest ArgoCD vs Flux comparison from someone who ran both in production: install, day-two ops, multi-tenancy, drift handling, and which one I'd pick when.
Read the postWhy encrypted secrets in git still lose, and how to wire External Secrets Operator to Vault or a cloud secret manager with rotation that actually works.
Read the postHow to promote from staging to prod in GitOps: repo layouts, Kustomize overlays, image tag promotion via PR, and the habits that prevent drift.
Read the postHelm vs Kustomize without the tribalism: templating vs overlays, release management vs GitOps, drift behavior, and how I use both on the same cluster.
Read the postKaniko vs BuildKit for in-cluster image builds: why docker:dind is a dead end, how each tool actually works, real caching setups, and which one I'd pick.
Read the postPods Pending, cluster autoscaler doing nothing? The usual causes: PDBs, node group limits, taints, labels, and resource requests no node can satisfy.
Read the postHPA scales replicas on metrics, VPA right-sizes requests, KEDA scales on external events. How they differ, how they conflict, and how to combine them safely.
Read the postKubernetes assigns every pod a QoS class: Guaranteed, Burstable, or BestEffort. How the classes are computed and how they decide eviction order under node pressure.
Read the postLimitRange sets per-container defaults and bounds; ResourceQuota caps namespace totals. How they interact, the gotchas, and configs that hold up in production.
Read the postPodDisruptionBudgets control how many pods voluntary disruptions can take down. Drain behavior, minAvailable vs maxUnavailable, and PDBs that block upgrades.
Read the postRequests and limits drive scheduling, throttling, and OOM kills. A practical guide to measuring real usage, the CPU limits debate, and right-sizing with data.
Read the postAn honest ingress-nginx vs Traefik vs AWS ALB comparison from running all three in production: config model, performance, operational pain, and who should pick which.
Read the postClusterIP vs NodePort vs LoadBalancer explained by someone who's paid the bills: what each service type actually creates, how kube-proxy routes it, and when to use which.
Read the postIn-cluster DNS failing while your laptop resolves fine? Debug ndots:5 query amplification, the UDP conntrack race, CoreDNS health, and scaling, step by step.
Read the postImagePullBackOff has four real causes: bad tags, registry auth, rate limits, and network. Learn to read the pull error and fix the right one.
Read the postA node went NotReady at 2AM. Triage kubelet, disk pressure, and network partitions, then decide when to cordon, drain, or wait.
Read the postOOMKilled and exit code 137 mean the kernel killed your container. Learn to read Last State, separate cgroup OOM kills from eviction, and find the actual leak.
Read the postPod stuck in Pending? Run the real checklist: kubectl describe events, 0/N nodes available reasons, taints and tolerations, resource requests, and unbound PVCs.
Read the postRBAC Forbidden errors decode completely if you read them. Use kubectl auth can-i, impersonation, and bindings to grant exactly what's missing.
Read the postCNI Overlay vs kubenet, Workload Identity, the invisible control plane, surge math, and the AKS quotas that only appear under load — from production.
Read the postHand-maintaining near-identical ArgoCD Application manifests per cluster is a slow-motion incident. Here's how ApplicationSet generators fix it, and where they bite back.
Read the postWhat actually breaks when ArgoCD grows past hundreds of Applications: controller sharding, reconciliation tuning, repo-server memory, and the metrics to watch.
Read the postA practical guide to ArgoCD sync waves: why resource ordering matters, how the sync-wave annotation really works, and the mistakes that bite everyone.
Read the postCrashLoopBackOff isn't one error, it's five. A practical debugging guide to restart counts, last state, logs --previous, and the causes I actually see in production.
Read the postAn opinionated EKS vs AKS vs GKE comparison for teams running 10+ production clusters: pricing, forced upgrades, quota friction, and multi-cluster tooling.
Read the postENI slot math, /28 prefix delegation, warm pool tuning, and the failure modes that page you at 2 AM — an operator's guide to EKS pod networking.
Read the postInstalling ArgoCD doesn't make you a GitOps shop. Here's why the tool changes nothing until the team agrees to stop running kubectl apply from their laptops.
Read the postHow GKE Autopilot actually works under the abstraction: per-pod billing vs node provisioning, compute classes, upgrade mechanics, and where it quietly costs 2x.
Read the postkubectl apply says 'configured' and you believe it. Here's why declared YAML and real cluster state drift apart, and how to actually close the loop.
Read the postA deep dive into kube-scheduler internals: filtering vs scoring, topology spread math, PriorityClass preemption, scheduler profiles, and why the descheduler exists.
Read the postPods stuck in ContainerCreating, cryptic CNI errors, and a /24 subnet with zero free IPs. A war story about why 'just staging' still needs capacity planning.
Read the post