Blog
Thoughts on engineering, design, and building great products.
Ingress: Routing HTTP Into the Cluster
NodePort gives each service a weird port — no good when you have many services. Ingress is a single HTTP entry point, routing by domain and path to the right service, with TLS. This article: enable minikube's ingress addon, write an Ingress rule, and test Host-based routing.
Storage: Volumes, PV, PVC and StorageClass
Data inside a pod evaporates with the pod — no good for a database or user files. Kubernetes separates the 'storage request' (PVC) from the 'real disk' (PV), with StorageClass for dynamic provisioning. This article proves data outlives the pod with a delete-then-recreate experiment.
ConfigMap and Secret: Separating Configuration from the Image
The same image must run in dev, staging, production — meaning configuration cannot be baked into the image. ConfigMap holds ordinary configuration, Secret holds sensitive data. This article: creating and injecting them into a pod via environment variables and files, with an important warning about 'a Secret is just base64'.
Namespaces, Labels and Selectors
Two foundational organizing mechanisms in Kubernetes: namespaces split the cluster into separate compartments, while labels/selectors are how you tag and select resources — the very 'glue' that Deployment and Service use to find pods. This article makes both clear with real examples.
Service: A Stable Address and Load Balancing
Pods come and go, IPs change constantly — so how do you call them? A Service gives you a stable address in front of a group of pods and load-balances automatically. This article: how ClusterIP, NodePort and LoadBalancer differ, how internal DNS lets you call a service by name, and kube-proxy behind it all.
Deployment and ReplicaSet: Keeping Your App Alive
Deployment is the object you use most to run applications: it keeps N pod copies alive (via ReplicaSet), rebuilds them when they die, scales up/down, and updates versions gradually with no downtime — plus rollback. This article proves each property with real commands.
Pod: The Smallest Unit in Kubernetes
The Pod is the foundational brick of Kubernetes — not a container, but a group of containers sharing network and storage. This article: write a pod in YAML, apply it, check its state, read logs, exec in, port-forward, and the lesson on why nobody runs bare pods in production.