背景
GPTで小さいRESTサービスなんて作り放題な時代になりました
「無尽蔵に出来るREST管理といえば、難し気で避けてたkubernetesじゃないだろうか
kindならWSL2内のdocker-ceにするっと入るじゃないか」
この記事は、そんなkindとの出会い後、いきなり洗礼を受けた人の失敗の記録です
同じ勘違いをする少数派の同士に捧げます
環境
- Windows 11 Pro for Workstations 23H2
- WSL 2.3.26.0
- ubuntu 24.04.1 LTS (Windowsストア版)
- Docker version 27.3.1, build ce12230
kind 公式通りに進める
- kind展開後、公式の先頭から素直に進めていきます
> kind create cluster
> kind get clusters #名前省略時のデフォルト クラスター名はkind
kind #kindという名前のクラスターが出来ている
> kind delete cluster
kindコマンドでkindクラスターを操作するなんて、手順を残したときに、ややこしすぎるから違う名前にしたくなるのが人情ではないでしょうか
> kind create cluster --name kind-2
> kind get clusters
kind2
なるほど。でも、コマンドで直接打っちゃ記録が残らない。設定ファイル(マニュフェストファイル)をgit管理があるべき姿だ くらいは思うのが自然な流れではないでしょうか
--configをつければ設定ファイル(マニュフェストファイル)が指定できるので
>kind create cluster --config=kind-cluster.yaml
と、打てばよくて
あとは、この↓サンプルkind-cluster.yaml に希望クラスタ名を書いておけば良いハズなので
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
サンプルのyamlも、クラスタ名が「Cluster」というヒネリのない名前になってる、、、
これを「kind-2」に書き換えて・・・・・・
はイケません
name: kind-2 を1行追加するのが正解です
KindでKind作ってマニュフェストファイルの種類もKindで指定
少し進むと、そこは DeplymentとかServiceとかマニュフェストファイルの種類を書く場所だと分かるのですが、先入観+謎エラーメッセーに捕らわれると、案外ハマりました
Kind: Cluster の 「kind」は、「kubernetes kindの kind」でなく「中学英語で出てくる 種類の意味の kind」とのことです。せてめて「kinds」にしておいてくれたら個人的には「親切」を感じだのですが、それは先人達の決められたことでございます
この記事が同士に届くことを祈っています
では、よいk8sライフを