yyh-gl's icon

yyh-gl's Tech Blog

技術ネタ中心のブログです。主な扱いはバックエンド技術と設計です。

1 分で読めます

+++ title = “Indigo VPS上に個人開発用のk8sクラスターを構築する” author = “yyh-gl” categories = [“k8s”, “個人開発”] tags = [“Tech”] date = 2023-05-04T11:20:17+09:00 description = “kubeadmがとても便利” type = “post” draft = false [[images]] src = “img/2023/05/k8s-setup/featured.webp” alt = “featured” stretch = “stretchH” +++

概要

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のインストールはスクリプト内で行っています。

スクリプト

下記リポジトリに置いています。

yyh-gl/k8s-setup

以下のとおり実行すれば、k8sクラスターが構築されます。

  • Masterノード:setup_common.shsetup-master.shの順で実行
    • 注意:setup-master.sh<Master node IP>部分はMasterノードのIPアドレスに置き換える必要あり
      • advertise addressの変更に使用(僕はTailscaleが払い出すIPにしたかったので)
  • Workerノード:setup_common.shを実行後にkubeadm join
  • None

最近の投稿

About

東京で働くソフトウェアエンジニアです。バックエンドがメインですが、フロントエンドやインフラもさわっています。