Indigo VPS上に個人開発用のk8sクラスターを構築する
kubeadmがとても便利
概要
WebARENA Indigo でVPSを2台借りて、 個人開発用のk8sクラスターを構築したので、その手順をメモとして残します。
k8sクラスターの構築は下記2つの公式ドキュメントを参考に進めました。
ドキュメントに記載のある手順を最終的にはスクリプトにしています。
(本ブログ公開時点では自動構築スクリプトとして活用可能ですが、
k8sまわりのアップデートにより動かなくなる可能性が高いと思います)
k8sクラスターについて
- Masterノード 1台, Workerノード 1台の計2台構成
- 個人開発なのでお金の節約のために冗長構成は取っていません
- サーバーOSは Ubuntu 22.04
- k8sのバージョンは v1.27.1
- CNIはFlannelを使用
Indigo VPS固有の内容
Swapの無効化は不要
k8sを構築するサーバーに関して、公式ドキュメントに以下の記載があります。
Swapがオフであること。kubeletが正常に動作するためにはswapは必ずオフでなければなりません。
Indigo VPSではデフォルトでSwapが無効になっているのでこの手順は不要です。
ファイアウォール
インバウンドに対してのみ制限を設けます。
公式ドキュメントに公開しないといけないポート情報が記載されているので、こちらを参照して必要なポートだけ開けます。
公開しないといけないポート情報
ufwについては特になにもしていません。
このままでは手元のPCからSSHができなくなりますが、そこはTailscaleで解決しています。
Tailscaleのインストールはスクリプト内で行っています。
スクリプト
下記リポジトリに置いています。
以下のとおり実行すれば、k8sクラスターが構築されます。
- Masterノード:
setup_common.sh
→setup-master.sh
の順で実行- 注意:
setup-master.sh
の<Master node IP>
部分はMasterノードのIPアドレスに置き換える必要あり- advertise addressの変更に使用(僕はTailscaleが払い出すIPにしたかったので)
- 注意:
- Workerノード:
setup_common.sh
を実行後にkubeadm join