ααΆαααΆαααΆαααΆααααααΆαα (βconntrackβ) ααΊααΆαα»αααΆαααααΌααααααααΆαααΊαααααΈαα»α α ααΆα’αα»ααααΆαα±ααααΊαααααΆαααΆαααΆααααΆαααααΆαααααααΆα α¬ααα αΌαα‘αΌααΈαα α αΎααααα ααα»ααααααααα’ααααααααΆααααα ααααααααΆαααΆααα’ααααααααααΎαααΆααα αΌαααΈαα½αα ααΌα αααααα½αααα’αΆα ααααΎαααΆαααΆαα½αααααΆααΆαααααΆαααααααα
Conntrack ααΊααΆαααααααα·αααααΊαααααααααΆαααααααααΌαααΆαααααΎαα αααα»αααααΈααΌαααααΆααα½αα ααα½αα
- NAT ααΉαααα’ααααΎααααααΆαααΈ conntrack ααΌα ααααααΆα’αΆα ααααΆααΆααααα ααααααααΆαααΆααα’ααααΈααααααΈαααΌα ααααΆαααααααΎααΆαααααΆα ααΆα§ααΆα ααα αα ααααααααα αΌαααααΎααααΆαααα Kubernetes α§ααααααααα»αααααα»αααααΌααααΈ kube ααααΎ NAT ααΎααααΈααΉαααΆαα ααΆα ααααα ααΆααααααΆααααΆαααα½ααα αααα»αα αααααα Conntrack αααααααΆααΆαααααΆααααΆααααααΆαααααααΆααααααα±αα αααα ααααααααΆαααΆααα’αααα ααΆααααααΆ IP ααααΌαααααααΌαααΆαααααΎαα ααΆααααααΌα ααααΆ α αΎααααα αααααααααααα‘ααααααααααααααααΆααααααααααΌααα NATed αααα‘αααα αααααααααΎααΆαααα
- αααααΆααααααΎααααααΆαααααΆαααΆαααΌα ααΆ Calico ααΉαααα’ααααΎααααααΆαααΈαααααΆαααααΆαααα ααΆααα ααΆα ααα "ααααΎααα" αααααΈαα αααα’αα»ααααΆαα±ααα’αααααααααααααΆααααααααΆαααααα·ααΆαααΆ "α’αα»ααααΆαα±αα pod αααααααα»αααααΆαααα α’αΆααααααΆα IP ααΈα ααααΆαααΆαα½α" ααααα·αα αΆαααΆα αααααααααααΆαααααΎααααΈα’αα»ααααΆαα±ααα ααΆα αααααααΎααααααΆαα αααΆααα (ααΎααααΆαααΆαα α’αααααΉαααααΌααααααα "α’αα»ααααΆαα±αααααα ααααααααΆααα αααααααααα»αααΈα αααΆαα IP ααΆαα½α" ααααα·αααΌαααΆααα»ααααα·ααΆαα )
ααΎαααΈααα conntrack ααΆααααααΆααααΎα’αααααααΎαα‘αΎαααΌαααααΎαααΆααααααααα (αααααΆαααααααααΆαααααΎααααΆαα CPU αα·α packet latency) α
αΆααααΆααααΈααΆααααααα
ααααααΌααα
αααα»αααααααΈαααα»αααααα
ααααΌαααααααααΆααααααααααΆαααΆααααΌαααΎααααΈαααααααΈα’αααΈαααααααΌαααααΎααΆαα½αααΆα ααΌαααΎααααααΆα "
αααααΆαααΆαααΆααααα Conntrack ααΆαααααααααααααααΆ ...
ααΌα ααααααΎααΆαα»ααααααααΆ?
ααΆααΆα conntrack ααΆαααα αα’αα·ααααΆαααα’αΆα ααααααα ααΆααααααααααΆα α αΎαααααα·αααΎααΆααα ααΆααααααΆααααΆααααααΆα αΆααααααΎαααααΌαααΆαααα·ααα α¬αααααΆααα ααΆαααα αααααααααααααααΆαααααα»αααΆααΆαααΎααααΈαααααααααα ααΆα ααααααααααα·ααΈααΆαα αααΎα α αΎαααΆααΉααα·αααααΆαααΆαααα αΆααα ααααααΆαααΆααααα ααΆαααααΆααΈαααΌαα½αα ααα½ααααα’ααααααα ααααΆα αααα·α αΆαααΆααααΎααΆααΆα conntrackα
- ααααΈααΆααααααααααα»αααΊααααα·αααΎαααΆαααΈαααααααα’ααααααααααααα ααα½αααα αααΎαααααΆααααααΆααααααααααα»ααααααααΆαααααΆα α§ααΆα ααα ααααα·αααΎααΆααΆα conntrack ααααα’αααααααΌαααΆαααααααα ααΆαααααααααααααΆααααΆαα» 128k ααα»ααααα’αααααΆαααΆααααααΆααααααααααΆ > 128k α’αααααααΆααααΆααΉαααΆααααα αΆ!
- ααααΈαα·αααΌαα αααΆααα ααααα·αααΎαααΆαααΈαααααααα’αααααααΎαααΆαα ααα½αααααΆααααααΆααα αααΎαααΆαααααα»ααα½ααα·ααΆααΈα αααααΈααΆααΆααααααΆααααΆαααααααααααΈααααα αααα½αααααααααααΌαααΆααααα½ααα·αα·ααααααααΈαα»α αααααΆαααααααααα½αα ααα½α (120s ααΆαααααΆαααΎα)α α§ααΆα ααα ααααα·αααΎααΆααΆα conntrack ααααα’αααααααΌαααΆαααααααα ααΆαααααααααααααΆααααΆαα» 128k α αΎαα’ααααααα»αααααΆααΆααααααααααααΆααααααΆαα 1100 αααα»ααα½ααα·ααΆααΈ αα½αααααΉαααΎαααΈααα αααααΆααΆα conntrack αααααΈααΆααΆααααααΆααααΆαααααααααααΈααΆαα (128k/120s = 1092 connections/ s)
ααΆααααααααααααα·ααΈαα·αααααΆα αααΎααααααααΆααα αΌααα αααα»αααααααααΆαααααα ααΎαααΈαααααα ααααα·αααΎα’αααααΆααα½α’αααα’αΆαααααααΆα αααΎα ααΆααααααααΆααΆα conntrack αααααααΆαααΈαααααααα’αααααΆαα½αααΉαααΆααααααΆααααΆαααααααΆαααΎαα αα ααΆα αααΎαα’αΆα ααααΌαααΆαααααΎααΆαααααααααΆαααΆααααα αΆαααα·αααααααΆαααα (DOS) α αααα»αβααααΈβααΆααβααΈαβααα conntrack α’αΆα βααααΆαβααΆβααΆαβααΆααααααβαααα»αβααααααααβααααβα’αααα αααα»αααααΈαααα ααΆααααααααΌααααΆαααΆααααααααΆααΆα conntrack α’αΆα αααααααααΆααααΎααααΈαααααααΆααααααΌαααΆαααααα’ααα ααααααααΎαααα α α¬ααΆαααααααααΆαα’ααααα conntrack (ααα»ααααααααα·αααΎα’αααααααΎααΆαα»α α’αααααΉαααΆααααα αΆα αααΎα)α αααααΆααααααΈαααααααα ααΆααΉαα αΆαααΆα ααααα»αααΆαααααααΆαααα»αααΆαααααααΆααα ααΆα αααααααΆαααΆαα
α§ααΆα αααααΆααααααα
ααΌααααααα§ααΆα αααααΆααααΆαααα½αα α’ααααααααααααΆ SaaS αααααα½ααααααΎαααααΎααΆαααΆαα½αααΆααααΆαααΈααα memcached ααΆα αααΎααα ααΎαααΆαααΈα (αα·αααααααΆαααΈααα·αααα·α) αααααΈαα½ααααααΎαααΆαααΆααααααΆααααααααααααΈ 50K+ αααα»ααα½ααα·ααΆααΈα
αα½αααααΆααα·αααααΆαα½αααΆαααααααα ααΆαααααααα conntrack αααααΎαααα αααΆααΆα αα·αααΆααααααααααααααΆααΆαααΆα ααα»ααααααΆαααααααα ααΆααααααααααΊαα·αα’αΆα αα»αα α·αααααΆα ααΆαααααΎααααΆαα RAM ααΎαα‘αΎααααΆαααααΆαα αααααΆαααα αΆ (ααΆαααααΆαααα GBytes!) α αΎαααΆααααααΆααααΊααααΈααΆααααα conntrack αα·αααΆα αααααΎαα’αααααααααααααααΎαααΆαααααααΆααααααΆ (ααΆαααααααααΆαααααΎααααΆαααααΈααΈααΌ α¬ααΆαααΊααααααα ααααααααΆα)α
αα½αααααΆαααΆααα Calico ααΆαααααΎααα½αα αααααΆααααααααΆα Calico α’αα»ααααΆαα±ααα’ααααα·αααααΎ conntrack αααααΆαααααααααα½αα ααα½αααα ααΆα ααα (αααααααΎαααααΎααααααΆααα doNotTrack) α ααααααααα±αααα½αααααΌαααααα·αααααΆαα’αα»ααααααααα½αααααααΌαααΆα ααΌαααΉαααααα·ααα»ααααα·ααΆαααααααααααααααααα Calico α
ααΎβα’αααβααΉαβααααΌαβαα βαααβααααΌαβααααβααΆααβαααβαααβααα»ααααΆα?
- αααααΆααααααααΆα Do-not-track ααΆααΌαα αα½ααααααΈααααααΈα αααα»αααααΈα’ααααααααααααΆ SaaSα αααααα·ααΈαααααα½αααααααΎαααΆααα αααα»ααααααααΆαααΆα ααΌα ααααα αΎα αααααααΎαααααΆααααααααΆα αα½αααα’αΆα ααΆαααααααΈαα ααΆα αααααΈαααααα·ααΈααΆααααΆαααααααααααααααααΌαααΆαα’αα»ααααΆαα±ααα αΌαααααΎ memcached α
- αααααΆααα do-not-track αα·ααα·αααΈαα·ααα ααααΆααααααΆααααα ααΌα αααα ααααα·αααΎαααΆαααΈααα memcached ααααΌαααΆααα½α α αΌα α’αααααΆαααααΉααααΈα’αΆα ααααΆααΆαααααΆαααα α’αα·αα·αα memcached ααΆαα½α αααΆαααΆααΆααααΎα ααααααααααααΉαααααΌαα ααααααΆαααΆααααα ααααα·αααΎα’αααααΆαααααααααΆαααααΉαααααΌαααΌααααααΆααααααααΆααααααΆααα’αα·αα·αα memcached ααααα’ααα αααααΆαααααΆααΆαααααΆααααΆαααααααΉααα ααααααΌαααΆαα αααΆαα αααα ααααααααΆαααΈααααααα
- αααααΆααα do-not-track ααααΌαααΆαα’αα»ααααα ααααααΆαααααα ααααααααΆα ααααααα»αααΈαααααΆαααααααααΆ αααααααΌαααΆαα’αα»ααααααα αααααααα ααααααααΆαααααΌααα αααα»αααα αΌααα½αα αααα’αΆα αααααΎαααΆαααααΎααααΆαααααΈααΈααΌαααα»ααα½ααααα αα ααααααααααΆαααααααΌαααα’αα»αααααααααΆαααααα ααααααααΆαααΈαα½ααα ααα»αααααααααΆααααΆααααααΆααααααααααααΈ ααΆαα αααΆααααααΆααα»αααααΆααααααΆαααΆαααααααααΆαααααΎααααΆααααααΆααααααΆααααααΎαααΆαααααα α§ααΆα ααα αααα»αααααΈα’ααααααααααααΆ SaaS α ααα½ααααα ααααααααΆααααααΆααααΆααααααΆααααΈαα½ααααΊααΌα ααΆαα ααΌα ααααααΆαααααΎααααΆαααααΈααΈααΌαααααααα αααα’αα»αααααααααΆαααα αααααααα ααααααααΆαααΈαα½ααααΊααααΉαααααΌαα
αααα αΆααααααΎαααΆααααα
ααΎαααΆαααααΎαααΆαααΆαααΆααααααα
ααΎαααααα½αααΆαα½ααααΆαααΈααα memcached αα·α pods αααΆαααΈαααααα memcached ααΆα
αααΎαααααααα»αααααΎαααΆααα
ααΎααααΆααααΈα
ααααΆα ααΌα
ααααααΎαα’αΆα
ααααΎαααΆαααΆααααααΆααααΆα
αααΎααααα»ααα½ααα·ααΆααΈα αααΆαααΈααααααααΆαααααααΆααααααα»ααα·ααααααααΆα 8 ααααΌα αα·αααΆαα» 512k αα
αααα»αααΆααΆα conntrack (ααα αααΆααΆααααααΆαααααααα
ααΆαααααααααααααααΆααααααΆαααααΆαααΈα)α
ααΎαααΆαααΆααααΆααα»αααααΆααααΆαα’αα»αααααααΆαα ααααΆααααααΆααααααααΆαα ααΆαα½αααΉααααααΆααα Calico αααααΆαα; αα·ααααααΆααααα·αααΆαααΆα Calico α
αααααΆααααΆαααααΎαααααααΎαααΈαα½α ααΎααααααα ααα½αααααΆααααααΆαααα 4.000 αααα»ααα½ααα·ααΆααΈ ααΌα ααααααΎαα’αΆα αααααααΎααΆααα»αααααΆααααΆαααααΎααααΆαααααΈααΈααΌα αα·αααΆαααΆααα»αααααΆααααΆαααααΆαααααααααΆα αα·ααααααΆαααααααααΆαα ααα»αααααα»αααΆαααΆαααΆαααΎαα‘αΎαααααΆαααααΎααααΆαααααΈααΈααΌαααα αα 20%α
αα αααα»αααΆαααααΎαααααααΎαααΈααΈα ααΎαααΆαααΎαααααΎαααΆαααΆααααααΆααααΆα αααΎαααΆααααα’αα·αα·ααααααααΎαα’αΆα αααααΎα αα·αααΆααα ααα½αα’αα·ααααΆααααΆααααααΆαααααα»ααα½ααα·ααΆααΈ ααααααΆαααΈααα memcached ααααααΎαα’αΆα αααααααααααΆαα ααΌα αααααΆαααααΉααα»α ααααΈ "ααααΆααααααΆααα" αα·α "αααααΆαααααααααΆ" ααΆααααΈαααΆαααΆααααααααααααααααΆααααααΆααααΎαααΈ 4,000 αααα»ααα½ααα·ααΆααΈ (512k/120s = 4,369 connections/s)α ααΆαα½αααΉααααααΆααααα·αααΆαααΆα α’αα·αα·ααααααααΎαααΆαααααΎααΆααααααΆαα 60,000 αααα»ααα½ααα·ααΆααΈααααα·αααΆααααα αΆα’αααΈα‘αΎαα ααΎαααααΆααααΆααΎαα’αΆα αααααΎαα ααα½αααααααααααααα’αα·αα·ααααααααααα ααα»ααααααΎαααΆαα’αΆααααααααΆα ααα½αααΆαααααααΊαααααααααΆααα αΎαααΎααααΈαααα αΆαααΈα ααα»α ααα’αααααααα!
ααα ααααΈααααα·ααααΆα
Conntrack ααΊααΆαα»αααΆαααΊαααααααααΆαααα½αα ααΆααααααΎααΆαααΆαααααααΆαααααΆαααα’α₯αααα ααα ααΆααααΌαααΆαααααααΎααΆααΉαααΆααααααααΆαααΆαα»ααααααααααααΆαααα αααααΆαααΆαααΆααααα αα αααα»αααααΆααΈαααΌααΆααααΆαααα½αα ααα½α ααΆααααααααααααΆααα conntrack ααΆαααΎαααΈα’αααααααααααααααααΆαααααΆαααααα αα αααα»αααααΆααΈαααΌααα αααααΆααααααααΆα Calico α’αΆα ααααΌαααΆαααααΎααΎααααΈααααΎαααΎααα·αααΆαααααΎααααΆαα conntrack ααααααααααααααΎααα»ααααα·ααΆααααααΆαα αααααΆααα ααΆα αααααααααααααΆααα’αα conntrack ααααααααΎααΆαα·αααααααα’ααα!
ααΌαα’αΆαα’ααααααααααααααα ααΎαααααααααααΎααααααα
ααΆααααΆααααΌαα»αααΆααααααααααΆαα Nginx ααΆαααααΆαα’αααΈααΆαα’αα»ααααΆα Kubernetes αααααα»αααα»α Hashicorp ααΆαααααα»ααα»ααααααΆαααααΆαααΆααα αααα»α Kubernetes ααΆαβααααα»αβαα»αβααβααααααβαααααΆαβαα»αβααααΆβαα½αβα ααα½αβαα Telegram bot αααααΆαα Redmine α αα·ααΈααααΎα±ααααΈαα·αααΆαααααααααΆαααααα½αα’ααα αα·αα’αααααα
ααααα: www.habr.com