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
「L3以下は魔法で動いている!」と言いながらiptablesとkube-proxyを読んでみた話
Search
RyuSA
December 22, 2020
Technology
1
100
「L3以下は魔法で動いている!」と言いながらiptablesとkube-proxyを読んでみた話
社内LTでKubernetesのServiceを少し深堀した話を再編
RyuSA
December 22, 2020
Tweet
Share
More Decks by RyuSA
See All by RyuSA
Java屋だってOperatorが作りたい!
ryusa
1
470
Visual Studio Codeとコンテナでいい感じのRe:View執筆環境
ryusa
1
1.4k
JavaScriptと歩くポリシーエンジン jsPolicy
ryusa
1
500
TextAlive App APIと夢見る新しいUX
ryusa
1
310
Gitlab Operatorと夢見るGitlab自動化の旅
ryusa
2
900
AccessPoint Operator on Raspberry Pi
ryusa
1
1k
Serviceをたずねて3000行 - Kubernetesコードリーディングの旅 -
ryusa
2
740
そのAPIはセキュアですか?
ryusa
2
760
「〇〇完全に理解したったww」から始めるエンジニア生活
ryusa
2
4.1k
Other Decks in Technology
See All in Technology
Covariance, Contravariance & Diamond
alexdaubois
1
110
巨大企業でDX革新を起こすということ BTCONJP 2024
yamaken66
0
160
RDS for Db2 データ移行編 - Part2:S3経由のバックアップ・リストアでデータ移行 /20241011-RDSforDb2-dojo
mayumihirano
0
140
不要なリソースを自動で定期的に整理する方法 ~Sandboxアカウントのコストを削減しよう!~
amixedcolor
4
220
Amplify Gen 2ではじめる 生成AIアプリ開発入門
tsukuboshi
0
390
俺とVSCode Python Debugger Extension
sat
PRO
1
140
Japan AWS Jr. Championsがお届けする、アウトプットのすすめ
hamijay_cloud
0
190
CData Virtuality 日本ローンチイベントのKeynote
cdataj
0
430
太田博三(@usagisan2020)
otanet
0
140
ReSTIRの数理と実装 (rtcamp10)
yumcyawiz
1
450
Cosmos DB で持続可能な RAG を実現しよう!~ AOAI Dev Day ふりかえりを添えて / Sustainable RAG with Cosmos DB with recap AOAI Dev Day
miyake
0
170
Grafana エコシステムの活用事例 on ABEMA
tetsuya28
5
710
Featured
See All Featured
A designer walks into a library…
pauljervisheath
202
24k
[RailsConf 2023] Rails as a piece of cake
palkan
49
4.8k
Embracing the Ebb and Flow
colly
84
4.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
Docker and Python
trallard
40
3k
Optimizing for Happiness
mojombo
375
69k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
7.6k
GitHub's CSS Performance
jonrohan
1030
450k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
22k
GraphQLの誤解/rethinking-graphql
sonatard
65
9.9k
Transcript
と言いながら iptablesと kube-proxyを読んでみた話 L3以下は魔法で動いている!!!
本日のおはなし
Service なにもわからない
知っていること - Serviceはkube-proxyが深くかかわっている - Serviceはデフォルトでiptablesを使っているらしい - L3以下は魔法で動いている 知らないこと - iptablesの使いどころさん
- kube-proxyが何をしている?
実際に見てみる
(DeploymentとServiceを作成) Podを3つとSvcを作成
Workerノードのiptablesを眺める
iptables わからん \(^o^)/ 我、アプリ(?)の人間ぞ??
None
送信元192.168.0.0/16 から 送信先10.109.35.24/32 宛の TCPを転送しているっぽい?
送信元192.168.0.0/16 から 送信先10.109.35.24/32 宛の TCPを転送しているっぽい? nginxサービスのIPアドレス Kubeadmで設定したPodSubnet
None
確率で3つの場所に転送している……?
None
転送の最終宛先は各PodのIPアドレス
TCP発射 ↓ SvcのIPアドレス着弾 ↓ 確率(静的)分散 ↓ DNAT ↓ (魔法が発動する) ↓
PodのIPアドレスに転送
完全に理解した (なにもわかっていない)
ということでkube-proxy読んできた
None
None
更新処理
None
eventhandlers?
None
iptablesのProxiser
None
同期している?
None
どこかで初期化されているはず
None
これが走る
None
それっぽくない?
None
確率計算とレコード追加 Endpoint一覧をforで回す PodへのDNAT
完全に理解した (なにもわからなくなった)
おしまい