在 Raspberry Pi 安裝 K8s
6 min readMay 11, 2020
適用讀者:對 K8s 有基礎了解、想要在 Raspberry Pi 安裝 K8s。
本篇安裝的 Raspbian image 版本為:
Image with desktop and recommended software based on Debian BusterVersion:February 2020
Release date:2020–02–13
Kernel version:4.19
Size:2530 MB
如果是全新的 Raspberry ,可以先下載 Raspbian image,然後依照這篇安裝 Raspbian。
都好了後需要先 ssh 到 Raspberry Pi 將權限改為 root:
sudo su
添加加密密鑰:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
將 Repository 添加到 Repository 列表:
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" \ >> /etc/apt/sources.list.d/kubernetes.list
升級 apt 後就可以安裝囉!
指令說明:
- apt update: 依據軟體套件資料庫 /etc/apt/sources.list 更新軟體套件記錄。
- apt upgrade:指的是根據套件記錄更新軟體套件。
- apt-mark:加上 hold 選項,後面跟一個或多個套件名稱就可以把它們設定為停止自動更新。
apt update
apt upgrade
apt install -y kubelet kubeadm kubectl kubernetes-cni
sudo apt-mark hold kubelet kubeadm kubectl
接下來要設置 Cluster,如果打算用 Docker 但還沒有安裝可以參考:https://phoenixnap.com/kb/docker-on-raspberry-pi 安裝 Docker。
設置 Cluster
kubeadm init --pod-network-cidr 10.244.0.0/16 --apiserver-advertise-address <你的靜態 IP>
如果遇到以下問題:
[ERROR Swap]: running with swap on is not supported. Please disable swap
可以參考這篇 issue 解決。
這部分會需要幾分鐘的時間,之後就會產生讓其他 node 加入 cluster 的命令:
kubeadm join <ip:port> --token <token>
然後再登入到其他 node 執行上述命令,然後執行:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
如果是 root 用戶則執行下面的命令:
export KUBECONFIG=/etc/kubernetes/admin.conf
然後執行下面的命令就可以查看 cluster 囉!
- root 用戶:
kubectl get nodes
2. 非 root 用戶:
sudo kubectl get nodes --kubeconfig=/etc/kubernetes/admin.conf
如果遇到下面的問題:
The connection to the server <ip>:6443 was refused - did you specify the right host or port?
可以執行下面指令看看再重新 get nodes,更多資訊可參考這篇:
sudo -i
swapoff -a
exit
strace -eopenat kubectl version
關於 token
生成 token 後可以用下面指令查看 token:
kubeadm token ls
token 默認的 TTL 是 24 小時,如果過期的話,可以用以下指令重新生成:
kubeadm token create