A fully automated setup for CKA, CKAD, and CKS practice labs is tested on the following systems:
- Windows
- Ubuntu Desktop
- Mac Intel-based systems
If you are MAC Silicon user, Please use the follwing repo.
- A working Vagrant setup using Vagrant + VirtualBox
Switch to ansible
Current k8s version for CKA, CKAD, and CKS exam: 1.29.
The setup is updated with 1.29 cluster version.
Refer to this link for documentation full: https://devopscube.com/kubernetes-cluster-vagrant/
- Working Vagrant setup
- 8 Gig + RAM workstation as the Vms use 3 vCPUS and 4+ GB RAM
The latest version of Virtualbox for Mac/Linux can cause issues.
Create/edit the /etc/vbox/networks.conf file and add the following to avoid any network-related issues.
* 0.0.0.0/0 ::/0
or run below commands
sudo mkdir -p /etc/vbox/
echo "* 0.0.0.0/0 ::/0" | sudo tee -a /etc/vbox/networks.conf
So that the host only networks can be in any range, not just 192.168.56.0/21 as described here: https://discuss.hashicorp.com/t/vagrant-2-2-18-osx-11-6-cannot-create-private-network/30984/23
To provision the cluster, execute the following commands.
git clone https://github.com/scriptcamp/vagrant-kubeadm-kubernetes.git
cd vagrant-kubeadm-kubernetes
vagrant plugin install vagrant-disksize
vagrant up
cd vagrant-kubeadm-kubernetes
cd configs
export KUBECONFIG=$(pwd)/config
or you can copy the config file to .kube directory.
cp config ~/.kube/
The dashboard is automatically installed by default, but it can be skipped by commenting out the dashboard version in settings.yaml before running vagrant up
.
If you skip the dashboard installation, you can deploy it later by enabling it in settings.yaml and running the following:
vagrant ssh -c "/vagrant/scripts/dashboard.sh" master
To get the login token, copy it from config/token or run the following command:
kubectl -n kubernetes-dashboard get secret/admin-user -o go-template="{{.data.token | base64decode}}"
Make the dashboard accessible:
kubectl proxy
Open the site in your browser:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
vagrant ssh -c "/vagrant/scripts/helm.sh" master
vagrant ssh -c "/vagrant/scripts/configure/ingress.sh" master
vagrant ssh -c "/vagrant/scripts/configure/dashboard.sh" master
vagrant ssh -c "/vagrant/scripts/configure/local-path-provisioner.sh" master
vagrant ssh -c "/vagrant/scripts/configure/registry.sh" master
vagrant halt
vagrant up
vagrant destroy -f