ラズベリーパイでk3sクラスタを作ってみた


Rancher Labsの k3s を使ってラズペリーパイでクラスタを作ってみました。

材料

材料 個数
Raspberry Pi 3 B +マザーボード 3個
積層式ケース for Raspberry Pi 専用 1個
microSDカード32GB 3個
Rampow Micro USBケーブル 2個
ロジテック スイッチングハブ 5ポート 1個
エレコム LANケーブル 0.3m 3個
両面テープ(分厚くて剥がせるやつがオススメ) 1個
マジック結束バンド 1個
アクリル円盤 80 1個
OWL-ACU6C12S-BK 1個
Ansibleステッカー(プライスレス) 1枚

k3sクラスタ構築手順

全ノードでfirewalld/SELinuxは無効化しています。

環境

各バージョン

項目 バージョン 備考
Fedora 29
k3s v1.14.1-k3s.4
Helm 2.13.1
Mac High Sierra 操作端末

登場人物

ホスト名 役割
k3s-master masterノード
k3s-node01 workerノード
k3s-node02 workerノード

OSインストール

Micro SDカードをPC(ここではMac)に挿してフォーマットします。
まずは、Micro SDカードがどのデバイスかを確認します。

ここでは /dev/disk4 にマウントされていたので、それを指定しています。
環境に合わせてマウントされたデバイスを指定してください。

FedoraのARM用のイメージをダウンロードします。
イメージは以下からダウンロードできます。

イメージをダウンロードしたら以下のコマンドでMicro SDへ書き込みます。

書き込みが完了したらアンマウントします。

後は、Micro SDカードをラズパイに挿入して起動します。
起動後にIPやホスト名を設定します。

また、以下のコマンドを実行してディスク容量を拡張します。

k3sセットアップ

全てのホストに以下のhostsを設定しています。

masterセットアップ

必要なパッケージをインストールします。

masterで必要なモジュールをロードします。

ルーティング設定をします。

master側にk3sをインストールします。

masterのk3sユニットファイルを修正します。

masterのロールを設定します。

全てのpodが起動するまで待ちます。

Helm tillerをデプロイします。
今回はARMなのでイメージは以下のリポジトリのものを使用します。

k3sコマンドをworkerノードにコピーいします。

workerセットアップ

2台のworkerに同じ手順でセットアップします。

ルーティング設定をします。

masterノードでクラスタに参加するためのtokenを確認します。

workerノードでagent起動用ユニットファイルを作成します。

ユニットファイルで読み込む変数ファイルを作成します。

項目 説明
SERVER k3sのmasterノードへのアクセスURL
TOKEN クラスタへ参加するためのtoken

k3sのagentを起動します。

masterノード側でworkerノードがクラスタに参加できたか確認します。

ロール設定

workerノードのロールを設定します。

これで、ラズパイ上にk3sのクラスタが構築できました 🙂

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください