社内LTでKubernetesのServiceを少し深堀した話を再編
と言いながらiptablesとkube-proxyを読んでみた話L3以下は魔法で動いている!!!
View Slide
本日のおはなし
Service なにもわからない
知っていること- Serviceはkube-proxyが深くかかわっている- Serviceはデフォルトでiptablesを使っているらしい- L3以下は魔法で動いている知らないこと- iptablesの使いどころさん- kube-proxyが何をしている?
実際に見てみる
(DeploymentとServiceを作成)Podを3つとSvcを作成
Workerノードのiptablesを眺める
iptables わからん\(^o^)/我、アプリ(?)の人間ぞ??
送信元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
確率で3つの場所に転送している……?
転送の最終宛先は各PodのIPアドレス
TCP発射↓SvcのIPアドレス着弾↓確率(静的)分散↓DNAT↓(魔法が発動する)↓PodのIPアドレスに転送
完全に理解した(なにもわかっていない)
ということでkube-proxy読んできた
更新処理
eventhandlers?
iptablesのProxiser
同期している?
どこかで初期化されているはず
これが走る
それっぽくない?
確率計算とレコード追加Endpoint一覧をforで回すPodへのDNAT
完全に理解した(なにもわからなくなった)
おしまい