Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kindに頼らない!おうちで構築するマルチマスターKubernetes Cluster
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
tessy
December 02, 2025
140
0
Share
Kindに頼らない!おうちで構築する マルチマスターKubernetes Cluster
tessy
December 02, 2025
More Decks by tessy
See All by tessy
ALBがついに対応したmTLS認証でトラストストア、パススルーを検証してみた
tessy
1
3.9k
Cloudflareで取得したドメインをRoute53+ACMで管理する
tessy
1
370
EC2 AutoScalingでスケーリングポリシー設定を失敗してうまく行かなった件とその対策
tessy
0
910
TerraformでEC2 Auto Scaling構築してみた
tessy
4
1.1k
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
340
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
Code Review Best Practice
trishagee
74
20k
Unsuck your backbone
ammeep
672
58k
Prompt Engineering for Job Search
mfonobong
0
260
BBQ
matthewcrist
89
10k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Music & Morning Musume
bryan
47
7.1k
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などを追加して遊びたいと思いま す。