おうちk8sが乗っているラズパイのストレージを拡張する

スポンサーリンク
Uncategorized

はじめに

おうちk8sはラズパイ上で動いています。

k8s環境ではデータも扱いますし、CI/CDのパイプライン上で扱うDocker imageはラズパイ上に出力がされます。

そうしていくと、データがどんどん増えていくのでラズパイ上では賄いきれなくなります。

そこで、usbメモリを接続し、ストレージを拡張します。

実装

まずは、usbメモリを買ってきて、ラズパイに挿します。

usbがささっているかどうか確認します。

$ sudo fdisk -l
・・・略・・・
Device     Boot Start       End   Sectors  Size Id Type
/dev/sda1  *       63 488642111 488642049  233G  b W95 FAT32

マウントするフォルダを作成します。

$ sudo mkdir /media/usb1

指定したパーティションを ext4 形式でフォーマット(初期化)するコマンドを実行します。

難しい事はいいから簡単に言うと/dev/sda1 を Linux 用の空のディスクとして作り直すコマンドを実行します。

$ sudo mkfs.ext4 /dev/sda1
mke2fs 1.47.0 (5-Feb-2023)
/dev/sda1 contains a vfat file system labelled 'KIOXIA'
Proceed anyway? (y,N) y

マウントします。

$ sudo mount /dev/sda1 /media/usb1

まずdockerは止めておきます。

$ sudo systemctl stop docker

dockerのファイル群をマウント先のフォルダに移動させます。

$ sudo mkdir /media/usb1/docker
$ sudo cp -ar /var/lib/docker /media/usb1/docker

Dockerイメージの格納場所を変えていきます。参考は以下のサイトを参考にさせていただきました。

参考: https://zenn.dev/karaage0703/articles/46195947629c35

「/lib/systemd/system/docker.service」ファイルの以下のハイライト箇所を編集します。

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -data-root /media/usb1/docker/docker/
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=0
RestartSec=2
Restart=always

マウント先のディレクトリを指定するようにしています。

最後にdockerを起動します。

$ sudo systemctl daemon-reload
$ sudo systemctl start docker

最後に

これで当分はDockerイメージの容量に困らなくなりました。

ホッと一息。

タイトルとURLをコピーしました