$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kindに頼らない!おうちで構築するマルチマスターKubernetes Cluster
Search
tessy
December 02, 2025
0
98
Kindに頼らない!おうちで構築する マルチマスターKubernetes Cluster
tessy
December 02, 2025
Tweet
Share
More Decks by tessy
See All by tessy
ALBがついに対応したmTLS認証でトラストストア、パススルーを検証してみた
tessy
1
3.7k
Cloudflareで取得したドメインをRoute53+ACMで管理する
tessy
1
310
EC2 AutoScalingでスケーリングポリシー設定を失敗してうまく行かなった件とその対策
tessy
0
860
TerraformでEC2 Auto Scaling構築してみた
tessy
4
1.1k
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
KATA
mclloyd
PRO
32
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Done Done
chrislema
186
16k
Making Projects Easy
brettharned
120
6.5k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
Site-Speed That Sticks
csswizardry
13
990
We Have a Design System, Now What?
morganepeng
54
7.9k
4 Signs Your Business is Dying
shpigford
186
22k
Transcript
Kindに頼らない!おうちで構築する マルチマスターKubernetes Cluster 日本IBM 手嶋 達也 2025/12/02 Kubernetes Novice Tokyo
#39
自己紹介 名前 :手嶋 達也 所属 :日本IBM X :@tterima 出生地 :広島県
得意 :AWS, Terraform, Ansible Infrastructure Architectとして従事 Platform Engineering、SREなどに興味あり Kubernetesはプロダクション利用経験ありません。 自宅ラボにProxmox, Raspberry PIを導入しKubernetes載せて遊んでいます。
Kubernetes キャッチアップ したい
Kubernetesについ て調べよう
まずはクラスタの 構築から調査
Kubernetesクラスタ を構築する手段が複 数あるらしい
Kubernetesクラスタを構築する手段 マネージドサービス 自前で構築 Amazon Elastic Kubernetes Service Google Kubernetes Engine
Azure Kubernetes Service Kind minikube k3s 簡単 難しい 構築難易度 まずはKindから 触ってみる
Kindについて Kind = Kubernetes in Dockerの略 ✓Docker(Podman)を利用して、 Kubernetesクラスタを簡易に構築可能 ✓ホストマシンは1台構成のみサポート →Kubernetes自体のテスト用に開発
とりあえず触りたいならおすすめ ❯ cat kind-config.yaml kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane extraPortMappings: - containerPort: 30080 # nginx hostPort: 8080 - containerPort: 30432 # postgresql hostPort: 5432 - role: control-plane …. - role: worker extraMounts: - containerPath: /postgres hostPath: ./postgresql/data WorkerNode kind create cluster MasterNode MasterNode https://kind.sigs.k8s.io/
簡単!だけど構築の 学習にならない。。 そうだ。kubeadmで 構築しよう
kubeadmについて ✓kubernetes クラスタを構築するためのファストパスを提供 ✓複数ホストでクラスタを構成可能 ✓ただし、ホストマシンに対して様々な設定が必要なため構築が大変 ✓Productionでも利用できるはず https://github.com/kubernetes/kubeadm https://www.raspberrypi.com/products/raspberry-pi-5/ https://www.minisforum.jp/products/minisforum-nab6 ✓
せっかくなので、物理ホスト使いたい! ✓ Raspeberry PI購入 ✓ 仮想ホスト(Proxmox)専用マシンも欲しい! ✓ MinisForum NAB9購入 これを 受けて よくある流れだと思います
Kubernetes Cluster Kubeadmを利用したクラスタ構築 以下の構成で構築します MasterNode WorkerNode WorkerNode MasterNode MasterNode Nginx
k8s bastion kubectl API通信、podへの通信
Kubeadmを利用したクラスタ構築 – 最初のMasterNode 最初のMasterNodeを構築し、追加のNodeを参加させる 以下の対応を行う。 • kubeadmのインストール • kubeletのインストール •
コンテナランタイムのインストール • IPv4フォワーディングの有効化等 MasterNode
Kubernetes Cluster Kubeadmを利用したクラスタ構築 – 追加のNode kubeadm token createコマンドで MasterNode, WorkerNodeをクラスタに
参加させる kubeadm token create --print-join-command MasterNode 必要なNodeの数だけ参加させる WorkerNode MasterNode
Kubernetes Cluster Kubeadmを利用したクラスタ構築 – 追加のNode kubeadm token createコマンドで MasterNode, WorkerNodeをクラスタに
参加させる kubeadm token create --print-join-command MasterNode 必要なNodeの数だけ参加させる WorkerNode MasterNode
Kubeadmを利用したクラスタ構築 – APIエンドポイントのマルチ対応 MasterNodeはマルチになりましたが、Kubernetes APIを発行するエンド ポイントが最初のMasterにのみ通信するようになっていますので、これを 修正します。 Kubernetes Cluster MasterNode
WorkerNode WorkerNode MasterNode MasterNode Nginx K8s bastion kubectl API通信 podへの通信
Kubeadmを利用したクラスタ構築 – APIエンドポイントのマルチ対応 /etc/kubernetes/kubelet.confにAPIエンドポイントの設定があるため、今 回はこれをNginx宛に修正します。 cat /etc/kubernetes/kubelet.conf apiVersion: v1 clusters:
- cluster: certificate-authority-data: ... server: https://最初のmaster:6443 name: default-cluster cat /etc/kubernetes/kubelet.conf apiVersion: v1 clusters: - cluster: certificate-authority-data: ... server: https://Nginx:6443 name: default-cluster
Kubeadmを利用したクラスタ構築 – APIエンドポイントのマルチ対応 これでAPIエンドポイントがマルチマスター対応になりました。 Kubernetes Cluster MasterNode WorkerNode WorkerNode MasterNode
MasterNode Nginx k8s bastion kubectl API通信、podへの通信
Kubeadmを利用したクラスタ構築 – 踏み台サーバの設定 あとは、マルチマスターなクラスタに対して、kubectlを発行するための踏 み台サーバ(k8s-bastion)を構築して完了です。 Kubernetes Cluster MasterNode WorkerNode WorkerNode
MasterNode MasterNode Nginx k8s bastion kubectl API通信、podへの通信
まとめ kubeadmを利用したマルチマスターClusterを構築することで、Kubernetes で構成されている内部コンポーネントを少し理解することが出来た。 構築中は色々と苦労したが、この苦労が糧になると信じています。 APIエンドポイント等はkubeadmで構築しないと意識出来ないポイントだな と思いました。 今後はこのクラスタに対して、監視/CICDなどを追加して遊びたいと思いま す。