🚀 Blog 1: Setting Up a Local Kubernetes Playground with Minikube (Windows Edition)
Welcome to Part 1 of our 7-blog DevOps series, where we’ll deploy an Angular app using Kubernetes — all locally on your Windows machine with Minikube.
This is your personal Kubernetes lab — no cloud, no cost!
👩💻 What Is Frontend DevOps?
Frontend DevOps brings DevOps principles like automation, containerization, CI/CD, monitoring, and scaling to frontend development.
In this series, you’ll:
- Build and containerize your Angular app
- Deploy it using Kubernetes
- Use tools like Ingress, HPA, and metrics — from a DevOps point of view
📦 Think of it as turning your Angular app into a scalable, production-ready service — right from your laptop.
📚 Quick Glossary of Key Concepts
| Term | Description |
|---|---|
| Container | A portable package of code + dependencies that runs consistently anywhere |
| Pod | A Kubernetes unit that runs one or more containers |
| Node | A machine (VM or physical) in the cluster that runs Pods |
| Kubernetes | A system for managing containerized apps at scale |
| Ingress Controller | Routes external HTTP/S traffic to services in your cluster |
| HPA (Horizontal Pod Autoscaler) | Automatically scales Pods based on CPU or memory usage |
| Logs | Output from containers and cluster components — helpful for debugging |
| CI/CD | Automates build, test, and deploy processes (Continuous Integration/Delivery) |
🗺️ Architecture Diagram: Angular App on Kubernetes (Minikube, Ingress, HPA)
+---------------------+
| Browser (User) |
| http://myapp.local |
+----------+----------+
|
v
+-----------------------------+
| Windows Hosts File |
| (myapp.local → Minikube IP) |
+-------------+---------------+
|
v
+-------------------------------+
| Ingress Controller (K8s Addon)|
| - Routes based on host/path |
+-------------+-----------------+
|
v
+-----------------------------+
| Kubernetes Service (NodePort)|
| - Exposes Pods on port 30080 |
+-------------+---------------+
|
v
+-----------------------------+
| Pod (K8s) |
| +------------------------+ |
| | Angular App Container | |
| | (NGINX + dist output) | |
| +------------------------+ |
+-------------+---------------+
|
v
+-----------------------------+
| Node (Minikube VM) |
| - Hosts the Pod |
+-------------+---------------+
^
|
+-----------------------------+
| HPA (Autoscaler) |
| - Scales Pods based on load |
+-----------------------------+
🔄 Flow Summary
- User visits
http://myapp.localin the browser - Hosts file maps the domain to Minikube IP
- Ingress Controller receives the request
- Forwards to a NodePort Service
- Service routes to a Pod running Angular app
- Pod runs inside a Node (Minikube VM)
- HPA monitors usage and scales Pods as needed
🎯 What You'll Accomplish
- Install and configure Minikube on Windows
- Enable Kubernetes addons: Ingress & Metrics Server
- Start your first local Kubernetes cluster
- Prepare the environment for deploying an Angular app
🛠️ Prerequisites for Windows
| Tool | Purpose | Required |
|---|---|---|
| Minikube | Run Kubernetes locally | ✅ |
| kubectl | Kubernetes CLI tool | ✅ |
| Git for Windows | Comes with Git Bash terminal | ✅ |
❌ Docker Desktop is NOT required
✅ We’ll use Minikube’s internal Docker engine to build and run images
💡 Virtualization must be enabled (e.g. Hyper-V or VirtualBox)
⚙️ Step-by-Step Setup (Windows)
1. 🧱 Install the Required Tools
Install in this order:
- Git for Windows (includes Git Bash)
- Minikube
- kubectl
Verify installation:
In Git Bash:
minikube version
kubectl version --client
Or in PowerShell (Admin):
minikube version
kubectl version --client
2. 🚀 Start Your Local Minikube Cluster
Use this to start with Docker driver:
minikube start --driver=docker --cpus=2 --memory=4096
Prefer Hyper-V instead?
minikube start --driver=hyperv
Check cluster status:
kubectl get nodes
Expected output:
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane ... v1.29.x
3. ✅ Enable Kubernetes Addons
Enable core features:
minikube addons enable ingress
minikube addons enable metrics-server
Verify:
minikube addons list
Look for:
| ingress | enabled ✅ |
| metrics-server | enabled ✅ |
4. 🖥️ (Optional) Launch Kubernetes Dashboard
minikube dashboard
Opens a UI in your browser to inspect Pods, Services, Deployments, etc.
🧪 Verify Setup
kubectl get nodes
# → Should show 'Ready'
minikube addons list
# → Ingress and Metrics Server should be 'enabled'
✅ You’re Ready to Deploy
You've now set up:
- A local Kubernetes cluster using Minikube
- Addons for traffic routing and autoscaling
- A Windows-friendly DevOps playground — no Docker Desktop needed