はじめに
おうち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 dockerdockerのファイル群をマウント先のフォルダに移動させます。
$ sudo mkdir /media/usb1/docker
$ sudo cp -ar /var/lib/docker /media/usb1/dockerDockerイメージの格納場所を変えていきます。参考は以下のサイトを参考にさせていただきました。
参考: 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イメージの容量に困らなくなりました。
ホッと一息。
