เบเบฑเปเบเบญเบดเบเปเบเบทเบญเบเปเบฒเบ Calico เบชเบฐเปเบญเบเบเบฐเปเบเบเบฒเบเปเบเบทเบญเบเปเบฒเบเบเบตเปเบซเบผเบฒเบเบซเบผเบฒเบเบเปเบงเบ syntax เบฎเบงเบกเบเบฑเบเปเบเบทเปเบญเบเบปเบเบเปเบญเบเบฎเบฒเบเปเบงเปเบฎเบช, เปเบเบทเปเบญเบเบชเบฐเปเปเบทเบญเบ เปเบฅเบฐเบเบญเบ. เบเบฐเปเบเบเบฒเบเปเบซเบผเบปเปเบฒเบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเบเบณเปเบเปเบเบฒเบเปเบ namespace เบซเบผเบทเปเบเบฑเบเบเบฐเปเบเบเบฒเบเปเบเบทเบญเบเปเบฒเบเบเบปเปเบงเปเบฅเบเบเบตเปเบเบณเปเบเปเบเบฑเบ
เบเบปเบโเบเบงเบฒเบกโเบเบตเปโเบชเบปเบกโเบกเบธเบโเบงเปเบฒโเบเปเบฒเบโเบกเบตโเบเบงเบฒเบกโเปเบเบปเปเบฒโเปเบโเบเบทเปเบโเบเบฒเบโเบเปเบฝเบงโเบเบฑเบโเบงเบดโเบเบตโเบเบฒเบโเบเบฐโเปเบโเบเบฒเบโเปเบเบทเบญโเบเปเบฒเบ Kubernetes เปเบฅเบฐ Calico เปเบฎเบฑเบโเบงเบฝเบโ. เบเปเบฒเบเปเป, เบเบงเบเปเบฎเบปเบฒเปเบเบฐเบเปเบฒเปเบซเปเบฅเบญเบเบกเบฑเบ
Calico
เปเบเบฅเบฐเบเบฑเบเบเบทเปเบเบเบฒเบ, เปเบกเบทเปเบญ 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 เบชเปเบฒเบเบเบฒเบเปเบเปเบเบญเบ 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. เบเบปเบงเปเบฅเบเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบฒเบเปเบฅเบทเบญเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเบเบปเบเบเบฑเบเบเบฑเบเบเบปเบงเปเบฅเบเปเบเปเบเบเบงเบฒเบเบเปเบฒเบเปเบเบดเบ.
- เบเบฐเปเบเบเบฒเบเบเบธเบเบชเบดเปเบเบชเบธเบเบงเบฝเบ (pod).
- เบเบฐเปเบเบเบฒเบเบเบธเบเบชเบดเปเบเบชเบธเบเบเบญเบเปเบเบปเปเบฒเบเบฒเบ
- เบเบฒเบเปเบฅเบทเบญเบ ApplyOnForward
- เบเบฐเปเบเบเบฒเบ PreDNAT
- เบเบฐเปเบเบเบฒเบเบเบตเปเบเปเปเบกเบตเบเบฒเบเบเบดเบเบเบฒเบก
เปเบซเปเปเบฅเบตเปเบกเบเบปเปเบเปเบเบเบเบฒเบเปเบเบดเปเบเบงเบดเบเบตเบเบฒเบเบเปเบฒเปเบเปเบเบฐเปเบเบเบฒเบเบเบฑเบเบเบธเบเบชเบดเปเบเบชเบธเบเบเบญเบเบงเบฝเบ (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 เปเบกเปเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเปเบฒเบเบเบงเปเบฒ เปเบฅเบฐเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบงเปเบฒ เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฐเบกเบงเบเบเบปเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบงเปเบเบปเปเบฒเบเบตเปเบเบฐเปเบงเปเบเป. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเปเบฒเบเปเบเปเบเบฐเบซเบเบฒเบเปเบซเบเป
เบญเปเบฒเบเบเบตเป
เปเบกเบทเปเบญเบเปเบฒเบเบเบฑเปเบเบเบปเบงเปเบฅเบทเบญเบ "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.
เบเบฒเบเบฎเบฑเบเบฎเบนเป: เบเปเบฒเบเบฐเปเบเบปเปเบฒเบขเบฒเบเบเปเบเบญเบเปเบ
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com