🌟

おうちKubernetesをはじめる(半HA編)

2024/05/12に公開

概要

下記では、ラズパイ3台でコントロールプレーン・ワーカーを含むクラスタを構築しました。

次のステップとして、ラズパイ3台でコントロールプレーンを構成する半HA(High availability) おうちKubernetesクラスター構築に取り組みます。

ワーカーについてはx86(amd64)のPCを1台を使用します。
Kubernetesのクラスター構築方法を理解する上では、ラズパイ3台での構築は非常に有効であると感じましたが、
実際になんらかのアプリケーションをデプロイすることを試していくとなると、公開されているDockerイメージの数の上で、より多くのアプリケーションを使用することができるx86アーキのマシンをワーカーとして使用することが有効であると思います。
(もちろんKubernetesをラズパイ/ARMで使用することが目的であればラズパイで問題ないと思います。)

本来ワーカーノードには最低3台必要ですが、今回の構成では1台設けることで半HA構成とします。
半HA構成とは言っても、今後このままワーカーノードを増やしていくことができますので、構築方法としては本来のHA構成と同等となります。
今後、できればワーカーノードを増やしたいと考えています。

なお、HA構成に対してはコントロールプレーンのノードを選択的に使用するため、ロードバランサー(load balancer:LB)が必要となります。

全体構成

今回構築するのは下記のような構成となります。
ユーザーは ロードバランサー(192.168.1.100:6443) にアクセスする(kubectrlを実行する)ことになります。

3台のラズパイと1台のPC、OpenWrtをインストールした1台のルーターを使用します。

  • 192.168.1.100 OpenWrt (BUFFALO WZR-1750DHP)
  • 192.168.1.201 k8s-ctrl1 (RaspberryPi 4B 8GB RAM)
  • 192.168.1.202 k8s-ctrl2 (RaspberryPi 4B 8GB RAM)
  • 192.168.1.203 k8s-ctrl3 (RaspberryPi 4B 8GB RAM)
  • 192.168.1.211 k8s-worker1 (ASUS Chromebox3 i7-8550U 16GB RAM, 256GB NVMe SSD)

ソフトウェアのバージョン

  • Ubuntu 22.04
  • Kubernetes v1.29 (v1.29.4-2.1)
  • Calico v3.27.0

詳細

詳細は下記の通りです。

おわりに

今回、3台のラズパイと1台のPC、OpenWrtをインストールした1台の小型ルーターを用いて、半HA(High availability) おうちKubernetesクラスターの構築ができました。

HAを実現する上で考えられる構成は様々であり、構成を考える上でロードバランサー等を理解することやハードウェアの準備など、それなりに時間がかかりましたが、これらを通じてKubernetesに対する理解が深まったと感じています。

また、今回、技術のキャッチアッププロセスとして「3台のラズパイによるクラスター構築」 → 「3台のラズパイ + 1台のPC + 小型ルーター によるクラスター構築」の順で おうちKubernetesを構築を進める方法についてまとめることができたと考えています。

続き

おうちKubernetesをはじめる(HA編) に続きます。

Discussion