Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜...
Search
mazrean
September 03, 2026
Programming
250
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
160
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
370
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
610
Go Proposal Weekly Digestの作り方 / Go Connect #11
mazrean
0
290
WebComponentとSSGで作る 個人開発Webフロントエンド / TechTalk #69
mazrean
0
230
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
760
GC25 Recap: The Code You Reviewed is Not the Code You Built / #newt_gophercon_tour
mazrean
0
620
社会人になっても趣味開発を続けたい! / traPavilion
mazrean
1
580
KessokuのDIにおけるgoroutineスケジューリング / golang.tokyo #41
mazrean
0
690
Other Decks in Programming
See All in Programming
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
320
App Intentsのビルドプロセスを支える技術
kntkymt
0
430
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
2
300
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
910
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
220
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
750
速習iPhone Duo対応
yuukiw00w
1
710
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
0
160
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
460
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1k
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
0
1.8k
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
560
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
515
110k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Become a Pro
speakerdeck
PRO
31
6.3k
Are puppies a ranking factor?
jonoalderson
2
3.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Balancing Empowerment & Direction
lara
6
1.3k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
410
The SEO identity crisis: Don't let AI make you average
varn
0
560
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
The browser strikes back
jonoalderson
0
1.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
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