- Install Kubeadm
sudo kubeadm config images pull -v3
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && \
sudo apt-get update -q && \
sudo apt-get install -qy kubeadm
- Init Kubeadm (master node)
sudo kubeadm init --token-ttl=0
- Get the output command w/token and run it on each worker node you want to add to that cluster
kubeadm join 192.168.0.101:6443 --token 5o0d44.9uioh8dr81w4pjc5 \
--discovery-token-ca-cert-hash sha256:8c350b05d0e092dec4083e3d4b9fd91c2f8edc7179cfee8eaf58211719000451
- Run post-install configuration (master node)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- Install the CNI plugin - Weave (master node)
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
- Taint the master node so it can be used as a worker node as well (master node)
kubectl taint nodes --all node-role.kubernetes.io/master-
Optional: Generate a new machine-id in case some of the boards have the same ones
cat /etc/machine-id \
&& sudo rm -rf /var/lib/dbus/machine-id \
&& sudo rm -rf /etc/machine-id \
&& sudo dbus-uuidgen --ensure \
&& sudo systemd-machine-id-setup \
&& cat /etc/machine-id