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
SRE Book Club - Kubernetes - ch32-35 - Network
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Rico Chen
August 15, 2019
Programming
72
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SRE Book Club - Kubernetes - ch32-35 - Network
Kubernetes CNI solutions
Rico Chen
August 15, 2019
More Decks by Rico Chen
See All by Rico Chen
How to monitor Cosmos validator by Prometheus
ricotoothless
0
650
how-to-choose-cicd-tools.pdf
ricotoothless
0
130
SRE Book Club - Linux - ch45 - Where's socket buffer
ricotoothless
0
190
SRE Book Club - Linux - ch38 - tcpdump & Wireshark
ricotoothless
0
66
COSCUP - Dynamic Jenkins Agent on Kubernetes
ricotoothless
0
66
Taiwan CDK Meetup - Rookie operator's CDK journey
ricotoothless
0
260
DevOps Taiwan 2020 Workshop - Jenkins CICD
ricotoothless
0
100
SRE Book Club - Kubernetes - ch22 - Job & CronJob
ricotoothless
0
47
Other Decks in Programming
See All in Programming
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
440
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
2.7k
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
350
Foundation Models frameworkで画像分析
ryodeveloper
1
210
霧の中の代数的エフェクト
funnyycat
1
450
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
280
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
500
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
130
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
160
Google Apps Script で Ruby を動かす
kawahara
0
120
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
790
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
200
Featured
See All Featured
Thoughts on Productivity
jonyablonski
76
5.3k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
190
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
sira's awesome portfolio website redesign presentation
elsirapls
0
310
Fireside Chat
paigeccino
42
4k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
190
Transcript
CH 32~35 Kubernetes 容器器網路路
Overview • OSI Model & TCP/IP Model • Layer 2
- Data Link Layer • Layer 3 - Network Layer • Layer 4 - Transport Layer • Tunnel • Flannel • Calico
OSI Model vs TCP/IP Model
Data Encapsulation Data_De-encapsulation
Layer 2 - Data Link Layer HUB Bridge Switch Router
Collision Domain 1 4 4 4 Broadcast Domain 1 1 1 4
MAC Address • ⽤用在 2 層的地址 • 只要是網卡都有 MAC address
,包括 Switch 和 Router 上 所有的網卡 • Bridge & Switch 會慢慢學習並且建⽴立 MAC Address Table (本質上就是 database),下⼀一次就知道要發送到哪個 port ,不不像 HUB ⼀一直無腦發送給整個 LAN • Layer 2 Header 裡⾯面重要的資訊有 Destination MAC Address & Source MAC Address
Layer 3 - Network Layer • 常⾒見見的 Protocol 有 IP
、ICMP 、DHCP 、 ARP (也有⼈人 分類類在 Layer 2.5 ) • Router 在運作時基本上 AND 運算不不會算完整的 IP Address ,只會算到 Subnet Mask 的地⽅方。 (例例如: 10.55.123.55/16 Router 在轉發時只會看到 10.55.0.0/16)
ARP • 全名為 Address Resolution Protocol , 有個稱號為「無名英雄」 • 把
IP Address 解析為 MAC Address 的 Protocol • 流程 1. 先查找⾃自⼰己 PC 的 ARP table 是否有存在 IP & MAC 對應的紀錄錄 2. 針對⽬目的 IP 發出 ARP 廣播封包 3. ⽬目的 IP (有可能是網路路設備或⼀一般 PC )回應 ARP reply 封包 (內含 MAC 解答) 4. 當收到⽬目的 MAC 後才會正式送出 ping or http 封包給接受端
Router 扮演的⻆角⾊色 ? 10.3.1.23
Layer 4 - Transport Layer • 網路路的世界沒有 100 % 的送達率,你的包⼀一定會掉,所以
依據 Application 層的特性決定要使⽤用 UDP or TCP • UDP 會盡量量送達封包,但沒有確認送達的機制,好處是 Header 輕量量且快 • TCP 在 Header 裡有 Flags 讓三向交握開啟 Connection , 確保封包即使掉了了也會重傳。 ( 修改 Flags 也是駭客常⾒見見 的⼿手法)
Tunnel • VPN Tunnel mode 讓遠端辦公室的連線就像在區域網路路互 通⼀一樣。( 兩端的 IP 都是
private IP ) • VXLAN 為 VLAN 的進階版本,VLAN 最多只能切 4096 個 ,但為了了對應 Datacenter 需要切更更多的 VLAN , VXLAN 最多可以切到 16777216 個 VXLAN( 2 的 24 次 ⽅方)。
VPN Tunnel • 原本⼀一般的封包往前塞加密的 Header 與 Outer IP Header •
加密資訊是兩邊的 Router 事先設定好的 • VPN 的封包在 Internet 傳遞時,Internet 上的 Router 只會 看 Outer IP Header 的 IP 資訊來來增加傳遞速度。
VPN Tunnel data IP MAC data IP data IP Outer
IP data IP MAC
VXLAN Tunnel • 傳統 VLAN 的做法其實已經在⼀一般的封包中間硬塞⼀一段 Header ( IEEE 802.1Q
) • VXLAN 因為要有 Tunnel 的功能,所以 Header 往前塞
VXLAN Tunnel
VXLAN Tunnel
Flannel VXLAN Question • ⽬目的 VTEP Device 的 MAC Address
是什什麼,ARP 不不像 VXLAN Protocol ⼀一樣可以跨網段。 因為 flanneld 在 Node 2 建⽴立 process 的時候,會⾃自動新 增 ARP 記錄錄到其他 Node 1 上。 • 課堂中的 VXLAN 例例⼦子沒那麼好,因為沒有跨網段。
Flannel VXLAN packet S-IP: 10.244.0.2 D-IP: 10.244.1.3 S-MAC:10.244.0.2 D-MAC:10.244.0.1 #
route -n Destination Gateway Iface 0.0.0.0 10.244.0.1 eth0 10.244.0.0 0.0.0.0 eth0 $route -n Destination Gateway Iface 0.0.0.0 10.168.0.254 eth0 10.244.0.0 0.0.0.0 cni0 10.244.1.0 10.244.1.0 flannel.1 S-MAC:10.244.0.2 D-MAC: S-MAC:10.244.0.2 D-MAC:10.244.1.0 VNI: 1 UDP port: 8285 S-IP: 10.168.0.2 D-IP: 10.168.0.3 S-MAC:10.168.0.2 D-MAC:10.168.0.3 $route -n Destination Gateway Iface 0.0.0.0 10.168.0.254 eth0 10.244.0.0 0.0.0.0 cni0 10.244.1.0 10.244.1.0 flannel.1 $route -n Destination Gateway Iface 0.0.0.0 10.168.0.254 eth0 10.244.1.0 0.0.0.0 cni0 10.244.0.0 10.244.0.0 flannel.1 S-MAC:10.244.0.2 D-MAC: S-MAC:10.244.0.2 D-MAC:10.244.1.1
Flannel Host-gw Question • 如何取得 routing table ? 網段和 node
的資訊都在 etcd 上,從 kubeadm join 時把資 訊就寫在 etcd 上了了, Flanneld 會⼀一直 WATCH etcd 上的 內容。 • 為什什麼 Host-gw 沒辦法跨網段? 因為沒有往前塞 Header 無法騙過 network device 。如果 有不不同網段的封包會被 switch 送到 router ,router 沒有對 應的 routing 規則的話會 drop 掉封包。
Flannel Host-gw packet S-IP: 10.244.0.2 D-IP: 10.244.1.3 S-MAC:10.244.0.2 D-MAC:10.244.0.1 S-MAC:10.244.0.2
D-MAC: S-MAC:10.244.0.2 D-MAC: 10.168.0.3
Calico BGP Question • 如何取得 routing table ? 跟 Flannel
最⼤大的不不同是使⽤用 BGP 取得 routing 資訊,並 且把資訊寫到 Felix 裡,然後 Felix 會把 routing table 寫到 Linux Kernel 裡。 • 為什什麼 Calico BGP mode 沒有辦法跨網段? 其運作原理理跟 Flannel Host-gw ⼀一樣。 因為沒有往前塞 Header 無法騙過 network device 。如果 有不不同網段的封包會被 switch 送到 router ,router 沒有對 應的 routing 規則的話會 drop 掉封包。
Calico BGP murmur • 通常 router 直接串串 PC 是很浪費且罕⾒見見的事情,雖然是虛 擬的
network device,但 Calico BGP 做了了這個罕⾒見見的示 範。
Calico BGP packet
Calico IPIP Question • 為什什麼 Calico IPIP mode 沒那麼盛⾏行行? 同常來來說,⼀一個
network device 需要特定的功能必須去設 定 enable ,就像⼀一開始的 router 沒有 enable OSPF, NAT or VPN 就什什麼功能都沒有。 問題就在管理理,有些組織即使是維運單位也不不⼀一定有權限 可以設定 network device enable BGP ,更更何況公有雲。
Calico IPIP Packet • Calico IPIP mode 也有採⽤用 Tunnel (硬是要往前塞
Header)的技術,讓沿路路上的 router 看到的都是不不同的網 段,再搭配 BGP 得到不不同網段之間的 routing table 就可以 正常的送封包了了。
Calico IPIP packet
Reference • https://bit.ly/2ZaaW4L • https://bit.ly/2Z0RWkW • https://bit.ly/2MRCXrk • https://bit.ly/2Z1oBqS •
https://bit.ly/2YQ8264