MENU

Kubernetes Cluster on Ubuntu 24.04

目次

Kubernetes Cluster を Ubuntu 24.04に入れていく

とはいっても、今回の目的はKubernetesのMaster(コントロールプレーン)と、GPUを有するWorkerNodeを追加すること。
なので、
  • Master Nodeは1台だけ。Mac miniをこれに充てる。
  • Worker NodeはGPU搭載のメインPCをブート選択で。
WorkerNodeは普段使っている自分のPCを、(別にWindowsのままでもいいだろうが)別のSSDにUbuntuをインストールして、Ubuntuを起動したときのみ有効となるNodeとしたい。
GPUを必要とするPODをNodeSelector(だったっけ?)でWorker Nodeを指定して起動できればいいなと(そもそも今はGPU付きの1台しかないわけだが)
一番信頼できるインストールガイドはもちろんここ。
ポイントになりそうなのは swapをオフにすること。まあこのご時世swapファイルにお世話になるのは負けなので、ここくらいですかね。

1.Master NodeとWorker Nodeが名前解決できるように

丁寧にノード名やIPまでサンプルでつけてくれているサイトがあるからそちらを参考にw
というか、そんなに難しい話ではない。全部のノードが名前解決しあうことができて、実アドレスで通信できればいい。
個人の環境ならF/Wで通信制限かかっていることもないでしょう。
/etc/hostsに全ノード登録しておこう。

2.SwapをOFFに

とりあえずはこんな感じだろうか。
$ sudo swapoff -a
あとは適当に、/etc/fstab からもswap関連を削除しておいたほうがよいみたい。

3.Containerd Runtimeを入れる

ちょっと苦戦したので、外部の情報を参考に。
そもそも後続でで使用するcurlとかgnupg2とかをどさっと。
$ sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates
$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
そして、Dockerのレポジトリを対象に加えているというそんな感じでしょうね。

$ sudo apt update
$ sudo apt install -y containerd.io

これで普通に containerdがインストールされるはずです。

4.Kubernetesのレポジトリも追加する

apt listをかけてみたけど、Ubuntu 24.04にはKubernetes関連はなさそう。
つまり、kubectlとかkubeadmとかが入れられない。
ここでは最新が、v1.30になるので、以下のようにKubernetes Repositoryを追加するとよいみたい。
$ curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
$ echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
参考にさせていただいたサイトさん、ありがとうございます
ここまで行くと、apt update & apt listでKubernetes関連が引っかかるようになりますので。
apt install で kubelet kubeadm kubectlを入れたら 終了。

5.kubeadmを実行してMaster Nodeにする

ここからはすごく簡単で、
$ sudo kubeadm init --control-plane-endpoint=<マスターノードにしたいノード名>
とするだけだけど、RFC1123への準拠が厳密なので注意。自分は途中に大文字が入っていたためノード名をつけなおしました。
うまくいけば大事な情報を表示してくれます。

なので、上記の指示通りに実行。

これで
 kubectl get nodes
でもしてあげれば、

無事に起動しましたね。

NotReadyなのは、仮想ネットワークを入れていないから。
これはさっきのkubeadmの実行結果でも、
ってちゃんと言われている。
あとで、flannelないしはCalicoをいれないといけません。
いったんはここまで。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次