========================= Setting Up COE in Vagrant ========================= #. Run vagrant up - If Fedora wants to use libvirtd as the default provider then set it explicitly with --provider=virtualbox or export VAGRANT_DEFAULT_PROVIDER=virtualbox. #. ssh to the VM as vagrant ssh k8s-master #. for each VM, run the following commands: - start the Kubernetes cluster using the following command:: vagrant@k8sMaster:~$ sudo kubeadm init --apiserver-advertise-address=192.168.33.11 Note: If you get the swap issue, then do the following: #. open the /etc/systemd/system/kubelet.service.d/10-kubeadm.conf file:: $ sudo vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf #. add the following line then save and close:: Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false" #. disable swap and restart kubelet:: $ sudo swapoff -a $ sudo systemctl daemon-reload $ sudo systemctl restart kubelet #. create k8s cluster using:: $ sudo kubeadm init --apiserver-advertise-address=192.168.33.11 --ignore-preflight-errors Swap Note: Read the command output in order to use the kubectl command after. Note: In the minion VMs, you will use the join command instead ex:: vagrant@k8sMinion2:~$ sudo kubeadm join --token {given_token} 192.168.33.11:6443 - In order to create pods example use the following commands:: vagrant@k8sMaster:~$ sudo kubectl create namespace sock-shop vagrant@k8sMaster:~$ sudo kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true" - Check the pods status by executing:: vagrant@k8sMaster:~$ sudo kubectl -n sock-shop get pods -o wide Verification and Troubleshooting -------------------------------- #. Tunnels: a full overlay mesh is established between all three nodes. Each node will have two ports beginning with tun on br-int.:: $ vagrant ssh k8s-master $ sudo ovs-vsctl show [vagrant@k8sMaster cni]$ sudo ovs-vsctl show ba282931-cf8e-4440-8982-4ae3ea71e014 Manager "tcp:192.168.33.11:6640" Bridge br-int Controller "tcp:192.168.33.11:6653" fail_mode: secure Port "tun27b98be53d8" Interface "tun27b98be53d8" type: vxlan options: {key=flow, local_ip="192.168.33.11", remote_ip="192.168.33.13"} Port "veth39657fe3" Interface "veth39657fe3" error: "could not open network device veth39657fe3 (No such device)" Port "tun75d56d08394" Interface "tun75d56d08394" type: vxlan options: {key=flow, local_ip="192.168.33.11", remote_ip="192.168.33.12"} Port br-int Interface br-int type: internal ovs_version: "2.8.2" #. veth ports: each node will have a veth on br-int. - Use the same command for the tunnels verification step. #. nodes - kubectl get nodes:: [vagrant@k8sMaster cni]$ kubectl get nodes NAME STATUS ROLES AGE VERSION k8smaster Ready master 3d v1.9.4 k8sminion1 NotReady 3d v1.9.4 k8sminion2 NotReady 3d v1.9.4