Skip to main content

第03章:ローカルで“擬似マルチノード”クラスタを作る🏗️🖥️☸️

この章でやるのはシンプルです👇 1台のWindows PCの中に「ノードが複数あるKubernetesクラスタ」を作って、ノード一覧を見て、Podをばら撒いて“分散してる感”を目で確認します👀✨

ちなみに本日時点のKubernetes最新は v1.35.1(2026-02-10) です。(Kubernetes) (ローカル学習ツール側は、内部で使うK8sバージョンが少しズレることがあるので“ズレる前提”でOK👌)


ゴール🎯✅

次の3つができたら勝ちです🏆

  1. kind または minikubeノード3台(control-plane 1 + worker 2) のクラスタを作れる
  2. kubectl get nodes でノードが複数見える
  3. 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分)

  1. 3ノードクラスタを作る(kind推奨)
  2. nginxreplicas=9 にする
  3. kubectl get pods -o wide を眺めて、Podが複数ノードに散ってるのをスクショ📸
  4. 最後に削除🧹(kind delete / minikube delete)

次の章(第4章)では、このクラスタに対して kubectlの基本コマンド10連発をやって、「困ったらコレ!」の型を作っていきます⌨️🧰✨