Skip to content

Instantly share code, notes, and snippets.

@rdimitrov
Created July 26, 2019 11:28
Show Gist options
  • Save rdimitrov/5ffafa1d8fb5e409ab2f9887af4cb057 to your computer and use it in GitHub Desktop.
Save rdimitrov/5ffafa1d8fb5e409ab2f9887af4cb057 to your computer and use it in GitHub Desktop.
Kubernetes on Rock64s using kubeadm

Kubernetes on ROCK64s using Kubeadm

  1. 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
  1. Init Kubeadm (master node)
sudo kubeadm init --token-ttl=0
  1. 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
  1. 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
  1. Install the CNI plugin - Weave (master node)
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
  1. 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment