[構築] Rock5B + Armbian(noble) で作るkubernetesクラスタ (4)

前記事の続き。前記事ではとりあえあず1台構築したけどクラスタ化するには複数構築しないといけなくて、個別に作るのが面倒だったのでAnsible化してしまおうという話。


とりあえず雑にAnsible化した

各ノードのMACアドレスを調べ、DHCPサーバ側にてMACアドレス指定でアドレスを固定し、ネームサーバにも同じ名前を書いたうえでplaybookを実行する想定。

このプレイブックを使うには以下のようにcloneしてinventories/hostsを各環境にあわせて修正する必要がある。

git clone https://github.com/oji-san-note/k8s-on-rock5b-using-ansible
cd k8s-on-rock5b-using-ansible
vim inventories/hosts

おぢさん宅内では offline.to というドメインを使っているためインベントリの中はドメインごと埋まっているので、必要に応じて書き換えてほしい。

自宅でネームサーバなんか立ち上げてねーよって人は /etc/hosts に書いて対応してもいいんじゃないかと。同じように自宅にアドレス固定できるようなDHCPサーバなんかねーよって人は適宜hostsファイルを書き換えてほしい。

構成

前回までの記事では全部Rock5Bでやろうと思って書いてたんだけど、急遽マスターノードはRaspberry Pi 4にしようと思い立って追加している。

もちろんRPi4用のOSもarmbianを使うので過去記事に書いた方法でビルドしている。

別にRock5Bのうち1台をマスターにしてもよかったんだけど、手元に余っていたので気分で追加した。ので、構成は以下のような感じ。

  • マスターノード(Raspberry Pi 4B 8G)

    • m240

  • ワーカーノード(Rock5B 16G)

    • n230

    • n231

    • n232

    • n233

    • n234

playbookの概要

ざっくり以下のようなことを実行している。

  1. OSの基本設定と基本ソフトウェアインストール

    1. ホスト名、タイムゾーン設定

    2. ethtool,nvme-cli,curl,rsyslogなどのインストール

    3. IPv6の無効化

  2. NVMeの初期化

    1. Rock5Bに取り付けられているNVMeの初期化(データ消去)

  3. kubernetes関連のセットアップ

    1. swap無効化

    2. カーネルモジュール/パラメータ設定

    3. nftablesからiptablesへの切り替え

    4. kubernetes関連apt repo追加

    5. kubernetes関連ソフトウェアインストール]

    6. rsyslogの設定

基本的にアドレスやDNSサーバはDHCP任せの想定なので、各ノードのIPアドレス設定などはやっていない。どんな事しているか詳細が知りたい人は中身を確認してもらえるといいかも。

あとこのplaybookを実行してどんな結果になってもおぢさんは責任とれませんので悪しからず。

実行

実行はそんなに難しいことはなく以下の通り。

cd k8s-on-rock5b-using-ansible
ansible-playbook -K --private-key ~/.ssh/ops_ecdsa -i inventories/ playbooks/setup/basesetup.yml

private-keyとして指定するのはOSイメージを作成する時に生成したopsユーザ用のssh秘密鍵。実行後に入力を求められるパスワードはopsユーザのパスワード。

1点だけ注意してほしいのはRock5Bに取り付けられているNVMeは問答無用で初期化されること。初期化されたくない場合は --skip-tags init_nvme を追加して実行するとNVMeの初期化をskipできるはず。

一度playbook流した後に再度実行したやつだけど、playbookのcloneからドライランを経て実行する動画を公開しておく。セットアップ済のホストに対して実行しているのでchangedが少なくほとんどok表示になってしまっているのはユルシテ。

次回はいよいよkubernetes自体の設定に入っていくつもり。さてちゃんと構築できるかなー?

いいなと思ったら応援しよう!