Part 2 of 2 — Replacing NodePort with real LoadBalancer IPs, routing traffic through an Ingress controller with clean hostnames, and locking down pod-to-pod communication with NetworkPolicy. All on bare metal. All verified with real tests.


Series navigation:



Part 1: Cluster setup with kubeadm, foundational workloads, deploying a full-stack...