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
93
「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
450
Visual Studio Codeとコンテナでいい感じのRe:View執筆環境
ryusa
1
1.3k
JavaScriptと歩くポリシーエンジン jsPolicy
ryusa
1
490
TextAlive App APIと夢見る新しいUX
ryusa
1
290
Gitlab Operatorと夢見るGitlab自動化の旅
ryusa
2
870
AccessPoint Operator on Raspberry Pi
ryusa
1
1k
Serviceをたずねて3000行 - Kubernetesコードリーディングの旅 -
ryusa
2
700
そのAPIはセキュアですか?
ryusa
2
750
「〇〇完全に理解したったww」から始めるエンジニア生活
ryusa
2
4k
Other Decks in Technology
See All in Technology
大規模ドラレコデータ収集・機械学習基盤を支える AWS CDK 〜導入・運用事例紹介〜
pemugi
0
110
Amazon FSx for NetApp ONTAPのパフォーマンスチューニング要素をまとめてみた #cm_odyssey #devio2024
non97
0
220
VPoEの視点から見た、ヘンリーがサーバーサイドKotlinを使う理由 / Why Server-side Kotlin 2024
cho0o0
1
420
スレットハンティングについて知っておきたいこと
hacket
0
130
開発生産性をむしろ向上させる セキュリティパートナーの作り方 / Dev Productivity Con 2024
flatt_security
0
360
Azure OpenAI Service Dev Day / LLMでできる!使える!生成AIエージェント
masahiro_nishimi
3
750
20240725 LLMによるDXのビジョンと、今何からやるべきか @Azure OpenAI Service Dev Day
nrryuya
3
1.2k
サービスの持続的な成長と技術負債について
siva_official
PRO
10
4.4k
Github Actions 로 Android 팀의 효율성 극대화
hadonghyun
0
160
ソフトウェアエンジニアリングの知見を活かして データ基盤をいい感じにする on Snowflake [MIERUNE BBQ #10]
mtpooh
2
150
LLMアプリケーションの評価の実践と課題 ~PharmaXにおける今後の展望~
pharma_x_tech
2
160
AIエージェントを現場に導入する目線とは
masahiro_nishimi
1
1.5k
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
37
2.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
25
6.7k
No one is an island. Learnings from fostering a developers community.
thoeni
17
2.8k
Build your cross-platform service in a week with App Engine
jlugia
227
17k
The Straight Up "How To Draw Better" Workshop
denniskardys
229
130k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
2.9k
Raft: Consensus for Rubyists
vanstee
134
6.5k
4 Signs Your Business is Dying
shpigford
178
21k
From Idea to $5000 a Month in 5 Months
shpigford
377
46k
Ruby is Unlike a Banana
tanoku
96
10k
Building Applications with DynamoDB
mza
89
5.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
652
58k
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
完全に理解した (なにもわからなくなった)
おしまい