使用機器
使用機器 | 個数 |
---|---|
buffalo 無線中継機 wmr-433w2-bk | 1 |
エレコム スイッチングハブ ehc-g05pa-sb | 1 |
raspberry pi4 | 3 |
サンディスク microsd 128gb | 3 |
オーディオファン lanケーブル 30cm | 3 |
anker 547 charger (120w usb-c 4ポート) | 1 |
hotnow usbc-usbcケーブル30cm 3本セット | 1 |
geeekpi クラスターケース+ファン+ヒートシンク | 1 |
mygatti usb c to microケーブル | 1 |
osのインストール
raspberry pi imagerを使用。
設定項目 | 設定値 |
---|---|
os | raspberry pi os lite(64bit) |
ホスト名 | rasp1.local, rasp2.local, rasp3.local |
ユーザー名 | rasp |
パスワード | rasp |
sshを有効にするをチェック -> パスワード認証を使う。
ssh疎通確認
コマンドラインでssh <ユーザー名>@<ホスト名>
# example
ssh rasp@rasp1.local
うまくいくと接続して良いか聞かれるのでyes
と入力する。
k8sクラスタ構成
ipアドレスの固定
networkmanagerを無効化
sudo systemctl disable networkmanager
sudo systemctl stop networkmanager
/etc/network/interfaces を編集
auto eth0
iface eth0 inet static
address 192.168.13.100
netmask 255.255.255.0
gateway 192.168.13.1
dns-nameservers 192.168.13.1 8.8.8.8
再起動し、ip a
でipアドレスを固定できているかを確認する。
サーバー
サーバーとしたいラズパイにアクセス(rasp1.local)し、以下のコマンドを実行する。
curl -sfl https://get.k3s.io | sh -
以下のようなエラーが出た。
[info] failed to find memory cgroup, you may need to add "cgroup_memory=1 cgroup_enable=memory" to your linux cmdline (/boot/cmdline.txt on a raspberry pi)
/boot/cmdline.txt にcgroup_memory=1 cgroup_enable=memory
を追加しろとのこと。
/boot/cmdline.txt はなかったので /boot/firmware/cmdline.txt に記述する。
設定した/boot/firmware/cmdline.txt
console=serial0,115200 console=tty1 root=partuuid=c818a2ac-02 rootfstype=ext4 fsck.repair=yes rootwait cgroup_memory=1 cgroup_enable=memory
ラズパイを再起動した後に、再度以下のコマンドを実行するとうまくインストールできた。
curl -sfl https://get.k3s.io | sh -
以下コマンドを実行してtokenをメモしておく。
sudo cat /var/lib/rancher/k3s/server/node-token
クライアント
クライアントとしたいラズパイにアクセス(rasp2.local, rasp3.local)
rasp1.local と同様に、 /boot/firmware/cmdline.txt にcgroup_memory=1 cgroup_enable=memory
を追加する。
再起動後に以下のコマンドを実行する。
curl -sfl https://get.k3s.io | k3s_url=https://<マスターのipアドレス>:6443 k3s_token=<メモしたnode-token> sh -
サーバーラズパイでクラスタができていることを確認する。
rasp@rasp1:~ $ sudo kubectl get nodes
name status roles age version
rasp1 ready control-plane,master 3d17h v1.30.4+k3s1
rasp2 ready <none> 3d17h v1.30.4+k3s1
rasp3 ready <none> 3d17h v1.30.4+k3s1
# statusがreadyになっていればok