This commit is contained in:
+29
-18
@@ -14,27 +14,38 @@
|
|||||||
|
|
||||||
*Cilium — сетевая подсистема Kubernetes, отвечает за связь между подами на разных нодах. Geneve — протокол туннелирования, который Cilium использует чтобы «обернуть» обычный сетевой пакет для передачи через физическую сеть между серверами.*
|
*Cilium — сетевая подсистема Kubernetes, отвечает за связь между подами на разных нодах. Geneve — протокол туннелирования, который Cilium использует чтобы «обернуть» обычный сетевой пакет для передачи через физическую сеть между серверами.*
|
||||||
|
|
||||||
```
|
```mermaid
|
||||||
ПОД А ПОД Б
|
block-beta
|
||||||
┌──────────┐ ┌──────────┐
|
columns 1
|
||||||
│ packet │ │ packet │
|
|
||||||
│ 1450 B │ │ 1450 B │
|
|
||||||
└────┬─────┘ └────┬─────┘
|
|
||||||
│ │
|
|
||||||
┌────▼─────┐ ┌────▼─────┐
|
|
||||||
│ Geneve │ ──── underlay ────► │ Geneve │
|
|
||||||
│ +50 B │ реальный 1450 │ +50 B │
|
|
||||||
└────┬─────┘ └────┬─────┘
|
|
||||||
│ │
|
|
||||||
┌────▼─────┐ ┌────▼─────┐
|
|
||||||
│ 1500 B │ ✗ не влазит в 1450 │ 1500 B │
|
|
||||||
└──────────┘ └──────────┘
|
|
||||||
|
|
||||||
Ожидание Cilium: underlay = 1500
|
block:pods
|
||||||
Реальность: underlay = 1450 ← провайдер дал меньше
|
columns 2
|
||||||
Разница в 50 байт → пакет не проходит → TCP stall 51с
|
a["Под А\nпакет 1450 B"]
|
||||||
|
b["Под Б\nпакет 1450 B"]
|
||||||
|
end
|
||||||
|
|
||||||
|
space
|
||||||
|
|
||||||
|
block:tunnel
|
||||||
|
columns 2
|
||||||
|
g1["Geneve +50 B\n= 1500 B"]
|
||||||
|
g2["Geneve +50 B\n= 1500 B"]
|
||||||
|
end
|
||||||
|
|
||||||
|
a --> g1
|
||||||
|
b --> g2
|
||||||
|
g1 -- "underlay 1450 ✗" --> g2
|
||||||
|
|
||||||
|
style a fill:#e8f5e9
|
||||||
|
style b fill:#e8f5e9
|
||||||
|
style g1 fill:#ffebee
|
||||||
|
style g2 fill:#ffebee
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> Ожидание Cilium: underlay = **1500**
|
||||||
|
> Реальность: underlay = **1450** ← провайдер дал меньше
|
||||||
|
> Разница **50 байт** → пакет не влазит → TCP stall **51 секунда**
|
||||||
|
|
||||||
- Cilium соединяет ноды через **Geneve-туннель**
|
- Cilium соединяет ноды через **Geneve-туннель**
|
||||||
- Geneve добавляет к каждому пакету **+50 байт** заголовков (Ethernet 14 + IP 20 + UDP 8 + Geneve 8)
|
- Geneve добавляет к каждому пакету **+50 байт** заголовков (Ethernet 14 + IP 20 + UDP 8 + Geneve 8)
|
||||||
- Cilium ожидает что underlay (физический канал между нодами) = **1500 байт**
|
- Cilium ожидает что underlay (физический канал между нодами) = **1500 байт**
|
||||||
|
|||||||
Reference in New Issue
Block a user