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
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜...
Search
mazrean
September 03, 2026
Programming
25
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
September 03, 2026
More Decks by mazrean
See All by mazrean
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
92
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
270
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
560
Go Proposal Weekly Digestの作り方 / Go Connect #11
mazrean
0
270
WebComponentとSSGで作る 個人開発Webフロントエンド / TechTalk #69
mazrean
0
200
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
730
GC25 Recap: The Code You Reviewed is Not the Code You Built / #newt_gophercon_tour
mazrean
0
590
社会人になっても趣味開発を続けたい! / traPavilion
mazrean
1
560
KessokuのDIにおけるgoroutineスケジューリング / golang.tokyo #41
mazrean
0
670
Other Decks in Programming
See All in Programming
FastAPI の並行処理モデルを完全に理解する
hoto17296
9
3.4k
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
130
VibeCodingからAgenticWorkflowへ
starfish719
0
1k
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
480
「人を評価する AI」の設計と実装
ryoyanara
0
280
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
270
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
460
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
260
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.3k
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
870
Cloudflare is Agents
chimame
0
190
Featured
See All Featured
Between Models and Reality
mayunak
4
430
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
510
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
850
GitHub's CSS Performance
jonrohan
1033
470k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Chasing Engaging Ingredients in Design
codingconduct
0
290
エンジニアに許された特別な時間の終わり
watany
108
250k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
First, design no harm
axbom
PRO
2
1.3k
The Pragmatic Product Professional
lauravandoore
37
7.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Transcript
新卒N年目の勉強会&交流会!〜〇〇への誘い〜 kubernetes コンポーネント開発入門 @mazrean
マズリーン mazrean ▪ ツール等を作っている • k8sクラスタ構築 kanata • Go言語DIツール Kessoku
▪ SRE @DeNA • 新卒2年目 @mazrean22 2
マズリーン mazrean ▪ ツール等を作っている • k8sクラスタ構築 kanata • Go言語DIツール Kessoku
▪ SRE @DeNA • 新卒2年目 今日はこの話 @mazrean22 3
kubernetes コンテナをクラスタ化 して管理するツール ▪ マシンを跨いだコンテナ管理 ができる ▪ Control Plane・Worker Nodeで構成
クラスタ Control Plane Worker Node コンテナ コンテナ Worker Node コンテナ コンテナ Worker Node コンテナ コンテナ 4
kubernetesの仕組み 複数コンポーネント が連携して動作 ▪ 手動でのクラスタ構築は手間がかかる 5
mazrean/kanata mac上でk8sクラスタ を自動構築 するツール ▪ Apple Containerを用いている ▪ 起動コンテナ分のリソースのみ使用 クラスタ
Control Plane Worker Node Worker Node 6
k8sクラスタ構築入門
k8sクラスタ構築入門
kanataの仕組み kubeletを自作した代替物に置き換えている ▪ コンテナ構築 を行うコンポーネント ▪ virtual-kubeletと呼ばれる方法 自作コンポーネントへ 置き換え 9
k8sクラスタ構築入門 kubelet自作入門
目次 1 開発用クラスタ構築 2 API Serverとの通信方法 3 API Serverとの通信フロー 4
まとめ
開発用クラスタ kubeletのアクセス先Control Planeが必要 ▪ 少なくとも図中4コンポーネントは必須 ▪ できればローカルに欲しい 開発時に必要 12
開発用クラスタ構築方法 既存k8sクラスタ構築ツール に頼るのが手軽 ▪ kanata初期開発時にはkindを使用 • 今はkanata本体で賄っている ▪ 当然kanataを使ってもよい 開発用はkindなどで構築
※実際のkanata内では別方法で構築 13
目次 1 開発用クラスタ構築 2 API Serverとの通信方法 3 API Serverとの通信フロー 4
まとめ
API Serverとの通信 基本kubeletからAPI ServerへHTTPリクエスト ▪ HTTPのREST APIで通信 • mTLSで認証と暗号化を行う •
データ形式はProtoBuf ▪ 例外はある Worker Node Control Plane HTTP(mTLS) ProtoBuf API Server kubelet 15
mTLS クライアントも証明書を持つTLS ▪ 「クライアントが誰か」も証明される ▪ kubeletにも証明書を設定する必要がある • 発行方法などは通常kubeletと同じ 信頼不可 通常TLS
クライアント 信頼可 サーバー 信頼可 mTLS クライアント 信頼可 サーバー 16
目次 1 開発用クラスタ構築 2 API Serverとの通信方法 3 API Serverとの通信フロー 4
まとめ
Pod作成までの通信フロー かなりざっくり説明すると以下 1. Node登録(起動時) • 以降、ハートビートで生きていることを通知 2. Pod割り当て監視 3. Podステータス更新
18
Node登録(起動時) Worker Nodeをクラスタに登録 ▪ Control Planeが存在を認識する必要がある ▪ 登録後、Podが割り当てられるように Worker Node
Control Plane POST /api/v1/nodes Node増えたよ~ API Server kubelet 19
Pod割り当て監視 Podの割り当てを監視する ▪ HTTP/2 streamingで通信 ▪ 通知が来たらPodを構築 Control Plane API
Server GET /api/v1/pods Pod割り当てたら教えて Pod割り当てたよ HTTP/2 streaming Worker Node kubelet 20
Podステータス更新 Podの状態変更を通知する Control Plane API Server PATCH /api/v1/namespaces/<ns>/pods/<name>/status Podの状態変わったよ Worker
Node kubelet 21
まとめ ▪ 簡易kubeletは頑張れば自分で作れる • 意外と仕組み自体はシンプル ▪ 普段使わない技術が色々出てきて面白い ▪ これだけ複雑なものが動くだけで楽しい! https://github.com/mazrean/kanata
22