Lab 3.1 is brittle, kubeadm command on master needs to specify Kubernetes server version
kubeadm downloads, by default, the latest version of the Kubernetes core services from gcr.io. On the other hand, the lab instructions call out a specific version of kubeadm, kubectl, and kubelet. So if a student tries to follow the lab instructions at a time when, say, the newest version of Kubernetes is 1.13 but the course instructions call for 1.12.1, the result will be a version skew. This skew won't cause a problem until the student attempts to add a node. Then this error message will result in the kubeadm join command:
[kubelet] Downloading configuration for the kubelet from the "kubelet-config-1.12" ConfigMap in the kube-system namespace configmaps "kubelet-config-1.12" is forbidden: User "system:bootstrap:3ai26q" cannot get resource "configmaps" in API group "" in the namespace "kube-system"
To avoid this problem, the lab instructions should also explicitly name the desired version of Kubernetes in the master's kubeadm command:
kubeadm init --kubernetes-version 1.12.1 --pod-network-cidr whatever/whatever