2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Raspberry Pi5でmicrok8sとrook/ceph (microceph)

Last updated at Posted at 2024-04-15

正直言ってあまり安定していない、困った

機材

  • 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用とデータ用を用意

105EB2A5-A17F-4413-86E1-6F4B29C97A3A_1_105_c.jpeg

Ubuntu 23.10のインストール

Ubuntuは23.10以降でRaspberry Pi5に対応している
24.04にしたかったところだが現時点ではまだリリースされていないのでこちらを採用
sudo apt upgradeをかけると安定する
Raspberry Pi OSはrook/cephがうまく動かなかった

Raspberry Pi OS – Raspberry Piで書き込み
この時二つのファイルに追記する

config.txt
dtparam=pciex1
dtparam=pciex1_gen=3 #お試し
usb_max_current_enable=1 #電源がPi5専用のものでない場合
cmdline.txt
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

基本的にうまく動かない
ubuntu@canonical:~$ sudo microceph cluster bootstrap Error: Post "http://control.socket/cluster/control": context deadline exceeded · Issue #219 · canonical/microceph · GitHub

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

何に使おう...

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?