
【Raspberry pi 3 model Bでk3sクラスターを作る】①Raspberry pi 3にCentos7をインストールするの続編です。今度はCentos7を入れたRaspberry piにk3sをインストールしてクラスターを構築します。
k3sはk8sを軽量にしメモリ512MBで動いてしまうディストリビューションです。詳しいことはここでは解説しません。
今回作る構成
Master Node 1台(hostname:rpks3master1.ark.io)
Worker Node 2台(hostname:rpks3node2.ark.io,rpks3node1.ark.io)
のお手軽Raspberry pi k3sクラスターです🤖
Master Nodeの構築
hostnameを変更します。
# hostnamectl set-hostname rpks3master1.ark.io
hostsファイルに各NodeのIPを対応づけます。
# vi /etc/hosts
127.0.0.1 rpks3master1.ark.io localhost.localdomain localhost
192.168.11.11 rpks3master1.ark.io
192.168.11.12 rpks3node1.ark.io
192.168.11.13 rpks3node2.ark.io
firewalldをstopしておきます。
# systemctl stop firewalld
# systemctl disable firewalld
k3sをインストールします。現在のstableのv0.10.2はRaspberry pi 3でインストールに失敗します[0]。それなのでk3sでインストール可能なバージョンに指定します。
[0]参考:https://github.com/rancher/k3s/issues/970
# curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v0.11.0-alpha2 sh -
Runningになっていることを確認します。
# systemctl status k3s
Worker Nodeを追加するときに使うtokenを確認します。
# cat /var/lib/rancher/k3s/server/node-token
これでmasterの準備は整いました。
Worker Nodeの構築
Masterと同様にhostnameを変更し、hostsファイルを編集してください。
firewalldをstopしておきます。
# systemctl stop firewalld
# systemctl disable firewalld
k3sをインストールします。
# curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v0.11.0-alpha2 sh -
この状態だとmasterとして稼働している状態なので、Worker(agent)として稼働させるために一旦k3sのプロセスをキールします。
# k3s-killall.sh
Workerを起動させます。Masterで確認したtokenをここで使います。<your_token>を確認したtokenに差し替えてください。
nohupを使うことでssh接続を解除したあともWorkerとして動かすことができます。
# nohup k3s agent -s https://rpks3master1.ark.io:6443 -t <your_token> > /dev/null 2>&1 &
Workerが動き出したことを確認します。
# systemctl status k3s
Master側でも確認します。
# kubectl get node
NAME STATUS ROLES AGE VERSION
rpks3node2.ark.io Ready <none> 20h v1.16.2-k3s.1
rpks3master1.ark.io Ready master 20h v1.16.2-k3s.1
rpks3node1.ark.io Ready <none> 20h v1.16.2-k3s.1
全部ReadyになってればOKです😎
Workerの追加に失敗した場合は、Masterのk3sもアンインストールしてまっさらな状態から再チャレンジしてください。そうしないと、k3sのバグ?でいつまでたってもうまくいきません😱
次はk9sとよばれるkubernetesをコントロールしやすくなるインターフェースをインストールしてみようと思います!