おうちでk3sを使ってk8sを構築する

こんにちは、ナナオです。 今日は家でk8sを構築した際のことを書いていこうと思います。 経緯 最近、よくハードオフ巡り(通称: ハドフ巡り)をしています。 というのも、ジャンクPCが好きなんですよね。 手ごろな価格のPCを見つけては、意味もなくUbuntu載せたりメモリ乗せ換えたりして、動かすようにするのが楽しいんです。 ただ、サーバーは増えてるのですが肝心の何に使うかっていうのが決まってないんですよね。(何のために増やしてんねん!) ということで、最近家で動かしておきたいサービスも増えたので(これとか)、この機会に家にk8sのノードを構築していこうと思います。 実装 まずは家にサーバーを建てます。 今回はジャンクで買ってきたPCを三台ほど使います。 デスク下に配置したPC。汚くてすみません。。 OSはUbuntu Server24.04を入れて、ssh接続できるところまでは確認済みです。 ここにk8sディストリビューションとして(k3s)[https://k3s.io/]を導入します。 k3sはとにかく軽量なk8sディストリビューションで、また導入コストも低いということでこれにしました。 また、可用性を考慮してコントロールプレーンを複数台構築して、ワーカーノードは後付けするようにしました。 まずは一台目に以下のコマンドを実行します。 手順はこちらのドキュメントを参照します。 curl -sfL https://get.k3s.io | sh - 構築出来たら早速システムのポッドを確認してみましょう。 $ kubectl get pod --namespace kube-system WARN[0000] Unable to read /etc/rancher/k3s/k3s.yaml, please start server with --write-kubeconfig-mode or --write-kubeconfig-group to modify kube config permissions error: error loading config file "/etc/rancher/k3s/k3s.yaml": open /etc/rancher/k3s/k3s.yaml: permission denied あら、権限エラーが出力されました。 ということで、sudoをつけて再度トライすると… $ sudo kubectl get pod --namespace kube-system NAME READY STATUS RESTARTS AGE coredns-7f496c8d7d-cdzf8 1/1 Running 0 8m32s helm-install-traefik-5ptvv 0/1 Completed 0 8m31s helm-install-traefik-crd-rdkbj 0/1 Completed 0 8m32s local-path-provisioner-578895bd58-6ntrr 1/1 Running 0 8m32s metrics-server-7b9c9c4b9c-brdnd 1/1 Running 0 8m32s svclb-traefik-74f79865-phf72 2/2 Running 0 8m28s traefik-6f5f87584-gqqvf 1/1 Running 0 8m13s ということで無事出力されました。 ...

2026年1月10日 · にあえん