Quick Start

Create your first Kubernetes cluster in minutes

Prerequisites

Make sure you have installed:

  • VirtualBox 7.0+
  • Vagrant 2.4+
  • kubectl 1.32+

Create the Cluster

# Clone the repository
git clone https://github.com/gilmararaujo/k8s-provisioner.git
cd k8s-provisioner/vagrant

# Start the cluster
vagrant up

This will create:

  • 1 Storage VM (NFS Server)
  • 1 Control Plane node
  • 2 Worker nodes

Enable Promiscuous Mode (Required for MetalLB)

# From the host machine (not inside VM)
./build/k8s-provisioner-darwin-arm64 vbox promisc   # macOS Apple Silicon
./build/k8s-provisioner-linux-amd64 vbox promisc    # Linux
.\build\k8s-provisioner-windows-amd64.exe vbox promisc  # Windows

Why? MetalLB uses ARP to announce LoadBalancer IPs. VirtualBox blocks ARP by default. Promiscuous mode allows the host to receive ARP responses.

Access the Cluster

# Copy kubeconfig
vagrant ssh controlplane -c 'sudo cat /etc/kubernetes/admin.conf' > ~/.kube/config-lab

# Fix the API server IP (replace localhost with controlplane IP)
sed -i '' 's/127.0.0.1/192.168.56.10/' ~/.kube/config-lab   # macOS
sed -i 's/127.0.0.1/192.168.56.10/' ~/.kube/config-lab      # Linux

# Use the config
export KUBECONFIG=~/.kube/config-lab

# Verify
kubectl get nodes

Expected output:

NAMESTATUSROLESAGEVERSIONcontrolplaneReadycontrolplane10mv1.32.11node01Ready<none>8mv1.32.11node02Ready<none>6mv1.32.11NAME STATUS ROLES AGE VERSION controlplane Ready control-plane 10m v1.32.11 node01 Ready <none> 8m v1.32.11 node02 Ready <none> 6m v1.32.11

What’s Included

Your cluster comes pre-configured with:

ComponentDescription
CalicoCNI networking
MetalLBLoadBalancer for bare metal
IstioService mesh
NFS ProvisionerDynamic storage (nfs-dynamic, nfs-static)
Prometheus + GrafanaMonitoring
Loki + PromtailLogging
Metrics ServerResource metrics
KarporKubernetes Explorer with AI
OllamaAI backend (local/cloud models)

Pre-built Binaries

Download pre-built binaries from GitHub Releases:

PlatformBinary
macOS Apple Siliconk8s-provisioner-darwin-arm64
macOS Intelk8s-provisioner-darwin-amd64
Linux x64k8s-provisioner-linux-amd64
Linux ARM64k8s-provisioner-linux-arm64
Windows x64k8s-provisioner-windows-amd64.exe

Build from Source

# Install dependencies
make deps

# Build for all platforms
make build-all

# Or build for specific platform
make build-darwin-arm64
make build-linux-amd64
make build-windows-amd64

Next Steps