Last active
August 11, 2020 11:57
-
-
Save mosuka/6f05e8399df040111937a80d8c07195f to your computer and use it in GitHub Desktop.
Raspberry Pi setup
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# step1 - initialize OS | |
$ export RASPBERRY_PI_HOSTNAME=raspberrypi001 | |
$ touch /media/${USER}/boot/ssh | |
$ ls /media/${USER}/boot/ssh | |
$ sed -i -e "s/rootfstype=ext4/rootfstype=ext4 cgroup_enable=cpuset cgroup_memory=memory cgroup_memory=1/g" /media/${USER}/boot/cmdline.txt | |
$ cat /media/${USER}/boot/cmdline.txt | |
$ sudo sed -i -e "s/raspberrypi/${RASPBERRY_PI_HOSTNAME}/g" /media/${USER}/rootfs/etc/hostname | |
$ cat /media/${USER}/rootfs/etc/hostname | |
$ sudo sed -i -e "s/raspberrypi/${RASPBERRY_PI_HOSTNAME}/g" /media/${USER}/rootfs/etc/hosts | |
$ cat /media/${USER}/rootfs/etc/hosts | |
# step2 - install Kubernetes (master and worker) | |
$ slogin pi@raspberrypi001.local | |
$ sudo apt-get -y upgrade | |
$ sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common | |
$ curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "${ID}")/gpg | sudo apt-key add - | |
$ echo "deb [arch=armhf] https://download.docker.com/linux/$(. /etc/os-release; echo "${ID}") $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list | |
$ sudo apt-get -y update | |
$ sudo apt-get -y install docker-ce | |
$ curl -fsSL 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 -y update | |
$ sudo apt-get -y install kubelet kubeadm kubectl | |
# step3 - disable swap (master and worker) | |
$ slogin pi@raspberrypi001.local | |
$ sudo dphys-swapfile swapoff | |
$ sudo dphys-swapfile uninstall | |
$ sudo update-rc.d dphys-swapfile remove | |
# step4 - master setup (master) | |
$ slogin pi@raspberrypi001.local | |
$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16 | |
$ mkdir -p ${HOME}/.kube | |
$ sudo cp -i /etc/kubernetes/admin.conf ${HOME}/.kube/config | |
$ sudo chown $(id -u):$(id -g) ${HOME}/.kube/config | |
$ kubectl apply -f <(curl -s https://raw.githubusercontent.com/coreos/flannel/v0.12.0/Documentation/kube-flannel.yml |sed 's/amd64/arm/g') | |
# step5 - worker setup (worker) | |
$ slogin pi@raspberrypi002.local | |
$ sudo kubeadm join --token xxxxxx.xxxxxxxx 10.0.1.22:6443 --discovery-token-ca-cert-hash sha256:xxxxxxxxx | |
# step6 - set labels (master) | |
$ kubectl label node raspberrypi002 node-role.kubernetes.io/worker=worker | |
$ kubectl label node raspberrypi003 node-role.kubernetes.io/worker=worker | |
$ kubectl label node raspberrypi004 node-role.kubernetes.io/worker=worker | |
$ kubectl label node raspberrypi005 node-role.kubernetes.io/worker=worker | |
$ kubectl label node raspberrypi006 node-role.kubernetes.io/worker=worker |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment