← Back to Devops Blogs

Minikube setup windows

2025-07-18📖 4 min read

Share:

🚀 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

  1. User visits http://myapp.local in the browser
  2. Hosts file maps the domain to Minikube IP
  3. Ingress Controller receives the request
  4. Forwards to a NodePort Service
  5. Service routes to a Pod running Angular app
  6. Pod runs inside a Node (Minikube VM)
  7. 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:

  1. Git for Windows (includes Git Bash)
  2. Minikube
  3. 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