背景
おうち kubernetes クラスタ作りたかった。
出先からでも触れるように、1台追加で用意してVPNサーバにすることに。
書いてたら長くなったのでここではラズパイのセットアップのみをまとめる。
用意したもの
項目 | 個数 | 価格(大体) | URL | 用途、備考 |
---|---|---|---|---|
Raspberry Pi modelB (4GB) | 4 | 6,000~10,000 円/個 | - | 1台はVPNサーバ。 品薄すぎるためメルカリとか色んなところから購入してかき集めた。 |
クラスタケース | 1 | 2,099円 | 冷却ファンとヒートシンク付き | 結構熱もつイメージあったので ファンとヒートシンクがセットでついているもの欲しかった。 |
microSD (32GB) | 4 | 990円/個 | サンディスク | OSインストールするので台数分必要 |
USBケーブル(Type-C) | 4 | 999円 | aceyoon ケーブル 4本セット(20cm) | 台数分必要。 あんまり長くなくてたくさん入ってるの欲しかった。 |
microHDMIケーブル | 1 | 599円 | VCE Micro HDMI to HDMI 変換アダプタ オスーメス GoPro | SSHでセットアップするため不要かと思ったが、 SSHに失敗した時ハード故障なのかmicroSDのセットアップ不良なのかを切り分けたくて購入した。結果買ってよかった。 |
sdカードリーダ | 1 | 1,499円 | UGREEN USB-C カードリーダー TF SD 2in1 USB3.0 | - |
USB 急速充電器 | 1 | 2,599円 | Anker PowerPort 5 | 家のものを流用。ラズパイ3台フル稼働にも全く動じていない。 さすがAnker。もう少し小型のやつでもいいかも。 |
大体全部で4万円くらいかな。
自分の資産として残せるものがこの値段で揃えられるのはなかなか嬉しい。
事前準備
2年くらい前にsdカードをセットアップしたときは本家のHPからイメージファイルをダウンロードしてセットアップしたような覚えがあったが、今はRaspberry Pi Imagerなる便利なツールがあるとのことで、インストールしてセットアップした (ツール便利。。!)。
microsdセットアップすると一度マウントから外れるため、もう一度挿し直してssh用のファイルを作成する。
ちなみに、wifiやsshの設定はRaspberry Pi Imagerのインストールオプションからも設定することができる。
これを利用すると以降の手順がかなり簡略化できる(リンク)。
3台のラズパイにはubuntu 20.04.3 LTS(64bit版)
をインストールした。
VPNサーバ用には、ゆくゆくいろんな情報をダッシュボードとして表示したい夢があったのでraspberrypie(desktop)をインストールした。
ssh接続後、パスワードの変更を求められた(ubuntuの初期パスワードはubuntu
)。
|
|
sshするためのIPアドレスを確認する
|
|
ラズパイセットアップ
ubuntuのセットアップ手順。raspberrypie(desktop)も大体同じ。
以降はモニターに接続して作業する。
日本語キーボードの設定
キーボードがUSになっていてやりづらいので、日本語キーボードに対応させる。
参考(Ubuntuで日本語キーボードレイアウトに変更する方法)
|
|
コンソールにウィザードが表示される。順番に選択する。
Generic 105-key PC (init1.)
Japanese
Japanese
The default for the keyboard layout
No compose key
選択後、setupcon
コマンドを実行すると日本語キーボードでストレスなく文字入力できるようになる。
パッケージ最新化
色々パッケージインストールする前に最新化する
|
|
bluetooth機器と接続する
自前のワイヤレスキーボードにペアリングする。
|
|
うまくいくと “Connection successful” が表示され、ワイヤレスデバイスが使えるようになる
wifiの設定
/etc/netplan/50-cloud-init.yaml
を編集してwifiの接続設定を行う。
|
|
修正したけど50-cloud-init.yaml
は人が修正するのは良くないらしい。(【Ubuntu】 /etc/netplan/50-cloud-init.yamlを編集するの止めろ)
Ubuntu 20.04 LTSで固定IPアドレスの設定を参考に、/etc/netplan/99_config.yaml
を修正する(50-cloud-init.yaml
の設定は元に戻す)。
IPアドレスはラズパイごとにそれぞれ別々の値で設定する。
|
|
修正後、適用してwifiの接続状況を確認する
|
|
作業用に新しいユーザを払い出す。
|
|
作成したユーザをデフォルトユーザ(ubuntu)と同じグループに所属させる。
|
|
初期ユーザubuntu
を無効化する(sshの設定してから)
|
|
SSHの設定
ラズパイでsshの設定(/etc/ssh/sshd_config
)を修正する
|
|
公開鍵認証でアクセスできるように設定する。
鍵の生成。パスフレーズの設定は行わず、ecdsaで作成した。
|
|
ラズパイに接続するクライアントの~/.ssh/config
に接続設定を追加する。
Host kube 192.168.13.11
HostName 192.168.13.11
User ${username}
Port ${portNumber}
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/${ssh_key_filename}
ホスト名変更
ホスト名を変更する。他で設定する予定の名前も追加しておく。
$ sudo hostnamectl set-hostname k8s-master
$ sudo vi /etc/hosts
127.0.1.1 k8s-master
192.168.13.11 k8s-master
192.168.13.12 k8s-node1
192.168.13.13 k8s-node2
不要パッケージ削除
|
|
TimeZoneの設定
sudo timedatectl set-timezone Asia/Tokyo
詰まったこと
Raspberry Pi OS (Desktop) のGUIでBluetoothエラーが出る
デスクトップ上でキーボードをペアリングしたかったが、ペアリングしようとするとエラーになり接続できず。。。
bluetoothctl上では設定可能だったが、ラズパイを再起動すると挙動がおかしくなり、接続したbluetooth端末をremove -> 再接続 しないと接続できなかった。
パッケージリストを更新してアップグレード後再起動したらGUI上でペアリングできるようになった。
|
|
つぶやき
購入したうち1台に初期不良があり(microSDの読み込み部に問題がありそう)、値段もまぁまぁするので頑張ってたら当初の予定よりかなりかかってしまった。正規の代理店から購入した商品だったので、ダメ元で連絡してみたら交換してくれた。
ほとんど全てのラズパイをセットアップした段階で気づいたのだが、Raspberry Pi Imager で command + Shift + x
を同時にクリックするとオプション選択画面が表示され、そこで割と色々設定できて便利だった。
設定できる項目(一部)
- SSH
- wifi
- Timezone
イメージ