正直言ってあまり安定していない、困った
機材
- Raspberry Pi 5 4GB
- Geekworm X1001 V1.1
- アクティブクーラー・ヒートシンク
- KIOXIA 1TB NVMe M.2 Type 2280(データ用)
- エレコム SSD 外付け 250GB USB3.2 ESD-EXS0250GWH(OS用)
- 電源
これが3つづつ
rook/cephに使うdiskはパーティションで切ったりするのはよくないらしい、というわけでOS用とデータ用を用意
Ubuntu 23.10のインストール
Ubuntuは23.10以降でRaspberry Pi5に対応している
24.04にしたかったところだが現時点ではまだリリースされていないのでこちらを採用
sudo apt upgrade
をかけると安定する
Raspberry Pi OSはrook/cephがうまく動かなかった
Raspberry Pi OS – Raspberry Piで書き込み
この時二つのファイルに追記する
dtparam=pciex1
dtparam=pciex1_gen=3 #お試し
usb_max_current_enable=1 #電源がPi5専用のものでない場合
cgroup_enable=memory cgroup_memory=1
NVMeのSSDが認識されないときはbootloaderのバージョンを確認しよう
私の設定は以下の通り
$ rpi-eeprom-update
BOOTLOADER: up to date
CURRENT: Fri Apr 5 10:41:19 UTC 2024 (1712313679)
LATEST: Mon Sep 25 10:44:03 UTC 2023 (1695638643)
RELEASE: default (/lib/firmware/raspberrypi/bootloader-2712/default)
Use raspi-config to change the release.
結構NVMe SSDの相性がシビア、なるべく新しい方がいいかもしれない
bootloaderは以下よりダウンロード
rpi-eeprom/firmware-2712/latest at master · raspberrypi/rpi-eeprom · GitHub
例
sudo rpi-eeprom-update -d -f pieeprom-2024-04-05.bin
microk8sのインストール
MicroK8s - HowTo setup MicroK8s with (Micro)Ceph storage
に従う
sudo apt install linux-modules-extra-raspi
sudo snap install microk8s --channel=latest/stable --classic
sudo省略
sudo usermod -a -G microk8s $USER
様子の確認
microk8s.start
microk8s.status
うまく動けば
$ microk8s.status
microk8s is running
の表示が出る
$ microk8s.status
microk8s is not running. Use microk8s inspect for a deeper inspection.
と出たら設定を忘れてないか確認し、あととりあえず再起動してみる。
このエラーで悩んでいたが、何回か再起動したらいつの間にか動くようになった
sudo snap alias microk8s.kubectl kubectl
エイリアス
クラスターの作成
どれか一台で
sudo microk8s add-node
をすると他のnodeをjoinさせるコマンドが出てくる
というわけで他の2台をjoinさせる
microcephのインストール
なんかよくわからんけど
sudo modprobe rbd
sudo sh -c "echo 'rbd' >> /etc/modules-load.d/modules.conf"
sudo snap install microceph --channel=latest/edge
1台目の設定
sudo microceph cluster bootstrap
sudo microceph cluster add <node2>
sudo microceph cluster add <node3>
2,3台目の設定
sudo microceph cluster join <pasted-output-from-node1>
ここから共通
sudo microceph disk add --wipe /dev/nvme0n1
全部やったら
sudo microceph status
MicroCeph deployment summary:
- node1 (192.168.0.x)
Services: mds, mgr, mon, osd
Disks: 1
- node2 (192.168.0.y)
Services: mds, mgr, mon, osd
Disks: 1
- node3 (192.168.0.z)
Services: mds, mgr, mon, osd
Disks: 1
よし
Connect MicroCeph to MicroK8s
sudo microk8s enable rook-ceph
sudo microk8s connect-external-ceph
Successfully imported external Ceph cluster. You can now use the following storageclass
to provision PersistentVolumes using Ceph CSI:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
ceph-rbd rook-ceph.rbd.csi.ceph.com Delete Immediate true 47s
完了
色々な設定
microk8s enable dns:1.1.1.1
何に使おう...