Vagrantfile and Scripts to Automate Kubernetes Setup using Kubeadm [Practice Environment for CKA/CKAD and CKS Exams]
Current k8s version for CKA, CKAD, and CKS exam: 1.27
Refer to this link for documentation: https://devopscube.com/kubernetes-cluster-vagrant/
🚀 CKA, CKAD, CKS, or KCNA exam aspirants can save $80 today using code DCUBE20 at https://kube.promo/devops. It is a limited-time offer from the Linux Foundation.
For the best savings, opt for the CKA + CKS bundle ($210 Savings). Use code DCUBE20 at https://kube.promo/bundle
Note: You have one year of validity to appear for the certification exam after registration
- 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.confSo 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 upcd vagrant-kubeadm-kubernetes
cd configs
export KUBECONFIG=$(pwd)/configor 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" masterTo 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}}"Proxy the dashboard:
kubectl proxyOpen the site in your browser:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/overview?namespace=kubernetes-dashboardvagrant haltvagrant upvagrant destroy -f