เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเบฑเบš Calico

เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเบฑเบš Calico

เบ›เบฑเปŠเบเบญเบดเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Calico เบชเบฐเปœเบญเบ‡เบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบซเบผเบฒเบเบซเบผเบฒเบเบ”เป‰เบงเบ syntax เบฎเบงเบกเบเบฑเบ™เป€เบžเบทเปˆเบญเบ›เบปเบเบ›เป‰เบญเบ‡เบฎเบฒเบ”เปเบงเป‚เบฎเบช, เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเป€เปเบทเบญเบ™ เปเบฅเบฐเบžเบญเบ”. เบ™เบฐเป‚เบเบšเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เบณเปƒเบŠเป‰เบžเบฒเบเปƒเบ™ namespace เบซเบผเบทเป€เบ›เบฑเบ™เบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบ™เบณเปƒเบŠเป‰เบเบฑเบš เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบš (เป€เบžเบทเปˆเบญเบ›เบปเบเบ›เป‰เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบเบปเบ‡เปƒเบ™เป‚เบฎเบ” - เป€เบˆเบปเป‰เบฒเบžเบฒเบšเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเบผเบทเป€เบ„เบทเปˆเบญเบ‡ virtual) เบซเบผเบท เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบงเบฝเบ (เป€เบžเบทเปˆเบญเบ›เบปเบเบ›เป‰เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต เบซเบผเบทเป€เบ„เบทเปˆเบญเบ‡ virtual เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš). เบ™เบฐเป‚เบเบšเบฒเบ calico เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบกเบฒเบ”เบ•เบฐเบเบฒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเปƒเบ™เบˆเบธเบ”เบ•เปˆเบฒเบ‡เป†เปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบŠเบฑเปˆเบ™: preDNAT, unracked, เปเบฅเบฐ applyOnForward. เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบŠเปˆเบงเบเบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเปเบฅเบฐเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป‚เบ”เบเบฅเบงเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบญเบฐเบ—เบดเบšเบฒเบเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบฐเป‚เบเบšเบฒเบ Calico เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ (preDNAT, unraracked เปเบฅเบฐ applyOnForward) เบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš endpoints เป€เบˆเบปเป‰เบฒเบžเบฒเบš, เป‚เบ”เบเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™ packet (เบ•เปˆเบญเบ‡เป‚เบชเป‰ iptabels).

เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบ™เบตเป‰โ€‹เบชเบปเบกโ€‹เบกเบธเบ”โ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เปƒเบˆโ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ™เบฐโ€‹เป‚เบโ€‹เบšเบฒเบโ€‹เป€เบ„เบทเบญโ€‹เบ‚เปˆเบฒเบ Kubernetes เปเบฅเบฐ Calico เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹. เบ–เป‰เบฒเบšเปเปˆ, เบžเบงเบเป€เบฎเบปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบฅเบญเบ‡เบกเบฑเบ™ เบเบฒเบ™เบชเบญเบ™เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบžเบทเป‰เบ™เบ–เบฒเบ™ ะธ เบเบฒเบ™เบชเบญเบ™เบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš เปƒเบŠเป‰ Calico เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบญเปˆเบฒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบ„เบฒเบ”เบซเบงเบฑเบ‡เปƒเบซเป‰เบ—เปˆเบฒเบ™เบกเบตเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™ iptables เปƒเบ™ Linux.

Calico เบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบปเปˆเบงเป‚เบฅเบ เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบŠเบธเบ”เบ‚เบญเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบ›เป‰เบฒเบเบŠเบทเปˆ (เบเบฑเบšเบเบธเปˆเบกเบ‚เบญเบ‡ hosts เปเบฅเบฐ workloads / pods). เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบเบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบฅเบฐเบšเบปเบš heterogeneous เบฎเปˆเบงเบกเบเบฑเบ™ - เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ virtual, เบฅเบฐเบšเบปเบšเป‚เบ”เบเบเบปเบ‡เบเปˆเบฝเบงเบเบฑเบšเบฎเบฒเบ”เปเบง, เบซเบผเบทเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™ kubernetes. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบปเบเบ›เป‰เบญเบ‡เบเบธเปˆเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™ (nodes) เป‚เบ”เบเปƒเบŠเป‰เบŠเบธเบ”เบ‚เบญเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เบ›เบฐเบเบฒเบ”เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ‚เบฒเป€เบ‚เบปเป‰เบฒ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบœเปˆเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ NodePorts เบซเบผเบท IPs เบžเบฒเบเบ™เบญเบ).

เปƒเบ™เบฅเบฐเบ”เบฑเบšเบžเบทเป‰เบ™เบ–เบฒเบ™, เป€เบกเบทเปˆเบญ Calico เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบเบเบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เป€เบšเบดเปˆเบ‡เปเบœเบ™เบงเบฒเบ”เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰), เบกเบฑเบ™เบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบกเบฑเบ™เบเบฑเบšเป€เบˆเบปเป‰เบฒเบžเบฒเบšเป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš Ethernet virtual (veth). เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เป‚เบ”เบเบเบฑเบเบกเบฒเบซเบฒเป€เบˆเบปเป‰เบฒเบžเบฒเบšเบˆเบฒเบเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš virtual เบ™เบตเป‰เปเบฅเบฐเบ–เบทเบเบ›เบธเบ‡เปเบ•เปˆเบ‡เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบงเปˆเบฒเบกเบฑเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบ. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, Calico เบ•เบฑเป‰เบ‡เบŠเบทเปˆเบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ caliXXX. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบกเบฒเป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš virtual, เบกเบฑเบ™เบœเปˆเบฒเบ™ iptables เบ„เบทเบเบฑเบšเบงเปˆเบฒเบเบฑเบเปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡ hop เป„เบ›. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบกเบทเปˆเบญเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบกเบฒเบซเบฒ / เบˆเบฒเบเบเบฑเบ, เบกเบฑเบ™เบ–เบทเบเบชเบปเปˆเบ‡เบ•เปเปˆเบˆเบฒเบเบ—เบฑเบ”เบชเบฐเบ™เบฐเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบš.

เปƒเบ™ node Kubernetes เปเบฅเปˆเบ™ Calico, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เปเบœเบ™เบ—เบตเปˆ virtual interface (veth) เบเบฑเบš workload เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰. เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบงเปˆเบฒ veth #10 (calic1cbf1ca0f8) เปเบกเปˆเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš cnx-manager-* เปƒเบ™ namespace calico-monitoring.

[centos@ip-172-31-31-46 K8S]$ sudo ip a
...
10: calic1cbf1ca0f8@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 5
    inet6 fe80::ecee:eeff:feee:eeee/64 scope link
       valid_lft forever preferred_lft forever
...

[centos@ip-172-31-31-46 K8S]$ calicoctl get wep --all-namespaces
...
calico-monitoring cnx-manager-8f778bd66-lz45m                            ip-172-31-31-46.ec2.internal 192.168.103.134/32
calic1cbf1ca0f8
...

เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเบฑเบš Calico

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ Calico เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš veth เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบงเบฝเบ, เบกเบฑเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเปเบ™เบงเปƒเบ”? เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, Calico เบชเป‰เบฒเบ‡ hooks เปƒเบ™เบ•เปˆเบญเบ‡เป‚เบชเป‰เบ•เปˆเบฒเบ‡เป†เบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰ iptables.

เปเบœเบ™เบงเบฒเบ”เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เปƒเบ™ iptables (เบซเบผเบทเบฅเบฐเบšเบปเบšเบเปˆเบญเบ netfilter). เป€เบกเบทเปˆเบญเปเบžเบฑเบเป€เบเบฑเบ”เบกเบฒเบฎเบญเบ”เบœเปˆเบฒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบŸเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เบ—เบณเบญเบดเบ”เบกเบฑเบ™เบˆเบฐเบœเปˆเบฒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰ PREROUTING. เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปเบกเปˆเบ™เป€เบฎเบฑเบ”, เปเบฅเบฐเบญเบตเบ‡เปƒเบชเปˆเบ™เบตเป‰, packet เบœเปˆเบฒเบ™เบ—เบฑเบ‡ INPUT (เบกเบธเป‰เบ‡เป„เบ›เบซเบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป‚เบฎเบ”) เบซเบผเบท FORWARD (เบกเบธเป‰เบ‡เป„เบ›เบซเบฒ pod เบซเบผเบท node เบญเบทเปˆเบ™เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ). เบˆเบฒเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เปเบžเบฑเบเป€เบเบฑเบ”เบˆเบฐเบœเปˆเบฒเบ™ OUTPUT เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰ POSTROUTING เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบฅเบปเบ‡เบชเบฒเบ.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฑเบเปเบกเปˆเบ™เบเบฑเบ‡เป€เบ›เบฑเบ™เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบžเบฒเบเบ™เบญเบ (เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš veth) เปƒเบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡ iptables. เบ‚เปเบชเบฐเบซเบผเบธเบš:

  • เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เบ•เปเปˆ (nat, routed เบซเบผเบท to/ from a pod) เบˆเบฐเบœเปˆเบฒเบ™เบ•เปˆเบญเบ‡เป‚เบชเป‰เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ - เบ•เปเปˆเป„เบ› - POSTROUTING.
  • เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป„เบ›เบซเบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป‚เบฎเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบœเปˆเบฒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰ PREROUTING - INPUT.
  • เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบˆเบฒเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป‚เบฎเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบœเปˆเบฒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰ OUTPUT - POSTROUTING.

เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเบฑเบš Calico

Calico เปƒเบซเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเปƒเบ™เบ—เบปเปˆเบงเบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”. เบ”เป‰เบงเบเบงเปˆเบฒเบขเบนเปˆเปƒเบ™เปƒเบˆ, เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™ Calico. เบ•เบปเบงเป€เบฅเบเปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบเบปเบ‡เบเบฑเบ™เบเบฑเบšเบ•เบปเบงเป€เบฅเบเปƒเบ™เปเบœเบ™เบงเบฒเบ”เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

  1. เบ™เบฐเป‚เบเบšเบฒเบเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบงเบฝเบ (pod).
  2. เบ™เบฐเป‚เบเบšเบฒเบเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบš
  3. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ ApplyOnForward
  4. เบ™เบฐเป‚เบเบšเบฒเบ PreDNAT
  5. เบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก

เปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบเบฒเบ™เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเบเบฑเบšเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบงเบฝเบ (Kubernetes pods เบซเบผเบท OpenStack VMs), เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบšเบดเปˆเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบฐเป‚เบเบšเบฒเบเบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบš.

เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบงเบฝเบ

เบ™เบฐเป‚เบเบšเบฒเบเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบงเบฝเบ (1)

เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเบ›เบปเบเบ›เป‰เบญเบ‡เบเบฑเบ kubernetes เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. Calico เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Kubernetes NetworkPolicy, เปเบ•เปˆเบกเบฑเบ™เบเบฑเบ‡เบชเบฐเบซเบ™เบญเบ‡เบ™เบฐเป‚เบเบšเบฒเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบก - Calico NetworkPolicy เปเบฅเบฐ GlobalNetworkPolicy. Calico เบชเป‰เบฒเบ‡เบ•เปˆเบญเบ‡เป‚เบชเป‰เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบเบฑเบ (workload) เปเบฅเบฐ hooks เปƒเบ™เบ•เปˆเบญเบ‡เป‚เบชเป‰ INPUT เปเบฅเบฐ OUTPUT เบชเปเบฒเบฅเบฑเบš workload เบเบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เบญเบ‡เบ•เปˆเบญเบ‡เป‚เบชเป‰ FORWARD.

เป‚เบฎเบชเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”

เบ™เบฐเป‚เบเบšเบฒเบเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบš (2)

เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบ CNI (เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต), เบ™เบฐเป‚เบเบšเบฒเบ Calico เปƒเบซเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ•เบปเบงเป€เบญเบ‡. เปƒเบ™ Calico, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเป‚เบ”เบเบเบฒเบ™เบฅเบฐเบšเบธเบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡เบญเบดเบ™เป€เบ•เบตเป€เบŸเบ”เป‚เบฎเบ”เปเบฅเบฐ, เบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™, เบ•เบปเบงเป€เบฅเบเบžเบญเบ”. เบเบฒเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเบชเปเบฒเบฅเบฑเบšเบ™เบดเบ•เบดเบšเบธเบเบ„เบปเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เปƒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰ INPUT เปเบฅเบฐ OUTPUT. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบˆเบฒเบเปเบœเบ™เบงเบฒเบ”, (2) เบžเบงเบเบกเบฑเบ™เปƒเบŠเป‰เบเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™ node / host. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบš, เบกเบฑเบ™เบˆเบฐเบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป„เบ› / เบˆเบฒเบ pods เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เปเบ•เปˆเบกเบฑเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš / syntax เบ”เบฝเบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเบเบฑเบ”เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบชเปเบฒเบฅเบฑเบšเป€เบˆเบปเป‰เบฒเบžเบฒเบšเปเบฅเบฐ pods เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบ Calico. เบญเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบซเบผเบฒเบเบชเบณเบฅเบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบซเบผเบฒเบเบซเบผเบฒเบ. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบฐเป‚เบเบšเบฒเบเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบเบธเปˆเบกเป€เบ›เบฑเบ™เบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡.

เบ™เบณเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบ OnForward (3)

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ ApplyOnForward เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบปเปˆเบงเป‚เบฅเบ Calico เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เบฐเป‚เบเบšเบฒเบเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เบˆเบธเบ”เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบš, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ•เปเปˆเป‚เบ”เบเป€เบˆเบปเป‰เบฒเบžเบฒเบš. เบ™เบตเป‰เบฅเบงเบกเบกเบตเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเป„เบ›เบซเบฒ pod เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบซเบผเบทเบšเปˆเบญเบ™เบญเบทเปˆเบ™เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ. Calico เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ PreDNAT เปเบฅเบฐ untracked, เป€เบšเบดเปˆเบ‡เบžเบฒเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, ApplyOnForward เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบต router virtual เบซเบผเบทเบŠเบญเบšเปเบง NAT เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป‚เบฎเบ”เปเบฅเบฐเบžเบญเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบ ApplyOnForward. เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ›เป‰เบฒเบเบชเปเบฒเบฅเบฑเบš hostendpoint เปเบฅเบฐ workload endpoint (pod). Calico เปเบกเปˆเบ™เบชเบฐเบซเบฅเบฒเบ”เบžเปเบ—เบตเปˆเบˆเบฐเบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ›เป‰เบฒเบเบŠเบทเปˆ, เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ” (hostendpoint เบซเบผเบท workload).

เบ™เบฐเป‚เบเบšเบฒเบ PreDNAT (4)

เปƒเบ™ Kubernetes, เบœเบญเบ”เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบ›เบตเบ”เป€เบœเบตเบเบžเบฒเบเบ™เบญเบเป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบ NodePorts เบซเบผเบท, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ (เป€เบกเบทเปˆเบญเปƒเบŠเป‰ Calico), เป‚เบ”เบเบเบฒเบ™เป‚เบ„เบชเบฐเบ™เบฒเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ™เปเบฒเปƒเบŠเป‰ Cluster IPs เบซเบผเบทเบ—เบฒเบ‡เป€เบฅเบทเบญเบ IPs เบžเบฒเบเบ™เบญเบ. Kube-proxy เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เบˆเบฒเบฅเบฐเบˆเบญเบ™เบ‚เบฒเป€เบ‚เบปเป‰เบฒเบ—เบตเปˆเบœเบนเบเบกเบฑเบ”เบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบเบฑเบš pods เบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰ DNAT. เบ”เป‰เบงเบเป€เบซเบ”เบœเบปเบ™เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเบฐเบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเบœเปˆเบฒเบ™ NodePorts เปเบ™เบงเปƒเบ”? เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบ™เบฐเป‚เบเบšเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ™เบณเปƒเบŠเป‰เบเปˆเบญเบ™เบ—เบตเปˆเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบˆเบฐเบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เป‚เบ”เบ DNAT (เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เป‚เบฎเบ”:เบžเบญเบ” เปเบฅเบฐเบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™), Calico เปƒเบซเป‰เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบชเบณเบฅเบฑเบš globalNetworkPolicy เป€เบญเบตเป‰เบ™เบงเปˆเบฒ "preDNAT: true".

เป€เบกเบทเปˆเบญเบเปˆเบญเบ™ DNAT เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบ™เบฐเป‚เบเบšเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ (4) เปƒเบ™เปเบœเบ™เบงเบฒเบ” - เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ mangle เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰ PREROUTING - เบ—เบฑเบ™เบ—เบตเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐ DNAT. เบ„เปเบฒเบชเบฑเปˆเบ‡เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ—เบตเปˆเบ™เบตเป‰, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบซเบผเบฒเบเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ™เบฐเป‚เบเบšเบฒเบ preDNAT เป€เบ„เบปเบฒเบฅเบปเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบญเบ‡.

เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบเบฑเบš DNAT เบเปˆเบญเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ„เบปเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเบ–เบทเบเปเบฒเบเป€เบ›เบฑเบ™ 'เบญเบฐเบ™เบธเบเบฒเบ”' เปƒเบ™เบ™เบฐเป‚เบเบšเบฒเบเบ—เบฒเบ‡เบชเปˆเบงเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡ DNAT เบˆเบฐเบšเปเปˆเบ–เบทเบเบเบงเบ”เบชเบญเบšเป‚เบ”เบเบ™เบฐเป‚เบเบšเบฒเบ hostendpoint เบญเบตเบเบ•เปเปˆเป„เบ›, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™เบ™เบฐเป‚เบเบšเบฒเบเบเปˆเบญเบ™ DNAT เบˆเบฐเบชเบทเบšเบ•เปเปˆเบœเปˆเบฒเบ™เบ•เปˆเบญเบ‡เป‚เบชเป‰เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญ.
Calico เป„เบ”เป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบ applyOnForward เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰ preDNAT, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเป‚เบ”เบเบ„เปเบฒเบ™เบดเบเบฒเบกเบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เป€เบฅเบทเบญเบ. เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเป„เบ›เบซเบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป‚เบฎเบ”, เบซเบผเบทเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเบปเปˆเบ‡เบ•เปเปˆเป„เบ›เบซเบฒ pod เบซเบผเบท node เบญเบทเปˆเบ™.

เบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก (5)

เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบชเบฒเบกเบฒเบ”เบกเบตเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปƒเบ™เบžเบถเบ”เบ•เบดเบเปเบฒ. เปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบฎเบธเบ™เปเบฎเบ‡, เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบญเบฒเบ”เบˆเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบกเบตเบŠเบตเบงเบดเบ”เบชเบฑเป‰เบ™เบซเบผเบฒเบ. เบญเบฑเบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰ conntrack (เบญเบปเบ‡เบ›เบฐเบเบญเบšเบซเบผเบฑเบเบ‚เบญเบ‡ Linux networking stack) เปเบปเบ”เบ„เบงเบฒเบกเบˆเบณ. เบ•เบฒเบกเบ›เบฐเป€เบžเบ™เบต, เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™ Linux, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ conntrack, เบซเบผเบทเบ‚เบฝเบ™เบเบปเบ”เบฅเบฐเบšเบฝเบš iptables เป€เบžเบทเปˆเบญเบ‚เป‰เบฒเบก conntrack. เบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเปƒเบ™ Calico เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ‡เปˆเบฒเบเบเบงเปˆเบฒ เปเบฅเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบงเปˆเบฒ เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป„เบงเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบˆเบฐเป„เบงเป„เบ”เป‰. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ memcache เบซเบผเบทเป€เบ›เบฑเบ™เบกเบฒเบ”เบ•เบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ‚เบญเบ‡เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ•เปเปˆเบ•เป‰เบฒเบ™ DDOS.

เบญเปˆเบฒเบ™เบ™เบตเป‰ เบ•เบญเบš blog (เบซเบผเบท เบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ) เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบ untracked.

เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบ•เบฑเป‰เบ‡เบ•เบปเบงเป€เบฅเบทเบญเบ "doNotTrack: true" เปƒเบ™ Calico globalNetworkPolicy, เบกเบฑเบ™เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ™เบฐเป‚เบเบšเบฒเบ **untracked** เปเบฅเบฐเบ–เบทเบเบ™เบณเปƒเบŠเป‰เบซเบผเบฒเบเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบžเบฑเบเป€เบเบฑเบ”เบ‚เบญเบ‡ Linux. เบŠเบญเบเบซเบฒเบขเบนเปˆเปƒเบ™เปเบœเบ™เบงเบฒเบ”เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰ PREROUTING เปเบฅเบฐ OUTPUT เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ”เบดเบšเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ (conntrack). เป€เบกเบทเปˆเบญเปเบžเบฑเบเป€เบเบฑเบ”เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เป‚เบ”เบเบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ•เบดเบ”เบ•เบฒเบก, เบกเบฑเบ™เบˆเบฐเบ–เบทเบเปเบฒเบเปƒเบซเป‰เบ›เบดเบ”เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบณเบฅเบฑเบšเปเบžเบฑเบเป€เบเบฑเบ”เบ™เบฑเป‰เบ™. เบซเบกเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบงเปˆเบฒ:

  • เบ™เบฐโ€‹เป‚เบโ€‹เบšเบฒเบโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบšเบปเบ™โ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹เบ•เปเปˆโ€‹เบŠเบธเบ”. เบšเปเปˆเบกเบตเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ (เบซเบผเบทเบเบฒเบ™เป„เบซเบผ). เบเบฒเบ™เบ‚เบฒเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบกเบตเบœเบปเบ™เบชเบฐเบ—เป‰เบญเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบ:
  • เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เบฑเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปเบฅเบฐเบเบฒเบ™เบ•เบญเบšเป‚เบ•เป‰, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบปเบ”เบฅเบฐเบšเบฝเบšเบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบ‚เบฒเป€เบ‚เบปเป‰เบฒเปเบฅเบฐเบ‚เบฒเบญเบญเบ (เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ Calico เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเปƒเบŠเป‰ conntrack เป€เบžเบทเปˆเบญเบซเบกเบฒเบเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ•เบญเบšเบฎเบฑเบšเป€เบ›เบฑเบ™เบญเบฐเบ™เบธเบเบฒเบ”).
  • เบ™เบฐเป‚เบเบšเบฒเบ untracked เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบš Kubernetes workloads (pods), เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบšเปเปˆเบกเบตเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เบฒเบญเบญเบเบˆเบฒเบ pods เป„เบ”เป‰.
  • NAT เป€เบฎเบฑเบ”เบงเบฝเบเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบเบฑเบšเปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ•เบดเบ”เบ•เบฒเบก (เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ kernel เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบœเบ™เบ—เบตเปˆ NAT เปƒเบ™ conntrack).
  • เป€เบกเบทเปˆเบญเบœเปˆเบฒเบ™เบเบปเบ”เบฅเบฐเบšเบฝเบš "เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”" เปƒเบ™เบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ•เบดเบ”เบ•เบฒเบก, เบ—เบธเบเปเบžเบฑเบเป€เบเบฑเบ”เบˆเบฐเบ–เบทเบเบซเบกเบฒเบเป€เบ›เบฑเบ™ untracked. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบเบทเบญเบšเบชเบฐเป€เบซเบกเบตเบšเปเปˆเปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฅเบทเบญเบเบซเบผเบฒเบเบเปˆเบฝเบงเบเบฑเบšเปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบญเบฐเบ™เบธเบเบฒเบ”เป‚เบ”เบเบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก (เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเบœเปˆเบฒเบ™เบ™เบฐเป‚เบเบšเบฒเบเบ•เบดเบ”เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด).
  • เบ™เบฐโ€‹เป‚เบโ€‹เบšเบฒเบโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹เบ•เบญเบ™โ€‹เบ•เบปเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบ—เปเปˆโ€‹เบเบฒเบ™โ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡โ€‹เบŠเบญเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ™เบฐเป‚เบเบšเบฒเบ Calico. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบกเบตเบ™เบฐเป‚เบเบšเบฒเบเบเบฑเบเบ—เบตเปˆเบกเบตเบ„เปเบฒเบชเบฑเปˆเบ‡: 1 เปเบฅเบฐเบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ—เบตเปˆเบกเบตเบ„เปเบฒเบชเบฑเปˆเบ‡: 1000. เบกเบฑเบ™เบˆเบฐเบšเปเปˆเบชเปเบฒเบ„เบฑเบ™. เบ™เบฐเป‚เบเบšเบฒเบ Untracked เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเปˆเบญเบ™เบ™เบฐเป‚เบเบšเบฒเบเบชเปเบฒเบฅเบฑเบš pod เป„เบ”เป‰. เบ™เบฐโ€‹เป‚เบโ€‹เบšเบฒเบโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เปเบกเปˆเบ™โ€‹เบ™เบฑเบšโ€‹เบ–เบทโ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เปƒเบ™โ€‹เบšเบฑเบ™โ€‹เบ”เบฒโ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เปƒเบ™เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบ™เบฐเป‚เบเบšเบฒเบ doNotTrack เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเปƒเบ™เบ•เบปเป‰เบ™เป†เบ‚เบญเบ‡เบ—เปเปˆเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ” Linux, Calico เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เบฅเบฐเบšเบธเบ—เบฒเบ‡เป€เบฅเบทเบญเบ applyOnForward เป€เบกเบทเปˆเบญเปƒเบŠเป‰ doNotTrack. เป‚เบ”เบเบญเป‰เบฒเบ‡เบญเบตเบ‡เปƒเบชเปˆเปเบœเบ™เบงเบฒเบ”เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบžเบฑเบเป€เบเบฑเบ”, เบˆเบปเปˆเบ‡เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก (5) เบ–เบทเบเบ™เบณเปƒเบŠเป‰เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบกเบตเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบเบณเบ™เบปเบ”เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡. เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเป„เบ›เบซเบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป‚เบฎเบ”, เบซเบผเบทเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเบปเปˆเบ‡เบ•เปเปˆเป„เบ›เบซเบฒ pod เบซเบผเบท node เบญเบทเปˆเบ™.

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบšเบดเปˆเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบฐเป‚เบเบšเบฒเบเบ•เปˆเบฒเบ‡เป† (Host endpoint, ApplyOnForward, preDNAT, เปเบฅเบฐ Untracked) เปƒเบ™ Calico เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ•เบฒเบกเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”. เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบŠเปˆเบงเบเปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเบ›เบญเบ”เป„เบž. เบ”เป‰เบงเบ Calico เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเปƒเบŠเป‰เบเบฑเบšเบ›เป‰เบฒเบเบŠเบทเปˆ (เบเบธเปˆเบกเบ‚เบญเบ‡ nodes เปเบฅเบฐ pods) เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบกเบตเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ•เปˆเบฒเบ‡เป†. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™เบ”เป‰เบฒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเปเบฅเบฐเบเบฒเบ™เบญเบญเบเปเบšเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบชเบฒเบกเบฒเบ”เบ›เบปเบเบ›เป‰เบญเบ‡ "เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡" เป„เบ”เป‰เบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบ (เบ›เบฐเป€เบžเบ”เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”) เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเป‚เบ”เบเปƒเบŠเป‰เบžเบฒเบชเบฒเบ™เบฐเป‚เบเบšเบฒเบเบ”เบฝเบงเบเบฑเบšเบ™เบฐเป‚เบเบšเบฒเบ Calico.

เบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰: เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเบ‚เปเบ‚เบญเบšเปƒเบˆ Sean Crampton ะธ Alexa Pollitta เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™