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
96
「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
460
Visual Studio Codeとコンテナでいい感じのRe:View執筆環境
ryusa
1
1.3k
JavaScriptと歩くポリシーエンジン jsPolicy
ryusa
1
490
TextAlive App APIと夢見る新しいUX
ryusa
1
300
Gitlab Operatorと夢見るGitlab自動化の旅
ryusa
2
880
AccessPoint Operator on Raspberry Pi
ryusa
1
1k
Serviceをたずねて3000行 - Kubernetesコードリーディングの旅 -
ryusa
2
720
そのAPIはセキュアですか?
ryusa
2
750
「〇〇完全に理解したったww」から始めるエンジニア生活
ryusa
2
4k
Other Decks in Technology
See All in Technology
手軽に始める? おうちサーバーのすゝめ
nyagasan
0
180
エンジニア向け会社紹介資料
caddi_eng
15
250k
Dify - LINE Bot連携 考え方と実用テクニック
uezo
5
1.1k
FastlyとfalcoでNode.jsレスな Webサーバー構築 : IPTV版 ABEMAアプリインフラ刷新 / Building web server using Fastly and falco without Node.js for IPTV ABEMA app
nodaguti
0
240
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
2
130
バックログを導入し やっぱやめた話
ota42y
0
170
Envoy External AuthZとgRPC Extensionを利用した「頑張らない」Microservices認証認可基盤
andoshin11
0
140
リクルートのデータマネジメント組織に 求められてきたコト
recruitengineers
PRO
4
340
標準最高!標準はださくないぞ! at fukuoka.ts #1
yoiwamoto
0
150
すぐに始めるAWSコスト削減。短期でできる改善策と長期的な運用負荷軽減への取り組み方を解説
ncdc
1
120
contenteditableと向き合う
kikuchikakeru
2
140
リクルート新人研修2024 テキスト生成AI活用
recruitengineers
PRO
10
420
Featured
See All Featured
Unsuck your backbone
ammeep
667
57k
Music & Morning Musume
bryan
46
6k
Making Projects Easy
brettharned
113
5.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
58k
5 minutes of I Can Smell Your CMS
philhawksworth
201
19k
Building Applications with DynamoDB
mza
89
5.9k
[RailsConf 2023] Rails as a piece of cake
palkan
44
4.6k
GraphQLの誤解/rethinking-graphql
sonatard
65
9.7k
Optimising Largest Contentful Paint
csswizardry
28
2.7k
A designer walks into a library…
pauljervisheath
201
24k
Done Done
chrislema
180
16k
The Language of Interfaces
destraynor
153
23k
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
完全に理解した (なにもわからなくなった)
おしまい