目次
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台しかないわけだが)
一番信頼できるインストールガイドはもちろんここ。
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の実行結果でも、
コメント