FAQ

Frequently Asked Questions

General

What is k8s-provisioner?

k8s-provisioner is a CLI tool written in Go that automates the creation of Kubernetes clusters for lab and learning environments. It uses VirtualBox and Vagrant to create VMs and provisions a complete Kubernetes stack.

What platforms are supported?

  • macOS (Intel and Apple Silicon)
  • Linux (x64 and ARM64)
  • Windows (x64)

How much RAM do I need?

Minimum 16 GB, recommended 32 GB. The default configuration uses 14 GB for the VMs.

Kubernetes

What Kubernetes version is used?

Kubernetes 1.32 with CRI-O as the container runtime.

Can I change the number of nodes?

Yes, edit vagrant/settings.yaml to add or remove nodes.

How do I access the cluster from my host?

vagrant ssh controlplane -c 'sudo cat /etc/kubernetes/admin.conf' > ~/.kube/config-lab
export KUBECONFIG=~/.kube/config-lab
kubectl get nodes

Components

Why Calico instead of Flannel?

Calico provides network policies and better performance for production-like environments.

Why CRI-O instead of containerd?

CRI-O is a lightweight, Kubernetes-native container runtime. Both work well, but CRI-O is more focused on Kubernetes.

Can I disable Istio?

Currently, Istio is installed by default. You can modify the provisioning scripts to skip it.

Troubleshooting

VMs won’t start

Check VirtualBox is installed and working:

VBoxManage --version

Cluster provisioning fails

Check the logs:

vagrant ssh controlplane
sudo journalctl -u kubelet -f

MetalLB IPs not reachable

Enable promiscuous mode:

k8s-provisioner vbox promisc