第03章:ローカルで“擬似マルチノード”クラスタを作る🏗️🖥️☸️
この章でやるのはシンプルです👇 1台のWindows PCの中に「ノードが複数あるKubernetesクラスタ」を作って、ノード一覧を見て、Podをばら撒いて“分散してる感”を目で確認します👀✨
ちなみに本日時点のKubernetes最新は v1.35.1(2026-02-10) です。(Kubernetes) (ローカル学習ツール側は、内部で使うK8sバージョンが少しズレることがあるので“ズレる前提”でOK👌)
ゴール🎯✅
次の3つができたら勝ちです🏆
- kind または minikube で ノード3台(control-plane 1 + worker 2) のクラスタを作れる
kubectl get nodesでノードが複数見える- Podを増やして
kubectl get pods -o wideを見ると Podが複数ノードに分散しているのが分かる
まず選ぶ:kind と minikube どっち?🤔🧭
kind(おすすめ)🐳⚡
- ノードが Dockerコンテナとして作られるので軽い✨ (GitHub)
- “擬似マルチノード”が作りやすい
- 現行の kind v0.31.0 は Kubernetes 1.35.0 をデフォルトにしてます(GitHub)(最新版K8sに近いのが嬉しい)
minikube(機能いろいろ)⛏️🧰
- ローカルK8sの定番。Windowsでも winget で入れられる (minikube)
- マルチノードも公式チュートリアルあり (minikube)
- ただしマルチノード時は ボリューム周りに注意点がある(後述)(minikube)
迷ったら:とりあえず kind → 余裕が出たら minikube も触る、が楽です😄👍
kubectl だけ先に入れておく🧪⌨️
Kubernetesを触る“リモコン”が kubectl です🎮
kubectlはクラスタと「±1マイナーバージョン」範囲で合わせるのが安全ってルールがあります(例:v1.35のkubectlは v1.34~v1.36 のcontrol planeと会話できる)(Kubernetes)
ルートA:kindで擬似マルチノードを作る🐳🏗️(推し)
A-1) kind をインストール🧩
- kindは v0.31.0 が最新リリースとして案内されています(GitHub)
- Windowsではいくつか入れ方があります(wingetや手動など)
例:wingetで入る環境ならこれが楽です👇(※Windows標準のパッケージ管理)
winget install -e --id Kubernetes.kind
(wingetでのkind配布自体は環境差があるので、うまくいかなければ「GitHub Releasesからkind.exeを置く」ルートに切替でOKです🔁)
インストールできたか確認👇
kind version
kubectl version --client
A-2) 3ノード構成の設定ファイルを作る🧾✨
kind は設定ファイルでノード構成を書けます(公式ドキュメントに設定例あり)(kind.sigs.k8s.io)
VS Codeで kind-3nodes.yaml を作って👇
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
A-3) クラスタ作成!🚀
kind create cluster --name k3 --config kind-3nodes.yaml
ノードが3つ見えたら成功🎉
kubectl get nodes -o wide
ここで「おぉ…ノードが複数ある…」を味わってください😆✨
A-4) Podをばら撒いて“分散”を確認👀📦
まず適当なDeploymentを作って👇
kubectl create deployment demo-web --image=nginx:stable
レプリカを増やして👇
kubectl scale deployment demo-web --replicas=6
どのノードに載ったかを見る👇
kubectl get pods -o wide
同じノードに偏ることもあるけど、何度か増減したり作り直したりすると分散が見えます🔁🙂 (「スケジューラが空いてる場所に置く」って感覚を掴めればOK👌)
A-5) お片付け🧹
kind delete cluster --name k3
ルートB:minikubeで擬似マルチノードを作る⛏️🏗️
B-1) minikube をインストール📦
minikube最新は v1.38.0(2026-01-28) と案内されています(minikube)
Windowsは winget で入れられます(minikube)
winget install Kubernetes.minikube
B-2) Dockerドライバでマルチノード起動🐳
minikubeはDockerドライバがあります(要件の説明あり)(minikube)
minikube start -p mk3 --driver=docker --nodes=3
確認👇
kubectl get nodes -o wide
B-3) 注意点⚠️(マルチノード時のVolume)
minikubeの公式チュートリアルに 「デフォルトのhost-path provisionerはマルチノードをサポートしない」 という注意が明記されています(minikube) この章ではまず「ノード/Pod/分散」が目的なので、Volumeは深追いしなくてOKです🙆♂️ (Volumeは後の章で“ちゃんとしたやり方”をやると気持ちいいです🧠✨)
B-4) お片付け🧹
minikube delete -p mk3
つまづきポイント集🆘😵💫(最短で復帰するやつ)
1) kubectl が違うクラスタを見てるっぽい🤨
コンテキスト一覧を見る👇
kubectl config get-contexts
kindなら(例)👇
kubectl config use-context kind-k3
minikubeなら(例)👇
kubectl config use-context mk3
2) ノードが増えない/起動が重い🐌
- ノード増やす=PCリソースを追加で食います🍚💻
--nodes=3がキツかったら、まず--nodes=2でもOK🙆♂️
3) minikubeのDockerドライバ関連で詰まる🐳🔧
Dockerドライバの要件と注意がまとまってます(WSL利用時の注意も含む)(minikube) 困ったらログを出して、AIに貼ると復帰が速いです🤖✨
AIで楽するコツ🤖✨(この章専用)
- kindのYAMLを貼って: 「control-plane 1 + worker 2 になってる?余計な設定ない?初心者向けに改善して」
kubectl get pods -o wideの結果を貼って: 「どのノードに偏ってる?なぜ起きる?次に試す操作を3つ」- エラー全文を貼って: 「原因候補を3つ→確認コマンド→直し方 の順で出して」
“AIの回答をそのまま信じる”じゃなく、コマンドを自分で打って確かめるのが最強です💪😄
章末ミニ演習🎓🧪(10分)
- 3ノードクラスタを作る(kind推奨)
nginxをreplicas=9にするkubectl get pods -o wideを眺めて、Podが複数ノードに散ってるのをスクショ📸- 最後に削除🧹(kind delete / minikube delete)
次の章(第4章)では、このクラスタに対して kubectlの基本コマンド10連発をやって、「困ったらコレ!」の型を作っていきます⌨️🧰✨