Kubernetes: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдХреЗ рдмрдЬрд╛рдп рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдЬрдире░ 2015  ┬╖  187рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: kubernetes/kubernetes

рдореИрдВ рдХрд▓ iptables рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореИрдВрдиреЗ iptables рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ (рдареАрдХ рд╣реИ, Google рд╣рд┐рдЯ рдФрд░ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛) рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕ рдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░реЙрдХреНрд╕реАрдЗрдВрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЕрддреНрдпрд╛рд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреЗ рдиреЛрдЯреНрд╕ рдЦреЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рджрд░реНрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рд╕реНрд░реЛрдд рдЖрдИрдкреА рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдПрдХ рдмрдбрд╝рд╛ рд╢реБрджреНрдз рд╕рд░рд▓реАрдХрд░рдг рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЗрд╕рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдЪреНрдЫрд╛ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ (рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ) рд╣реИред рдЕрдм рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдХреЗрд╡рд▓ рд╕реЗрд╡рд╛рдУрдВ -> iptables рдХреЛ рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╣ рдкреБрд░рд╛рдиреЗ iptables рдФрд░ рдЧреБрдард▓реА рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рд╣реИред рд╣рдореЗрдВ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА - рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд╣рдореЗрдВ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рддрдиреЗ рд╕рдордп рдкрд╣рд▓реЗ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕реЗ рд╢рд╛рдпрдж рдЖрдЧреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреБрдирд┐рдпрд╛рджреА рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рдореИрдВ рдЪрд┐рдкрдЪрд┐рдкрд╛ рд╕рддреНрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдЧрд░ рдореИрдВ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рдмреИрдХрдПрдВрдб рдХреЛ рдорд╛рд░рдиреЗ рдХреА рд╕рдорд╛рди рд╕рдВрднрд╛рд╡рдирд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдореИрдВ рдирд┐рдпрддрд╛рддреНрдордХ рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди рдХреЛ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ ( --nth рдХреЗ рдмрдЬрд╛рдп --probability рдХреЗ рд╕рд╛рде) рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЪрд╛рд╣реЗрдВ рддреЛ рд╣рдо рдЙрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд╡рд╛ рдкреЛрд░реНрдЯрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ

iptables -t nat -N TESTSVC
iptables -t nat -F TESTSVC
iptables -t nat -N TESTSVC_A
iptables -t nat -F TESTSVC_A
iptables -t nat -N TESTSVC_B
iptables -t nat -F TESTSVC_B
iptables -t nat -N TESTSVC_C
iptables -t nat -F TESTSVC_C
iptables -t nat -A TESTSVC -m recent --name hostA --rcheck --seconds 1 --reap -j TESTSVC_A
iptables -t nat -A TESTSVC -m recent --name hostB --rcheck --seconds 1 --reap -j TESTSVC_B
iptables -t nat -A TESTSVC -m recent --name hostC --rcheck --seconds 1 --reap -j TESTSVC_C
iptables -t nat -A TESTSVC -m statistic --mode random --probability 0.333 -j TESTSVC_A
iptables -t nat -A TESTSVC -m statistic --mode random --probability 0.500 -j TESTSVC_B
iptables -t nat -A TESTSVC -m statistic --mode random --probability 1.000 -j TESTSVC_C

iptables -t nat -A TESTSVC_A -m recent --name hostA --set -j DNAT -p tcp --to-destination 10.244.4.6:9376
iptables -t nat -A TESTSVC_B -m recent --name hostB --set -j DNAT -p tcp --to-destination 10.244.1.15:9376
iptables -t nat -A TESTSVC_C -m recent --name hostC --set -j DNAT -p tcp --to-destination 10.244.4.7:9376

iptables -t nat -F KUBE-PORTALS-HOST
iptables -t nat -A KUBE-PORTALS-HOST -d 10.0.0.93/32 -m state --state NEW -p tcp -m tcp --dport 80 -j TESTSVC
iptables -t nat -F KUBE-PORTALS-CONTAINER
iptables -t nat -A KUBE-PORTALS-CONTAINER -d 10.0.0.93/32 -m state --state NEW -p tcp -m tcp --dport 80 -j TESTSVC
prioritawaiting-more-evidence release-note sinetwork siscalability

рд╕рднреА 187 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдардВрдбрд╛! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд▓рдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдЕрд▓рдЧ рдиреЛрдЯ рдкрд░, рдореИрдВ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рднрд╛рд░реА рднрд╛рд░ рдХреЗ рддрд╣рдд ~ 30% рдХреЛрд░ рдЦрд╛ рд░рд╣рд╛ рдерд╛, рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ iptables рд╣рдореЗрдВ рдЗрд╕рд╕реЗ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рджреЗрдЧрд╛ред

рд╣рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреА рд╣реЛрдЧреА - рдпрд╣ рд▓рдЧрднрдЧ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдХреБрд▓ рдкреБрдирд░реНрд▓реЗрдЦрди рд╣реИ рдФрд░
рдЙрд╕рдХреЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдгред рдЗрд╕рдореЗрдВ рдмреИрдХ-рдХрдореНрдкреЗрдЯ рд╕рдорд╕реНрдпрд╛рдПрдВ рднреА рд╣реИрдВ (рдЗрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛
рдкреБрд░рд╛рдиреЗ рдХрд░реНрдиреЗрд▓ рдпрд╛ рдкреБрд░рд╛рдиреЗ iptables рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝)ред

рд╕реЛрдо, 26 рдЬрдирд╡рд░реА, 2015 рдкреВрд░реНрд╡рд╛рд╣реНрди 11:06 рдмрдЬреЗ, рдмреНрд░реЗрдВрдбрди рдмрд░реНрдиреНрд╕ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдардВрдбрд╛! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдЕрд▓рдЧ рдиреЛрдЯ рдкрд░,
рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдкреНрд░реЙрдХреНрд╕реА рднрд╛рд░реА рднрд╛рд░ рдХреЗ рддрд╣рдд ~ 30% рдХреЛрд░ рдЦрд╛ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рдХрд░рдирд╛ рд╣реИ
рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ iptables рд╣рдореЗрдВ рдЗрд╕рд╕реЗ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рджреЗрдЧрд╛ред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -71517501
.

рд╢рд╛рдпрдж рдЗрд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ?

рд╕реЛрдо, 26 рдЬрдирд╡рд░реА 2015 рдХреЛ рджреЛрдкрд╣рд░ 12:01 рдмрдЬреЗ рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рд╣рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреА рд╣реЛрдЧреА - рдпрд╣ рд▓рдЧрднрдЧ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдХреБрд▓ рдкреБрдирд░реНрд▓реЗрдЦрди рд╣реИ рдФрд░
рдЙрд╕рдХреЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдгред рдЗрд╕рдореЗрдВ рдмреИрдХ-рдХрдореНрдкреЗрдЯ рд╕рдорд╕реНрдпрд╛рдПрдВ рднреА рд╣реИрдВ (рдЗрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛
рдкреБрд░рд╛рдиреЗ рдХрд░реНрдиреЗрд▓ рдпрд╛ рдкреБрд░рд╛рдиреЗ iptables рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝)ред

рд╕реЛрдо, 26 рдЬрдирд╡рд░реА, 2015 рдкреВрд░реНрд╡рд╛рд╣реНрди 11:06 рдмрдЬреЗ, рдмреНрд░реЗрдВрдбрди рдмрд░реНрдиреНрд╕ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдардВрдбрд╛! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдЕрд▓рдЧ рдкрд░
рдзреНрдпрд╛рди рджреЗрдВ,
рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдкреНрд░реЙрдХреНрд╕реА рднрд╛рд░реА рднрд╛рд░ рдХреЗ рддрд╣рдд ~ 30% рдХреЛрд░ рдЦрд╛ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рдХрд░рдирд╛ рд╣реИ
рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ iptables рд╣рдореЗрдВ рдЗрд╕рд╕реЗ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рджреЗрдЧрд╛ред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
<
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -71517501

.

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -71527216
.

рдореИрдВ рдХрд┐рд╕реА рдФрд░ рдХреЛ рдордирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рдХреЛрдб рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ
рдФрд░ рдЗрд╕реЗ рд▓реЗ рд▓реЛред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрджрд┐
рдХрд┐рд╕реА рдФрд░ рдиреЗ рдпрд╣ рд╕реНрдерд╛рди рд╕реАрдЦрд╛ (рдЖрдк рдирд╣реАрдВ! :)

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдЖрдкрдиреЗ рд╡рд┐рд╢рд╛рд▓ P1 рд╕реВрдЪреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рдЕрдЪреНрдЫрд╛) рдИрдореЗрд▓ рднреА рднреЗрдЬрд╛ - рдФрд░ I
рдордд рд╕реЛрдЪреЛ рдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рдЙрд╕ рд╕реВрдЪреА рдореЗрдВ рд╣реИред

рд╕реЛрдо, 26 рдЬрдирд╡рд░реА, 2015 рджреЛрдкрд╣рд░ 1:06 рдмрдЬреЗ, рдмреНрд░реЗрдВрдбрди рдмрд░реНрдиреНрд╕ рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рд╢рд╛рдпрдж рдЗрд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рдмрдирд╛рддрд╛ рд╣реИ
рд╕рдордЭ?

рд╕реЛрдо, 26 рдЬрдирд╡рд░реА 2015 рдХреЛ рджреЛрдкрд╣рд░ 12:01 рдмрдЬреЗ рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рд╣рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреА рд╣реЛрдЧреА - рдпрд╣ рд▓рдЧрднрдЧ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдХреБрд▓ рдкреБрдирд░реНрд▓реЗрдЦрди рд╣реИ
рддрдерд╛
рдЙрд╕рдХреЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдгред рдЗрд╕рдореЗрдВ рдмреИрдХ-рдХрдореНрдкреИрдЯ рд╕рдорд╕реНрдпрд╛рдПрдВ рднреА рд╣реИрдВ (рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛
рдкрд░
рдкреБрд░рд╛рдиреЗ рдХрд░реНрдиреЗрд▓ рдпрд╛ рдкреБрд░рд╛рдиреЗ iptables рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝)ред

рд╕реЛрдо, 26 рдЬрдирд╡рд░реА, 2015 рдкреВрд░реНрд╡рд╛рд╣реНрди 11:06 рдмрдЬреЗ, рдмреНрд░реЗрдВрдбрди рдмрд░реНрдиреНрд╕ <
рд╕реВрдЪрдирд╛рдПрдВ@github.com>
рд▓рд┐рдЦрд╛ рдерд╛:

рдардВрдбрд╛! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдЕрд▓рдЧ рдкрд░
рдзреНрдпрд╛рди рджреЗрдВ,
рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдкреНрд░реЙрдХреНрд╕реА рднрд╛рд░реА рднрд╛рд░ рдХреЗ рддрд╣рдд ~ 30% рдХреЛрд░ рдЦрд╛ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рдХрд░рдирд╛ рд╣реИ
рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ iptables рд╣рдореЗрдВ рдЗрд╕рд╕реЗ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рджреЗрдЧрд╛ред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
<

https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -71517501

.

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
<
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment-71527216>

.

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -71538256
.

рдХреНрдпрд╛ рдпрд╣ P2 рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ P3 рдмрдирд╛рдиреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдореИрдВ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдЕрднреА рднреА рдЕрд╡рдирдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдмреБрдзрд╡рд╛рд░, 11 рдлрд░рд╡рд░реА, 2015 рджреЛрдкрд╣рд░ 2:49 рдмрдЬреЗ, рд╕рддрдирд╛рдо рд╕рд┐рдВрд╣ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдХреНрдпрд╛ рдпрд╣ P2 рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ P3 рдмрдирд╛рдиреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -73982161
.

рдХреНрдпрд╛ "рдЙрдореНрдореАрдж" рдПрдХ P3 рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ?

@thockin рдХреЗ рд╕рд╛рде рдЪрд░реНрдЪрд╛ рд╕реЗ: рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ рд░реЗрдВрдЬ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ 1.0 рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдВрддрддрдГ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

@thockin "рдпрд╣ рдкреБрд░рд╛рдиреЗ iptables рдФрд░ рдЧреБрдард▓реА рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рд╣реИред" рдХрд░реНрдиреЗрд▓ рдХреЛ 'рдирдпрд╛' рдХреИрд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдмрд╣реБрдд рдирдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 2012 рд╕реЗ iptables рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдХрд╛рдоред

рд╕реЛрдо, 23 рдлрд░рд╡рд░реА, 2015 рдЕрдкрд░рд╛рд╣реНрди 2:44 рдмрдЬреЗ, рд╕рд┐рджреНрдзрд╛рд░реНрде рд╕реАрддрд╛рдирд╛ < рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com

рд▓рд┐рдЦрд╛ рдерд╛:

@thockin https://github.com/thockin "рдпрд╣ рди рд╣реЛрдиреЗ рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рд╣реИ
рдкреБрд░рд╛рдиреЗ iptables рдФрд░ рдЧреБрдард▓реА рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддред" рдХрд░реНрдиреЗрд▓ рдХрд┐рддрдирд╛ 'рдирдпрд╛' рд╣реЛрдЧрд╛?
рд╣реЛрдирд╛ рд╣реИ?

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -75654187
.

@thockin рдзрдиреНрдпрд╡рд╛рджред рд╣рдо рдЖрд░рдПрдЪрдИрдПрд▓/рд╕реЗрдВрдЯреЛрд╕ 6 рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ/рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рд╛рд▓ рдХреЗ 3.x рдХрд░реНрдиреЗрд▓ рдкрд░ рдХрдареЛрд░ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реИред

@pweil- рд╣рдо рджреВрд╕рд░реЗ рджрд┐рди рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реЗ рдереЗ
рд╕реЛрдо, 23 рдлрд░рд╡рд░реА 2015 рдЕрдкрд░рд╛рд╣реНрди 11:40 рдмрдЬреЗ рд╕рд┐рджреНрдзрд╛рд░реНрде рд╕реАрддрд╛рдирд╛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@thockin https://github.com/thockin рдзрдиреНрдпрд╡рд╛рджред рд╣рдо рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ/рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдЖрд░рдПрдЪрдИрдПрд▓/рд╕реЗрдВрдЯреЛрд╕ 6, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рд╛рд░реНрдб рдирд╣реАрдВ рд╣реИ
рд╣рд╛рд▓ рд╣реА рдореЗрдВ 3.x рдЧреБрдард▓реА рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -75698480
.

рдареАрдХ рд╣реИ, рдЖрдкрдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рдХрд╛рдЯрдирд╛ рд╣реЛрдЧрд╛ред
рдмреИрдХ-рд░реЗрд╡ iptables рд╕рдорд░реНрдерди рдореБрдЭреЗ (рдЕрдВрддрддрдГ) рдмрдирд╛рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХреЗрдЧрд╛
рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди, рдФрд░ рдпрд╣ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрдВрдХ рдорд╛рд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рд╕реЛрдо, 23 рдлрд░рд╡рд░реА, 2015 рдХреЛ рд░рд╛рдд 8:40 рдмрдЬреЗ, рд╕рд┐рджреНрдзрд╛рд░реНрде рд╕реАрддрд╛рдирд╛ < рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com

рд▓рд┐рдЦрд╛ рдерд╛:

@thockin https://github.com/thockin рдзрдиреНрдпрд╡рд╛рджред рд╣рдо рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ/рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдЖрд░рдПрдЪрдИрдПрд▓/рд╕реЗрдВрдЯреЛрд╕ 6, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рд╛рд░реНрдб рдирд╣реАрдВ рд╣реИ
рд╣рд╛рд▓ рд╣реА рдореЗрдВ 3.x рдЧреБрдард▓реА рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -75698480
.

@thockin рдХреА рдорджрдж рд╕реЗ, рд╣рдордиреЗ udp рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рд╣рдордиреЗ 3 рд╕реНрдХрд╛рдИ-рдбреАрдПрдирдПрд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ GCE Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдпрд╛ рд╣реИред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕-рдорд╛рд╕реНрдЯрд░ рдкрд░, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ iptables рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:
рдбреАрдПрдирдПрд╕ рд╕реЗрд╡рд╛ рдЖрдИрдкреА 10.0.0.10 рдерд╛, рдФрд░ рдбреАрдПрдирдПрд╕ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдкреЙрдб рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ 10.244.0.5:53, 10.244.3.6:53, 10.244.0.6:53 рдереЗред

iptables -t nat -N TESTSVC
iptables -t nat -F TESTSVC
iptables -t nat -N TESTSVC_A
iptables -t nat -F TESTSVC_A
iptables -t nat -N TESTSVC_B
iptables -t nat -F TESTSVC_B
iptables -t nat -N TESTSVC_C
iptables -t nat -F TESTSVC_C
iptables -t nat -N KUBE-PORTALS-HOST
iptables -t nat -F KUBE-PORTALS-HOST

iptables -t nat -A TESTSVC -m рд╣рд╛рд▓ рд╣реА рдореЗрдВ --name hostA --rcheck --seconds 1 --reap -j TESTSVC_A
iptables -t nat -A TESTSVC -m рд╣рд╛рд▓ рд╣реА рдореЗрдВ --name hostB --rcheck --seconds 1 --reap -j TESTSVC_B
iptables -t nat -A TESTSVC -m рд╣рд╛рд▓ рд╣реА рдореЗрдВ --name hostC --rcheck --seconds 1 --reap -j TESTSVC_C

iptables -t nat -A TESTSVC -m рдЖрдБрдХрдбрд╝рд╛ --рдореЛрдб рдпрд╛рджреГрдЪреНрдЫрд┐рдХ --рдкреНрд░рд╛рдпрд┐рдХрддрд╛ 0.333 -j TESTSVC_A
iptables -t nat -A TESTSVC -m рдЖрдБрдХрдбрд╝рд╛ - рдореЛрдб рдпрд╛рджреГрдЪреНрдЫрд┐рдХ - рдкреНрд░рд╛рдпрд┐рдХрддрд╛ 0.5 -j TESTSVC_B
iptables -t nat -A TESTSVC -m рдЖрдБрдХрдбрд╝рд╛ --рдореЛрдб рдпрд╛рджреГрдЪреНрдЫрд┐рдХ --рдкреНрд░рд╛рдпрд┐рдХрддрд╛ 1.000 -j TESTSVC_C

iptables -t nat -A TESTSVC_A -m рд╣рд╛рд▓ рд╣реА рдореЗрдВ --name hostA --set -j DNAT -p udp --to-destination 10.244.0.5:53
iptables -t nat -A TESTSVC_B -m рд╣рд╛рд▓ рд╣реА рдореЗрдВ --name hostB --set -j DNAT -p udp --to-destination 10.244.3.6:53
iptables -t nat -A TESTSVC_C -m рд╣рд╛рд▓ рд╣реА рдореЗрдВ --name hostC --set -j DNAT -p udp --to-destination 10.244.0.6:53
iptables -t nat -A KUBE-PORTALS-HOST -d 10.0.0.10/32 -p udp -m udp --dport 53 -j TESTSVC
iptables -t nat -A OUTPUT -j KUBE-PORTALS-HOST


Kubernetes-master>nsрд▓реБрдХрдЕрдк Kubernetes.default.kuberenetes.local 10.0.0.10

рд╣рдореЗрдВ рд╡рд╛рдкрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓рддреА рд╣реИ!

рдорд╣рд╛рди рд╕рд╛рдорд╛рди! рдмрд╕ FYI рдХрд░реЗрдВ (рд╣рдорд╛рд░реА рдЖрдордиреЗ-рд╕рд╛рдордиреЗ рдХреА рдмрд╛рддрдЪреАрдд рд╕реЗ рдкреБрд╖реНрдЯрд┐ рдХрд░рддреЗ рд╣реБрдП), рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрдИ рд╕рдорд╡рд░реНрддреА iptables рдХрдорд╛рдВрдб рдЪрд▓рд╛рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ (рд╡рд┐рднрд┐рдиреНрди рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред iptables libiptc рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИ, рдФрд░ iptc_commit рдкрд░ рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВ: http://www.tldp.org/HOWTO/Querying-libiptc-HOWTO/mfunction.html

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ 2013 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рддрднреА рдЬрдм рдЖрдк --wait (?) рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ: http://git.netfilter.org/iptables/commit/?id=93587a04d0f2511e108bbc4d87a8b9d28a5c5dd8

рдЗрд╕рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ iptables рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ iptables-save / iptables-restore (рдХрдо рд╕реЗ рдХрдо рдкреНрд░рддрд┐ рд╢реНрд░реГрдВрдЦрд▓рд╛) рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ; рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рджреЗрдЦреЗ рд╣реИрдВ рдЬреЛ рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ iptables-save & iptables-restore рдЪреАрдЬреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдпред рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреЛрдб рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реЛ рддреЛ рдореИрдВ рдЦреБрджрд╛рдИ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдпрд╣ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдХреЛ рдЪрдХрд░рд╛ рджреЗрддрд╛ рд╣реИ рдХрд┐ CAS рдпрд╛ LL/SC рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдкреНрд╕ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рд╣рдореЗрдВ --wait рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ GCE's
рдбреЗрдмрд┐рдпрди-рдмреИрдХрдкреЛрд░реНрдЯ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рд╣реИред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рд╣рдореЗрдВ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рдЕрдВрджрд░ рдЕрдкрдирд╛ рд▓реЙрдХрд┐рдВрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЦреБрдж рдкрд░ рдХрджрдо рд░рдЦрдиреЗ рд╕реЗред

рдЧреБрд░реБ, 26 рдлрд░рд╡рд░реА, 2015 рджреЛрдкрд╣рд░ 1:56 рдмрдЬреЗ, рдЬрд╕реНрдЯрд┐рди рд╕рд╛рдВрддрд╛ рдмрд╛рд░рдмрд░рд╛ <
рд╕реВрдЪрдирд╛рдПрдВ@github.com> рдиреЗ рд▓рд┐рдЦрд╛:

рдорд╣рд╛рди рд╕рд╛рдорд╛рди! рдмрд╕ FYI рдХрд░реЗрдВ (рд╣рдорд╛рд░реА рдЖрдордиреЗ-рд╕рд╛рдордиреЗ рдХреА рдмрд╛рддрдЪреАрдд рд╕реЗ рдкреБрд╖реНрдЯрд┐ рдХрд░рддреЗ рд╣реБрдП),
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрдИ рд╕рдорд╡рд░реНрддреА iptables рдХрдорд╛рдВрдб рдЪрд▓рд╛рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ
(рд╡рд┐рднрд┐рдиреНрди рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред iptables рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИ
libiptc, рдФрд░ iptc_commit рдкрд░ рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВ:
http://www.tldp.org/HOWTO/Querying-libiptc-HOWTO/mfunction.html

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ 2013 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рддрднреА рдЬрдм рдЖрдк --wait (?) рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:
http://git.netfilter.org/iptables/commit/?id=93587a04d0f2511e108bbc4d87a8b9d28a5c5dd8

рдЗрд╕рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ iptables рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ iptables-save /
iptables-рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ (рдХрдо рд╕реЗ рдХрдо рдкреНрд░рддрд┐ рд╢реНрд░реГрдВрдЦрд▓рд╛); рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рджреЗрдЦреЗ рд╣реИрдВ рдЬреЛ рдмрд╕
рдЗрд╕рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп iptables-save & iptables-restore рдХрд╣рддреЗ рд╣реИрдВ
рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреЛрдб рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЦреЛрдж рд╕рдХрддрд╛ рд╣реВрдВ
рдКрдкрд░ рдЕрдЧрд░ рд╡рд╣ рдорджрджрдЧрд╛рд░ рд╣реИред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -76282629
.

рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрдирд╛рдиреЗ рдХреЗ рдмреАрдЪ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

рдЙрдЪрд┐рдд рдкреНрд░рд╢реНрди - рд╣рдореЗрдВ рд╢рд╛рдпрдж рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ
рдЗрд╕рдХреЗ рдмреАрдЪ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВ

рдЧреБрд░реБ, 26 рдлрд░рд╡рд░реА, 2015 рдХреЛ рд░рд╛рдд 8:47 рдмрдЬреЗ, рдмреНрд░рд╛рдпрди рдЧреНрд░рд╛рдВрдЯ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрдирд╛рдиреЗ рдХреЗ рдмреАрдЪ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ
рдирд┐рдпрдо?

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -76331174
.

@thockin рдЖрдЬ рдЖрдИрдЖрд░рд╕реА рд╕реЗ:

net.ipv4.conf.all.route_localnet 127.0.0.1 рдХреЛ DNAT рдирд┐рдпрдореЛрдВ рдХрд╛ рд▓рдХреНрд╖реНрдп рдмрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдбреЙрдХреНрд╕ рд╕реЗ :

route_localnet - рдмреВрд▓рд┐рдпрди

рд▓реВрдкрдмреИрдХ рдкрддреЛрдВ рдХреЛ рдордВрдЧрд▓ рдЧреНрд░рд╣ рдХрд╛ рд╕реНрд░реЛрдд рдпрд╛ рдЧрдВрддрд╡реНрдп рди рд╕рдордЭреЗрдВ
рд░реВрдЯ рдХрд░рддреЗ рд╕рдордпред рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд░реВрдЯрд┐рдВрдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП 127/8 рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ FALSE

рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдХреНрдпреВрдмрд▓реЗрдЯ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░реЗрдВрдЧреЗ, рдпрд╛ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдбреЗрдореЙрди рдореЗрдВ рд░рдЦреЗрдВрдЧреЗ? Kubelet рдкрд╣рд▓реЗ рд╕реЗ рд╣реА env vars рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдмрд╛рдЗрдирд░реА рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдРрд╕реЗ рдХрд╛рд░рдг рд╣реИрдВ рдЬрд┐рдирдХреА рд╡рдЬрд╣ рд╕реЗ рдЖрдк
k8s . рдХреЗ рдмрд╛рд╣рд░ рдЕрдиреНрдп рдорд╢реАрдиреЛрдВ (рдЬреИрд╕реЗ рдкрд╛рд▓рддреВ VMs) рдкрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ
k8s рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░ред

--рдмреНрд░реЗрдВрдбрди

рд╢реБрдХреНрд░рд╡рд╛рд░, 13 рдорд╛рд░реНрдЪ, 2015 рдХреЛ рдкреВрд░реНрд╡рд╛рд╣реНрди 11:37 рдмрдЬреЗ, рдмреНрд░рд╛рдпрди рдЧреНрд░рд╛рдВрдЯ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдХреНрдпреВрдмрд▓реЗрдЯ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░реЗрдВрдЧреЗ, рдпрд╛ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдбреЗрдореЙрди рдореЗрдВ рд░рдЦреЗрдВрдЧреЗ?
Kubelet рдкрд╣рд▓реЗ рд╕реЗ рд╣реА env vars рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -79230747
.

рдкрдХрдбрд╝рдирд╛ред рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ (рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрдИ рд╣реЛрдВрдЧреЗ, рдореБрдЭ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЗрдВ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореИрдВ рдПрдВрдЯреА-рдПрдВрдЯреНрд░реЙрдкреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВ - рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдХрд╣реАрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ, рдФрд░ рд╕рдордп-рд╕рдордп рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдореЗрдЯреЗрдВ (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдХрд░ ) рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╢рд╛рдпрдж рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓:

рдЬрдмрдХрд┐ (рд╕рдЪ) {
рд╡рд╛рд╕реНрддрд╡рд┐рдХрд╕реНрдЯреЗрдЯ = iptablesSave ()
рдЕрдЧрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐! = рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ {iptablesRestore (рд╡рд╛рдВрдЫрд┐рдд рд░рд╛рдЬреНрдп))
рд╕реНрд▓реАрдк_рдП_рдЬрдмрдХрд┐ ()
}

100% рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ iptables рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдпрд╣ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ
рдирд┐рдпрдоред

рд╢реБрдХреНрд░, рдорд╛рд░реНрдЪ 13, 2015 рдЕрдкрд░рд╛рд╣реНрди 1:16 рдмрдЬреЗ, рдХреНрд╡рд┐рдВрдЯрди рд╣реВрд▓ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдкрдХрдбрд╝рдирд╛ред рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ (рдЬрд┐рдирдореЗрдВ рд╕реЗ
рдХрдИ рд╣реЛрдВрдЧреЗ, рдореБрдЭ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЗрдВ), рдореИрдВ рдПрдВрдЯреА-рдПрдВрдЯреНрд░реЙрдкреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВ

  • рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЛ рдХрд╣реАрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ, рдФрд░ рд╕рдордп-рд╕рдордп рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рдореЗрд▓ рдХрд░реЗрдВ рдФрд░
    рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдХрд░)ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╢рд╛рдпрдж рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓:

рдЬрдмрдХрд┐ (рд╕рдЪ) {
рд╡рд╛рд╕реНрддрд╡рд┐рдХрд╕реНрдЯреЗрдЯ = iptablesSave ()
рдЕрдЧрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐! = рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ {iptablesRestore (рд╡рд╛рдВрдЫрд┐рдд рд░рд╛рдЬреНрдп))
рд╕реНрд▓реАрдк_рдП_рдЬрдмрдХрд┐ ()
}

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -79336296
.

рдХрдореЛрдмреЗрд╢ рдпрд╣реА рдЕрдм рд╣реЛрддрд╛ рд╣реИ, рд╣реИ рдирд╛? рдкреНрд░рддреНрдпреЗрдХ рдЕрдкреЗрдХреНрд╖рд┐рдд рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП,
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрд╕реЗ рдмрдирд╛рдПрдВред

рд╢реБрдХреНрд░, рдорд╛рд░реНрдЪ 13, 2015 рдЕрдкрд░рд╛рд╣реНрди 2:02 рдмрдЬреЗ, рдмреНрд░реЗрдВрдбрди рдмрд░реНрдиреНрд╕ рдиреЛрдЯрд┐рдлрд╝рд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

100% рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ iptables рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдпрд╣ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ
рдирд┐рдпрдоред

рд╢реБрдХреНрд░, рдорд╛рд░реНрдЪ 13, 2015 рдЕрдкрд░рд╛рд╣реНрди 1:16 рдмрдЬреЗ, рдХреНрд╡рд┐рдВрдЯрди рд╣реВрд▓ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдкрдХрдбрд╝рдирд╛ред рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ (рдЬрд┐рдирдореЗрдВ рд╕реЗ
рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реЛрдВрдЧреЗ, рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ), рдореИрдВ рдПрдВрдЯреА-рдПрдВрдЯреНрд░реЙрдкреА рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВ
рдкрд╣реБрдВрдЪрдирд╛

  • рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЛ рдХрд╣реАрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ, рдФрд░ рд╕рдордп-рд╕рдордп рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рдореЗрд▓ рдХрд░реЗрдВ рдФрд░
    рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдХрд░)ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╢рд╛рдпрдж рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓
    рдЬреИрд╕рд╛:

рдЬрдмрдХрд┐ (рд╕рдЪ) {
рд╡рд╛рд╕реНрддрд╡рд┐рдХрд╕реНрдЯреЗрдЯ = iptablesSave ()
рдЕрдЧрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐! = рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ {iptablesRestore (рд╡рд╛рдВрдЫрд┐рдд рд░рд╛рдЬреНрдп))
рд╕реНрд▓реАрдк_рдП_рдЬрдмрдХрд┐ ()
}

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
<
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -79336296

.

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -79392626
.

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдПрдХ рдЕрд▓рдЧ рдмрд╛рдЗрдирд░реА рдореЗрдВ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЗрд╕рдореЗрдВ рд▓рд┐рдВрдХ рдХрд░реЗрдВ
рдХреНрдпреВрдмрд▓реЗрдЯ (рдЙрд╕реА рддрд░рд╣ cAdvisor рдЬрд╛ рд░рд╣рд╛ рд╣реИ) рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдмрдирд╛рдПрдВ
рдЙрд╕реА рд╕рдордпред

рд╢реБрдХреНрд░, рдорд╛рд░реНрдЪ 13, 2015 рдЕрдкрд░рд╛рд╣реНрди 12:03 рдмрдЬреЗ, рдмреНрд░реЗрдВрдбрди рдмрд░реНрдиреНрд╕ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдмрд╛рдЗрдирд░реА рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдРрд╕реЗ рдХрд╛рд░рдг рд╣реИрдВ рдЬрд┐рдирдХреА рд╡рдЬрд╣ рд╕реЗ рдЖрдк
k8s . рдХреЗ рдмрд╛рд╣рд░ рдЕрдиреНрдп рдорд╢реАрдиреЛрдВ (рдЬреИрд╕реЗ рдкрд╛рд▓рддреВ VMs) рдкрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ
k8s рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░ред

--рдмреНрд░реЗрдВрдбрди

рд╢реБрдХреНрд░рд╡рд╛рд░, 13 рдорд╛рд░реНрдЪ, 2015 рдХреЛ рдкреВрд░реНрд╡рд╛рд╣реНрди 11:37 рдмрдЬреЗ, рдмреНрд░рд╛рдпрди рдЧреНрд░рд╛рдВрдЯ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдХреНрдпреВрдмрд▓реЗрдЯ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░реЗрдВрдЧреЗ, рдпрд╛ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдбреЗрдореЙрди рдореЗрдВ рд░рдЦреЗрдВрдЧреЗ?
Kubelet рдкрд╣рд▓реЗ рд╕реЗ рд╣реА env vars рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
<
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -79230747

.

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -79257059
.

рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХрддрд╛ рд╣реЛрдЧреА рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕-рдореЗрд╕реЛрд╕ рдХреЗ рд▓реЛрдЧреЛрдВ рдХрд╛ рдХреНрдпрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдиреЛрдб рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдПрдХреАрдХреГрдд рдпрд╛ рдореЙрдбреНрдпреВрд▓рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред @jdef?

[[рд╕рдВрдкрд╛рджрд┐рдд]] рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ k8s рдШрдЯрдХреЛрдВ рдХреА рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ рдкрд╕рдВрдж рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдмрд▓реЗрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЕрд▓рдЧ рдкреНрд░реЙрдХреНрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд▓рд╛рдирд╛ред рдпрджрд┐ рдкреНрд░реЙрдХреНрд╕реА рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЛ рдиреАрдЪреЗ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд╕реЛрд╕ рдирд┐рд╖реНрдкрд╛рджрдХреЛрдВ рдХреЗ рдкрд╛рд╕ рдЕрднреА рдмрд╣реБрдд рд╕реБрдВрджрд░ рд╡рд┐рдлрд▓рддрд╛ рдореЙрдбрд▓ рдирд╣реАрдВ рд╣реИ - рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕-рдореЗрд╕реЛрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдХ рдПрдХ рдХреНрдпреВрдмрд▓реЗрдЯ/рдирд┐рд╖реНрдкрд╛рджрдХ рд╣рд╛рдЗрдмреНрд░рд┐рдб рд╣реИред рдпрд╣ рдореЙрдбрд▓ рдореБрдЭреЗ рдореЗрд╕реЛрд╕ рдорд╛рд╕реНрдЯрд░ рдкрд░ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрд╡рд╛ рдЪрд▓рд╛рдиреЗ рджреЗрддрд╛ рд╣реИ рдФрд░ рдмрд╛рд╣рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕рдмрдорд┐рдЯ рдХреА рдЧрдИ рдЖрд░рдВрднрд┐рдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдореЗрдВ)ред

рдкреИрдХрд┐рдВрдЧ/рд╢рд┐рдкрд┐рдВрдЧ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рдЗрдкрд░рдХреНрдпреВрдм рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдПрдХ рд╕рд╛рде рдкреИрдХ рдХрд░рдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдореИрдВрдиреЗ рдпрд╣ рднреА рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕-рдореЗрд╕реЛрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдШрдЯрдХреЛрдВ рдХреЛ рдиреНрдпреВрдирддрдо рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдХреИрд╕реЗ рдкреИрдХреЗрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдПред Iptables рдореЗрдВ рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВ рдФрд░ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреА рд╣реИред рддреЛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордЭреМрддрд╛ k8sm рдврд╛рдВрдЪреЗ рдХреЛ рдПрдХ рдбреЙрдХрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд┐рдк рдХрд░рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХрд▓ рд╣рд╛рдЗрдкрд░рдХреНрдпреВрдм рдЫрд╡рд┐ рд╣реЛрддреА рд╣реИ - рд▓реЗрдХрд┐рди рдЬрдм рд╡рд╣ рдврд╛рдВрдЪрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХреНрдпреВрдмрд▓реЗрдЯ-рдирд┐рд╖реНрдкрд╛рджрдХ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд╣рд╛рдЗрдкрд░рдХреНрдпреВрдм рдЫрд╡рд┐ рдХреЛ рд╢рд┐рдк рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдпрд╛ рддреЛ рдХреНрдпреВрдмрд▓реЗрдЯ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ- рдирд┐рд╖реНрдкрд╛рджрдХ рдпрд╛ рдкреНрд░реЙрдХреНрд╕реА - рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реАрдзреЗ рд╣реЛрд╕реНрдЯ рдкрд░ рдЪрд▓ рд╕рдХрддреА рд╣реИред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ iptables- {рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝, рд▓рд╛рдЗрдмреНрд░реЗрд░реА}-рдЗрди-рдбреЙрдХрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рдПрдВрдб-рд░рди рдХрд░рддрд╛ рд╣реИред

рдореЙрдбреНрдпреВрд▓рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП +1, рдПрдХрд▓ рдмрд╛рдЗрдирд░реА рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП +1

@thockin рдкреБрди: рдПрдВрдЯреА-рдПрдиреНрдЯреНрд░реЙрдкреА: рдЖрд╣ рд╣рд╛рдБред рдореИрдВ рдкреНрд░реЙрдХреНрд╕реАрдпрд░ рджреЗрдЦрддрд╛ рд╣реВрдВред рд╕рд┐рдВрдХрд▓реВрдк() рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред рдХрд┐рд╕ рдорд╛рдорд▓реЗ рдореЗрдВ 26 рдлрд░рд╡рд░реА рдХреЗ @bgrant0607 рдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдирд╣реАрдВ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ SyncLoop() (рд╡рд░реНрддрдорд╛рди рдореЗрдВ 1 рдорд┐рдирдЯ) рдХреЗ рдЕрдЧрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рдорд░рдореНрдордд рдХреА рдЬрд╛рдПрдЧреА? рдпрд╛ рд╢рд╛рдпрдж рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?

@thockin

  1. рдХреНрдпрд╛ рд╣рдо рдмреНрд▓реИрдХ рд╣реЛрд▓-рдЖрдИрдПрдирдЬреА рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реИрдВ рдпрд╛ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕реЗрд╡рд╛/рдкреЙрдб рд▓реЗрдЦрдХ рдХреЛ рдзреНрдпрд╛рди рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдпреВрдЬрд░рд╕реНрдкреЗрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╡рд░реНрдЪреБрдЕрд▓ рдЖрдИрдкреА 10.0.0.11 рдореЗрдВ 3 рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣реИрдВ, 10.240.1.1, 10.240.1.2, 10.240.1.3
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╕реНрдерд╛рди рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХрд╣рддрд╛ рд╣реИ, 10.240.1.1 рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рддреЛ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ рдХрд┐ tcp рдХрдиреЗрдХреНрд╢рди 10.240.1.1 рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рдЕрдиреНрдп 2 рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддрд╛ рд╣реИред

iptables рдХреЗ рд╕рд╛рде
рдЬрдм рд╣рдо iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдИ рдлрд╝реЙрд▓рдмреИрдХ рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рд╣рдо рдЗрд╕реЗ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдЧреИрд░-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧреАред

рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЧреИрд░-рдЙрддреНрддрд░рджрд╛рдпреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдирд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдкреЙрдб рд▓реЗрдЦрдХ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ?

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрддреНрдкрд░рддрд╛ рдЬрд╛рдВрдЪ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХреНрдпреВрдмрд▓реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╛рдВрдЪ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдирд┐рдпрдВрддреНрд░рдХ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╕реВрдЪреА рд╕реЗ рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рд╕реЗрд╡рд╛ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рд▓рдХреНрд╖реНрдп рд╕реЗрдЯ рд╕реЗ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЗрд╕реЗ рдЬреАрдПрд╕рдУрд╕реА рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ:

рддреЛ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╣рдо рдЧреАрд▓реЗ iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдирдпрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдпрдерд╛ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ?

https://github.com/GoogleCloudPlatform/kubernetes/issues/5419 рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрджрд░реНрд╢ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реЛрдЧрд╛; рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдЖрдИрдкреА-рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпрд╛ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреАрд▓реЗрд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдгред

рдореБрдЭреЗ рдЬреАрдПрд╕рдУрд╕реА рдореЗрдВ рднреА рдереЛрдбрд╝реА рджреЗрд░ рд╣реЛ рдЧрдИ рд╣реИ (рд╡рд╕рдВрдд рдХреА рдЫреБрдЯреНрдЯреА рдкрд░ рдерд╛ ....), рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рднреА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдХрд▓/рдмрд╛рдж рдореЗрдВ рдЖрдЬ рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬреАрдПрд╕рдУрд╕реА рдкреНрд░рд╕реНрддрд╛рд╡ рдЬрдорд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ 27 рд╡реАрдВ рд╕рдордп рд╕реАрдорд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣реИ рдпрд╣ рдЕрднреА рднреА рдЦреБрд▓рд╛ рд╣реИ)?

@BenTheElder рд╣рд╛рдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдЬрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрдХреНрд░рд╡рд╛рд░ рддрдХ рдХрд╛ рд╕рдордп рд╣реИред рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдХреА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╕реНрддрд╛рд╡ рдирд╣реАрдВ рд╣реИред

рдореИрдВ 2012 рд╕реЗ рдкреБрд░рд╛рдиреЗ рдХрд░реНрдиреЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддрдирд╛ рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдЬрд┐рддрдирд╛ рдХрд┐ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ iptables рдХреЗ рдмрд┐рдирд╛ OSes рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╣рдж рддрдХ рдЯреВрдЯ рдЪреБрдХреЗ рд╣реИрдВред

@ bgrant0607 рдзрдиреНрдпрд╡рд╛рдж!
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рддрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЪреБрди рд╕рдХрддрд╛ рд╣реВрдВред рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░реА рдЬрд╛рдВрдЪ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧреА рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рддреИрдпрд╛рд░реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рдкреЙрдб рдХреЗ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдкрд╛рд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП -> рдХреНрдпреВрдмрд▓реЗрдЯ -> рдПрдкрд┐рд╕рд░реНрд╡рд░ -> рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕_рдХрдВрдЯреНрд░реЛрд▓рд░ -> рдПрдкрд┐рд╕рд░реНрд╡рд░ -> рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реАред рдореБрдЭреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдлрд▓рддрд╛ рдФрд░ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд░реЛрдЯреЗрд╢рди рд╕реЗ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмреАрдЪ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреАред рдЗрд╕ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди, рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдПрдХ рдЧреИрд░-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдкрд░ рдкреНрд░реЙрдХреНрд╕реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓рддрд╛ рдкрд░ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд░рдгрдиреАрддрд┐ рд╣реИ, рдФрд░ рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░реНрд╕ (рдЬреИрд╕реЗ рд╣реИрдкреНрд░реЛрдХреНрд╕реА, рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдИрдПрд▓рдмреА) рдХреА рдпрдереЛрдЪрд┐рдд рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЛ рдмрд╛рд╣рд░реА рдПрд▓рдмреА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЗрдВрдЯреНрд░рд╛-рдХреНрд▓рд╕реНрдЯрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдПрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░, iptables рдХреЗ рд╕рд╛рде рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрд▓рдмреА рдмрдирд╛рдо рдкреБрди: рд╕рдВрдпреЛрдЬрди рдкрд░ рдЗрдирд╛рдпрдд рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдирд┐рдХрд╛рд╕реА рдХреЗ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗред

рдорд╛рдЗрдХ рдЕрдЪреНрдЫреЗ рдЕрдВрдХ рдЙрдард╛рддрд╛ рд╣реИред

рд╕реЛрдо, рдорд╛рд░реНрдЪ 23, 2015 рдЕрдкрд░рд╛рд╣реНрди 11:00 рдмрдЬреЗ, рдорд╛рдЗрдХ рдбреИрдиреА рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдПрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░, рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЗрдирд╛рдпрдд рд╕реЗ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ рдХрдиреЗрдХреНрд╢рди
рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрд▓рдмреА рдмрдирд╛рдо рдкреБрди: рд╕рдВрдпреЛрдЬрди рдкрд░ рдЬрд▓ рдирд┐рдХрд╛рд╕реАред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -85354865
.

рдореИрдВ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рдкреНрд░реЙрдХреНрд╕реА рдкреАрдХреЗрдЬреА рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ; рдХреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╢реЛрдзрди рдореЗрдВ iptables рдХрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ?

рдЗрд╕ рдкрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ рд╕реНрд░реЛрдд рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ iptables рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

@mikedanese @thockin рддреИрдпрд╛рд░реА рдирд┐рдпреЛрдЬрд┐рдд рдЖрдЙрдЯреЗрдЬ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЕрдирд┐рдпреЛрдЬрд┐рдд рдЖрдЙрдЯреЗрдЬ рд╣рдореЗрд╢рд╛ рдХреБрдЫ рдирдореВрджрд╛рд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛ред рдорддрджрд╛рди рдЕрдВрддрд░рд╛рд▓ рдЖрдо рддреМрд░ рдкрд░ рдЕрджреНрдпрддрди рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд▓рдВрдмрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╣рдо рдХреНрдпреВрдмрд▓реЗрдЯ рдФрд░ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмреАрдЪ рд╕реАрдзреЗ рд╕рдВрдЪрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрдВрддрд╡реНрдп рдиреЛрдб рдкрд░ рдкреБрди: рдЕрдЧреНрд░реЗрд╖рдг рдирд┐рдпрдо рднреА рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдПрдкрд┐рд╕рд░реНрд╡рд░ рдФрд░ рдЖрджрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд▓рдВрдмрддрд╛ рдмрд╣реБрдд рд▓рдВрдмреА рд╣реИ рдФрд░/рдпрд╛ рд╡рд╣ рдкрде рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИред

@BenTheElder рдореМрдЬреВрджрд╛ рдирд┐рдпрдо рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд░реВрдЯ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рд╡рд┐рдЪрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

@ bgrant0607 рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдЕрдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдФрд░ рдкрдврд╝рд╛ рдЧрдпрд╛ рдФрд░ рдореИрдВ рд▓рдЧрднрдЧ рдПрдХ рдорд╕реМрджрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВред

рдорд╕реМрджрд╛ рдЬреАрдПрд╕рдУрд╕реА рдкреНрд░рд╕реНрддрд╛рд╡: https://gist.github.com/BenTheElder/ac61900595a7ea9ea9b5

рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╢реЗрдбреНрдпреВрд▓ рдЕрдиреБрднрд╛рдЧ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред
рдХреНрдпрд╛ рдореБрдЭреЗ рдЬрд▓реНрджреА рдЦрддреНрдо рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдореИрдВ рдХреБрдЫ рдЕрдиреНрдп (рдЫреЛрдЯреЗ?) рдЧреИрд░-рд▓реЗ рдЧрдП рдЬреАрдПрд╕рдУрд╕реА рдореБрджреНрджреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЬреИрд╕реЗ:
https://github.com/GoogleCloudPlatform/kubernetes/issues/1651ред

рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдмрд╕реЗ рджреЛрд╕реНрддрд╛рдирд╛ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдХреЗрдХ рд▓реЗрддрд╛ рд╣реИред

рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред :рд╕реНрдорд╛рдЗрд▓реА:

рдореИ рдмрд╣реБрдд рдЙрддреНрддреЗрдЬрд┐рдд рд╣реВрдБред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдЕрднреА рдЕрдкрдиреЗ рдлрд╛рдЗрдирд▓ рдХреЗ рдмреАрдЪ рдореЗрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХреБрдЫ рд╕рдордп рд╕реЗ рдореБрдЭреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ https://github.com/GoogleCloudPlatform/kubernetes/pull/7032 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛ рд░рд╣реА рд╣реИ рдЦрд╝рддреНрдо рд╣реЛрдирд╛ред

@thockin @brendanburns рдХреНрдпрд╛ рдХреЛрдИ рднреА рдЧреАрд▓реЗрд░ рдкрд░ рд╡рдЬрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рд╣рдо рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА iptables> = 1.4.11 (2011-рдордИ -26 рдЬрд╛рд░реА) рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред

// Executes the rule check without using the "-C" flag, instead parsing iptables-save.
// Present for compatibility with <1.4.11 versions of iptables.  This is full
// of hack and half-measures.  We should nix this ASAP.
func (runner *runner) checkRuleWithoutCheck(table Table, chain Chain, args ...string) (bool, error) {

рд╕реНрд░реЛрдд: https://github.com/GoogleCloudPlatform/kubernetes/blob/aec41967416cf3463b188d72c97e71465e00719d/pkg/util/iptables/iptables.go#L206

рдХреНрдпрд╛ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдЙрдореНрд░ рдХреЗ рджреЗрдЦрддреЗ рд╣реИрдВ?

рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд░рди рдЯрд╛рдЗрдо рдкрд░ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рдХрд┐рд╕ iptables рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ "рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд" рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рд╣рдо рд╕рдВрд╕реНрдХрд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХреБрдЫ:

рдЕрдЧрд░ (рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг) {
рд▓реЛрдб рдпреВрдЬрд░ рд╕реНрдкреЗрд╕ рдкреНрд░реЙрдХреНрд╕реАрдЗрдВрдЧ рдореЙрдбреНрдпреВрд▓
}
рдЕрдиреНрдпрдерд╛ {
рд▓реЛрдб iptables рдкреНрд░реЙрдХреНрд╕реА рдореЙрдбреНрдпреВрд▓
}

рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рдпрджрд┐ рдХрдерди (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ 2) рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╢рд╛рдЦрд╛рдПрдВ рд░рдЦрдиреЗ рдХреЗ рдкреНрд░рддрд┐ рд╕рд╛рд╡рдзрд╛рдиреА рдмрд░рддрддрд╛ рд╣реВрдВ, рдФрд░ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрд╕рдВрднрд╡ рд╣реЛ рдХреЛрдб рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдерди рд╕реЗ рдмрдЪреЗрдВред

рдЙрдкрд░реЛрдХреНрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд┐рддрдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓рд╛ рд╣реИред

рд╕рд╛рде рд╣реА, рдХреНрдпрд╛ рд╕рднреА рдиреЛрдбреНрд╕ рдХреЛ рдПрдХ рд╣реА рд░рдгрдиреАрддрд┐ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдмрдирд╛рдо iptables рдкреНрд░реЙрдХреНрд╕реАрдЗрдВрдЧ) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддрд╛ рд╣реИ?

рдпрджрд┐ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ, рддреЛ рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╕рддрд╣ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╢рд╛рдЦрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╡рд░реНрдЧ рдХреЗ рдЕрдиреБрдкрд╛рдд рдореЗрдВ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ рдпрджрд┐ рдХрдерди (рдпрд╛рдиреА рд╕реНрд░реЛрдд_рдореЛрдб x dest_mode), рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдореЛрдб рдХреА рд╕рдВрдЦреНрдпрд╛ 2 рддрдХ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╣реИ .

рдХреНрдпреВ

рдУрд╣, рдФрд░ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдкреБрд░рд╛рдиреЗ рдиреЛрдбреНрд╕ рджреЗрдЦрддреЗ рд╣реИрдВ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ "рд╣рд╛рдВ" рд╣реИред

рдЙрдкрд░реЛрдХреНрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдЕрдВрдХ рдореЗрдВ рдмрд╣реБрдд рдЪрд░реНрдЪрд╛ рд╣реИред, рдореИрдВ рдЗрд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдЦреЛрджрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

@ рдХреНрд╡рд┐рдВрдЯрди-рд╣реВрд▓ рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдиреЛрдб рдкрд░ рдпреВрдЬрд░ рд╕реНрдкреЗрд╕ рдФрд░ рджреВрд╕рд░реЗ рдкрд░ iptables рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ -C рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрд╕ рд╣реИрдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдореЛрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗрд╡рд▓ 2 рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЬрд┐рди рдиреЛрдбреНрд╕ рдореЗрдВ -C рд╣реИ, рд╡реЗ рд╢реБрджреНрдз iptables рд╕рдВрд╕реНрдХрд░рдг (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ) рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрд╣ рд╣рд╛рдБ, #7528 рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рджред
рдореИрдВрдиреЗ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рддрд▓рд╛рд╢ рдХреАред рдореБрдЭреЗ рдорд┐рд▓реА рдПрдХрдорд╛рддреНрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реА рдереАрдВ рдХрд┐ рд╣рдо рдЕрджреНрд╡рд┐рддреАрдп рдЖрдИрдкреА рдХреИрд╕реЗ рдорд╛рдирддреЗ рд╣реИрдВред

рдПрдХ рдмрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреЗрд╣рддрд░ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рд╣реИрдВ, рд╣рдореЗрдВ рд╢рд╛рдпрдж рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред

рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЗрд╕ рдкрд░ рд╣реИрдХрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░ рджреА рд╣реИ: https://github.com/BenTheElder/kubernetes/tree/iptables_proxy

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдкреАрдЫреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╕реНрдерд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ:
https://github.com/BenTheElder/kubernetes/commit/4e5d24bb74aca43b0dd37cf5cfee8a34f8eff2bf

рдореБрдЭреЗ рдЕрдм рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЪрдпрди cmd/kube-proxy рдпрд╛ pkg/proxy рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдореИрдВ рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реНрд╡-рдирд┐рд░реАрдХреНрд╖рдг рдореЗрдВ рдпрд╣ рд╢рд╛рдпрдж рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

@BenTheElder рдореИрдВрдиреЗ рдХреИрд▓рд┐рдХреЛ рдХреЗ рд╕рд╛рде рдЯрд┐рдо рдХреЗ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рд╡реЗ рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЕрдкрдирд╛ рд╕рд╛рд░рд╛ рдХрд╛рдо рдлрд┐рд▓реНрдЯрд░ рдЯреЗрдмрд▓ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдбреАрдПрдирдПрдЯреА рдирд┐рдпрдореЛрдВ рдиреЗ рдЙрд╕ рдмрд┐рдВрджреБ рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╕реНрд░реЛрдд рдЖрдИрдкреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдпрддрдГ, рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ iptables рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рднреА рд╡рд╣рд╛рдВ рдирд┐рдпрдо рдбрд╛рд▓рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдирд┐рдпрдореЛрдВ рдХреЛ рд░реМрдВрджрдирд╛ (рдпрд╛ рд░реМрдВрджрдирд╛) рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрджрд┐ рд╡реЗ рд╕рдбрд╝рдХ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред

@ рд╕рдордорд┐рдд рд╣рд╛рдБред рдореИрдВ рдЕрднреА рддрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдереЛрдбрд╝рд╛ рд╡реНрдпрд╕реНрдд рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╕реЛрдорд╡рд╛рд░ рдХреЛ рдореБрдЭреЗ рдкрд╣рд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЬреАрдПрд╕рдУрд╕реА рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреВрд░реНрдгрдХрд╛рд▓рд┐рдХ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдРрд╕рд╛ рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдПрдкреАрдЖрдИ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рд╕рдЪ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд╛рдл рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдХреЛрдИ рдЕрдВрджрд╛рдЬрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреИрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ/рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдореИрдВрдиреЗ рдХреБрдЫ рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд▓рдЧрднрдЧ рдЕрдиреБрддреНрддрд░рджрд╛рдпреА рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдпрд╣рд╛рдБ рд╣реИ: https://github.com/MikaelCluseau/kubernetes-iptables-proxy/blob/master/iptables-routing.rbред

рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкрд╣рд▓реЗ рдирд╣реАрдВ рджреЗрдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдХреБрдЫ рдХрд░реАрдм рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реВрдВ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЖрдВрдХрдбрд╝реЗ рдорд┐рд▓рд╛рди рд╡рдЬрди рдХреЗ рд╕рд╛рде рдЧрд▓рддреА рдХреА :-)

рдореИрдВ рдпрд╣ рднреА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдордиреЗ nf_conntrack_max рдХреЛ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдЗрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

# cat /etc/sysctl.d/nf_conntrack.conf 
net.netfilter.nf_conntrack_max = 1000000
net.nf_conntrack_max           = 1000000

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ iptables рдХреА рд╕рднреА рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп IPVS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?
рдпрд╣ iptables рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ ...
рдпрд╣рд╛рдБ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ: https://github.com/noxioz/go-ipvs
рдФрд░ рд╕рд┐рд░реНрдл #561 рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ktcpvs рдкреНрд░реЛрдЬреЗрдХреНрдЯ рднреА рд╣реИред

IPVS рднреА рдиреЗрдЯрдлрд┐рд▓реНрдЯрд░ (рдЬреИрд╕реЗ iptables) рдкрд░ рдПрдХ рдЕрдореВрд░реНрддрддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рд╣рдо iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ; рдФрд░ iptables рдиреЗрдЯрдлрд┐рд▓реНрдЯрд░ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ/рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдЬрд╣рд╛рдБ рддрдХ #561 рдФрд░ ktcpvs рдХрд╛ рдкреНрд░рд╢реНрди рд╣реИ: ktcpvs рдХрд╛ 2004 рдХреЗ рдмрд╛рдж рд╕реЗ рдХреЛрдИ рд╡рд┐рдХрд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рдФрд░ рдРрд╕рд╛ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ URL рдкреБрдирд░реНрд▓реЗрдЦрди рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рднрд▓реЗ рд╣реА #561 рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмреИрд▓реЗрдВрд╕рд░реНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИред

рд╕рд╛рдЗрдб рдиреЛрдЯ: рдЙрд╕ рдЧреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдкрд╛рд╕ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдирд╣реАрдВ рд╣реИред

iptables рдХреЛ nftables ( nft cli) рдХреЗ рдкрдХреНрд╖ рдореЗрдВ "рдПрдХ рджрд┐рди" рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдирд┐рдпрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП iptables CLI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдХрд╛рдлреА рдордЬрдмреВрдд рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ ...

рдПрдХ рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ рдореБрдЭреЗ рдпрд╣ рдЕрдиреНрдп рдПрдордЖрдИрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдвреВрдВрдврддреА рд╣реИ: https://github.com/vieux/go-libipvs
рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рдордХрд╛рдЬреА рдмрдирд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрд░реНрдиреЗрд▓ рдХреЛрдб рдХреЗ рдЕрдВрджрд░ рд╕рднреА рдЬрдЯрд┐рд▓рддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреБрд▓реЗрдЯрдкреНрд░реВрдл рд╣реИред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ iptables рдХреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдореБрдЦ рдбрд┐рд╕реНрдЯреНрд░реЛрд╕ рд╕реЗ рдЬрд▓реНрдж рд╣реА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ iptables CLI рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ netfilter рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ ...?

рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдХреА рддрд░рд╣ рдПрдХ рдЕрдзреВрд░рд╛ cgo рд░реИрдкрд░ iptables рдФрд░ iptables-restore рд▓рд┐рдП рдЦреЛрд▓рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕реБрд░рдХреНрд╖рд┐рдд рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреНрдп рдирд┐рдпрдореЛрдВ (рдЬреИрд╕реЗ рдиреЛрдбрдкреЛрд░реНрдЯреНрд╕) рдХреЗ рд▓рд┐рдП рдФрд░ iptables-restore рд╕рд╛рде iptables рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдХреБрдЫ рдкрд░рдорд╛рдгреБ рдХреЗ рд╕рд╛рде рдмрд▓реНрдХ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдИрдкреАрд╡реАрдПрд╕ рдХреЛ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрд▓рдЧ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рд╕рдорд░реНрдерд┐рдд рдЙрдкрдпреЛрдЧ рд╣реЛрдирд╛:

2.2. Gotchas: рдЖрдкрдХреЛ рдмрд╛рд╣рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдирд┐рд░реНрджреЗрд╢рдХ рдФрд░ рд░реАрдпрд▓рд╕рд░реНрд╡рд░ рд╡рд░реНрдЪреБрдЕрд▓ рд╕реЗрд╡рд╛ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ)

LVS рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдкрд░реАрдХреНрд╖рдг/рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо 3 рдорд╢реАрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА: рдХреНрд▓рд╛рдЗрдВрдЯ, рдбрд╛рдпрд░реЗрдХреНрдЯрд░, рд░рд┐рдпрд▓рд╕рд░реНрд╡рд░ред

рдмрд╛рд╣рд░ рд╕реЗ, LVS рдПрдХ рдорд╢реАрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рдПрд▓рд╡реАрдПрд╕ (рдирд┐рджреЗрд╢рдХ, рдпрд╛ рд░реАрдпрд▓рд╕рд░реНрд╡рд░) рдореЗрдВ рдорд╢реАрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд╣рд░реА рдЧреНрд░рд╛рд╣рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк LVS рдХреА рдХрд┐рд╕реА рднреА рдорд╢реАрди рд╕реЗ LVS рдирд┐рдпрдВрддреНрд░рд┐рдд рд╕реЗрд╡рд╛ (рдЬреИрд╕реЗ http, smtp, рдЯреЗрд▓рдиреЗрдЯ) рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ; рдбрд╛рдпрд░реЗрдХреНрдЯрд░ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рд╣реИрдВрдЧ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд░рд┐рдпрд▓рд╕рд░реНрд╡рд░ рд╕реЗ рдПрдХреНрд╕реЗрд╕ LVS рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реБрдП рд▓реЛрдХрд▓ рд╕рд░реНрд╡рд┐рд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдРрд╕рд╛ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдИрдкреАрд╡реАрдПрд╕/рдПрд▓рд╡реАрдПрд╕ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬреИрд╕реЗ рджрд┐рд▓ рдХреА рдзрдбрд╝рдХрди рдбреЗрдореЙрди рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдЧрд░рд╛рдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рднреАрддрд░ рд╕реЗ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдкреЙрдб рд╕реНрд╡рд╛рд╕реНрдереНрдп рдирд┐рдЧрд░рд╛рдиреА рдЖрджрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВред

iptables рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП +1ред рд╣рдо рдХреИрд▓рд┐рдХреЛ рдореЗрдВ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рдордЬрдмреВрдд рд╕рд╛рдмрд┐рдд рд╣реБрдП рд╣реИрдВ рдФрд░ рд╡реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдХреЗрд▓ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ)ред @BenTheElder , рдХреНрдпрд╛ рдЖрдкрдХреЛ iptables рдХреЗ рдХрд┐рд╕реА рднреА рдХрд╛рдо рдореЗрдВ рдорджрдж рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдЪрд┐рдк рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

iptables рдФрд░ iptables-restore рдХреЗ рд▓рд┐рдП +1, рдпрд╣ рдмрд╣реБрдд рдХрдо рднрд╛рд░реА-рднрд░рдХрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ
рдЖрдИрдкреАрд╡реАрдПрд╕/рдПрд▓рд╡реАрдПрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдФрд░ рдХрдо рд╕рд┐рд╕реНрдЯрдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (рджрд┐рд▓ рдХреА рдзрдбрд╝рдХрди рдбреЗрдорди,
рдЖрджрд┐ред)

рд╢рдирд┐рд╡рд╛рд░, 13 рдЬреВрди, 2015 рдкреВрд░реНрд╡рд╛рд╣реНрди 11:27 рдмрдЬреЗ, рдПрд▓реЗрдХреНрд╕ рдкреЛрд▓рд┐рдЯ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

iptables рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП +1ред рд╣рдо рдХреИрд▓рд┐рдХреЛ рдореЗрдВ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░
рд╡реЗ рдордЬрдмреВрдд рд╕рд╛рдмрд┐рдд рд╣реБрдП рд╣реИрдВ рдФрд░ рд╡реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ (рдЖрдкрдХреЛ рдорд╛рдирддреЗ рд╣реБрдП)
рдЕрдкрдиреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд░реЗрдВ)ред @BenTheElder https://github.com/BenTheElder ,
рдХреНрдпрд╛ рдЖрдкрдХреЛ iptables рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЬрд╛рдиреЗ рджреЗрдВ
рд╣рдореЗрдВ рдкрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -111719474
.

рдзрдиреНрдпрд╡рд╛рдж рдПрд▓реЗрдХреНрд╕, рдЕрдЧрд░ рдореИрдВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдВрдЧрд╛ред

рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рд╕рдордп рд╣реИ рддреЛ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛/рдЗрдирдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (https://github.com/GoogleCloudPlatform/kubernetes/pull/9210)ред

рдпрд╣ рдЕрдзрд┐рдХрддрд░ рдкреВрд░реНрдг рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдЕрджреНрдпрддрд┐рдд рд╣реИ, рдореБрдЭреЗ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдирд┐рдпрдореЛрдВ рдХреА рддреБрд▓рдирд╛ iptables-save рд╕реЗ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд╛рдЙрдВрдЯрд░ рдЗрддреНрдпрд╛рджрд┐ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдпрдо рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ (рдЬреНрдпрд╛рджрд╛рддрд░) рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдУрдкреА рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдирд┐рдпрдореЛрдВ рдХрд╛ рдмрд╣реБрдд рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рд╕рд┐рд░реНрдл рдЪреЗрди рдирд╛рдо рд╣реИ, рдЬреЛ рдХрд┐ iptables рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рдпрд╣рд╛рдВ рдПрдХ рдХрд┐рдирд╛рд░реЗ рдХрд╛ рдорд╛рдорд▓рд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/BenTheElder/kubernetes/issues/3 рдЬрд┐рд╕реЗ рдкреЙрдбреНрд╕ рдХреЛ рдЦреБрдж рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ @MikaelCluseau рдФрд░ @Symmetric рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЪрд░реНрдЪрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирдпрд╛ рд╕реНрд╡рд░реВрдк рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рдзрдиреНрдпрд╡рд╛рдж рдлрд┐рд░ рд╕реЗ!); рд▓реЗрдХрд┐рди рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рдпрдо рдбрд┐рдЬрд╛рдЗрди рдкрд░ рдХреБрдЫ рдФрд░ рдЗрдирдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдХрд┐рд╕реА рдФрд░ рдХреЗ рдкрд╛рд╕ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рддреЛ рдЗрд╕рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдорд╛рд░реНрдЧ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЕрдзрд┐рдХ рдЗрдирдкреБрдЯ рдХреЗ рдмрд┐рдирд╛ рдХреЛрдИ рдмрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдкреАрдЖрд░ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд┐рдпрдо рдирд┐рд░реНрдорд╛рдг pkg/proxy/proxieriptables.go syncProxyRules() рдореЗрдВ рд╣реИ: https://github.com/BenTheElder/kubernetes/blob/iptables_proxy/pkg/proxy/proxieriptablesред рдЬрд╛рдУ#L286

рдореМрдЬреВрджрд╛ рдЪрд░реНрдЪрд╛ (рдпрд╣рд╛рдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ) рдФрд░ рд╕рд╛рде рд╣реА рдкреАрдЖрд░ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдФрд░ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ https://github.com/BenTheElder/kubernetes/issues/3 рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рдереЛрдбрд╝рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ https://github.com/ BenTheElder/kubernetes/issues/4.

рдПрдХ рдЕрдиреНрдп рдореБрджреНрджрд╛ рдЬрд┐рд╕рдореЗрдВ рдЗрдирдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

рд╡рд░реНрддрдорд╛рди рдХреЛрдб рдореЗрдВ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдЕрднреА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдХреЗрд╡рд▓ рдиреЛрдбрдкреЛрд░реНрдЯ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╕реЗ рджреВрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдмреЗрди рдХреЗ рдкреАрдЖрд░ рдкрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд░рд▓ iptables рдирд┐рдпрдо рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдП рд╣реИрдВред

рд▓реЗрдХрд┐рди рдпреЗ рдирд┐рдпрдо рдЕрднреА рднреА рдХрд┐рд╕реА рдмрд╛рд╣рд░реА рдПрд▓рдмреА рдХреЗ рд╕реНрд░реЛрдд рдЖрдИрдкреА рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдиреЛрдб рд╕реЗ рдЯрдХрд░рд╛рдиреЗ рдкрд░ рдПрд▓рдмреА рд╕реЗ рд╕рд┐рд░реНрдл рдбреАрдПрдирдПрдЯреА рдЯреНрд░реИрдлрд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреИрдХреЗрдЯ рдПрдХ рдЕрд▓рдЧ рдиреЛрдб рд╕реЗ рдЖ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдПрд▓рдмреА рдореВрд▓ рдЯреАрд╕реАрдкреА рд╕рддреНрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд╣рд╕рдВрдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред . рдХреНрдпрд╛ рдпрд╣ рдЪрд┐рдВрддрд╛ рдЬрд╛рдпрдЬ рд╣реИ? рдЕрдЧрд░ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рддреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ HTTP рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдЦреБрд╢ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдХреБрдЫ рдЬрд╛рджреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрд▓ 4 рдкрд░ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рдЖрдкрдХреЗ рдкреАрдЖрд░ рд╕реЗ рдХрд╛рд▓рд╛ рдЬрд╛рджреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдпрдореЛрдВ рдХреЛ iptables рдкрд░ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╢реБрд░реВ рд╣реБрдЖ, рдлрд┐рд░ рдПрдХ iptables-restore рдлрд╝рд╛рдЗрд▓ рддреИрдпрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИред

рдЙрддреНрдкрд╛рджрд┐рдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЗрдбрд░ рднрд╛рдЧ рдореЗрдВ рдПрдХ рдорд┐рд╕ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рдЬрд┐рдиреНрд╣реЗрдВ iptables рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЙрдЧ рдХрд╛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ:

I0807 11:41:24.560063 8369 iptables.go:327] рдЪрд▓ рд░рд╣реЗ iptables -N [KUBE-PORTALS-CONTAINER -t nat]
I0807 11:41:24.562361 8369 iptables.go:327] iptables -C рдЪрд▓ рд░рд╣рд╛ рд╣реИ [PREROUTING -t nat -m comment --comment handle ClusterIPs; рдиреЛрдЯ: рдпрд╣ NodePort рдирд┐рдпрдореЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП -j KUBE-PORTALS-CONTAINER]
I0807 11:41:24.563469 8369 iptables.go:327] рд░рдирд┐рдВрдЧ iptables -N [KUBE-PORTALS-HOST -t nat]
I0807 11:41:24.565452 8369 iptables.go:327] iptables -C рдЪрд▓ рд░рд╣рд╛ рд╣реИ [OUTPUT -t nat -m comment --comment handle ClusterIPs; рдиреЛрдЯ: рдпрд╣ NodePort рдирд┐рдпрдореЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП -j KUBE-PORTALS-HOST]
I0807 11:41:24.566552 8369 iptables.go:327] рдЪрд▓ рд░рд╣реЗ iptables -N [KUBE-NODEPORT-CONTAINER -t nat]
I0807 11:41:24.568363 8369 iptables.go:327] iptables -C рдЪрд▓ рд░рд╣рд╛ рд╣реИ [PREROUTING -t nat -m addrtype --dst-type LOCAL -m comment --comment handle service NodePorts; рдиреЛрдЯ: рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рдирд┐рдпрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП -j KUBE-NODEPORT-CONTAINER]
I0807 11:41:24.569564 8369 iptables.go:327] рд░рдирд┐рдВрдЧ iptables -N [KUBE-NODEPORT-HOST -t nat]
I0807 11:41:24.571458 8369 iptables.go:327] рдЪрд▓ рд░рд╣реЗ iptables -C [OUTPUT -t nat -m addrtype --dst-type LOCAL -m comment --comment handle service NodePorts; рдиреЛрдЯ: рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рдирд┐рдпрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП -j KUBE-NODEPORT-HOST]
I0807 11:41:24.573392 8369 iptables.go:327] рд░рдирд┐рдВрдЧ iptables -C [POSTROUTING -t nat -m comment --comment рд╣реИрдВрдбрд▓ рдкреЙрдб рдХреЛ рд╕реЗрд▓реНрдл-рдПрд╕ 10.240.240.78/32 -d 10.240.240.78/32 -j MASQUERADE рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ ]
I0807 11:41:24.574447 8369 proxier.go:349] iptables рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рд┐рдВрдХ рдХрд░рдирд╛ред
I0807 11:41:24.575592 8369 proxier.go:399] рдЪреЗрди: PREROUTING, рдирд┐рдпрдо: :PREROUTING ACCEPT [0:0]
I0807 11:41:24.575615 8369 proxier.go:401] рдирд┐рдпрдо: -рдПрдХ PREROUTING -m comment --comment "ClusterIPs рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░реЗрдВ; рдиреЛрдЯ: рдпрд╣ NodePort рдирд┐рдпрдореЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП" -j KUBE-PORTALS-CONTAINER
I0807 11:41:24.575625 8369 proxier.go:401] рдирд┐рдпрдо: -рдПрдХ PREROUTING -m addrtype --dst-type LOCAL -m comment --comment "рд╣реИрдВрдбрд▓ рд╕рд░реНрд╡рд┐рд╕ рдиреЛрдбрдкреЛрд░реНрдЯреНрд╕; рдиреЛрдЯ: рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рдирд┐рдпрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП" -рдЬреЗ рдХреНрдпреВрдм-рдиреЛрдбрдкреЛрд░реНрдЯ-рдХрдВрдЯреЗрдирд░
I0807 11:41:24.575633 8369 proxier.go:399] рдЪреЗрди: рдЗрдирдкреБрдЯ, рдирд┐рдпрдо:: рдЗрдирдкреБрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ [0:0]
I0807 11:41:24.575646 8369 proxier.go:399] рдЪреЗрди: OUTPUT, рдирд┐рдпрдо: :OUTPUT ACCEPT [0:0]
I0807 11:41:24.575658 8369 proxier.go:401] рдирд┐рдпрдо: -A OUTPUT -m comment --comment "ClusterIPs рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░реЗрдВ; рдиреЛрдЯ: рдпрд╣ NodePort рдирд┐рдпрдореЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП" -j KUBE-PORTALS-HOST
I0807 11:41:24.575670 8369 proxier.go:401] рдирд┐рдпрдо: -A OUTPUT -m addrtype --dst-type LOCAL -m comment --comment "рд╣реИрдВрдбрд▓ рд╕рд░реНрд╡рд┐рд╕ NodePorts; рдиреЛрдЯ: рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рдирд┐рдпрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП" -рдЬреЗ рдХреНрдпреВрдм-рдиреЛрдбреЗрдкреЛрд░реНрдЯ-рд╣реЛрд╕реНрдЯ
I0807 11:41:24.575683 8369 proxier.go:399] рдЪреЗрди: рдкреЛрд╕реНрдЯрд┐рдВрдЧ, рдирд┐рдпрдо:: рдкреЛрд╕реНрдЯрд░реВрдЯрд┐рдВрдЧ рд╕реНрд╡реАрдХрд╛рд░ [0:0]
I0807 11:41:24.575691 8369 proxier.go:401] рдирд┐рдпрдо: -рдПрдХ рдкреЛрд╕реНрдЯрд┐рдВрдЧ! -d 10.0.0.0/8 -o eth0 -j MASQUERADE
I0807 11:41:24.575699 8369 proxier.go:401] рдирд┐рдпрдо: -рдПрдХ рдкреЛрд╕реНрдЯрд┐рдВрдЧ -s 10.240.240.78/32 -d 10.240.240.78/32 -m рдЯрд┐рдкреНрдкрдгреА --comment "рд╣реИрдВрдбрд▓ рдкреЙрдб рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рд╕реЗрд▓реНрдл" -j MASQUERADE
I0807 11:41:24.575709 8369 proxier.go:399] рдЪреЗрди: KUBE-NODEPORT-рдХрдВрдЯреЗрдирд░, рдирд┐рдпрдо: :KUBE-NODEPORT-CONTAINER - [0:0]
I0807 11:41:24.575720 8369 proxier.go:399] рдЪреЗрди: KUBE-NODEPORT-HOST, рдирд┐рдпрдо: :KUBE-NODEPORT-HOST - [0:0]
I0807 11:41:24.575729 8369 proxier.go:399] рдЪреЗрди: рдХреНрдпреВрдм-рдкреЛрд░реНрдЯрд▓реНрд╕-рдХрдВрдЯреЗрдирд░, рдирд┐рдпрдо:: рдХреНрдпреВрдм-рдкреЛрд░реНрдЯрд▓реНрд╕-рдХрдВрдЯреЗрдирд░ - [0:0]
I0807 11:41:24.575740 8369 proxier.go:399] рдЪреЗрди: KUBE-PORTALS-HOST, рдирд┐рдпрдо: :KUBE-PORTALS-HOST - [0:0]
I0807 11:41:24.581897 8369 proxier.go:603] рд╕рд┐рдВрдХрд┐рдВрдЧ рдирд┐рдпрдо: :KUBE-PORTALS-HOST - [0:0]
:рдХреНрдпреВрдм-рдкреЛрд░реНрдЯрд▓реНрд╕-рдХрдВрдЯреЗрдирд░ - [0:0]
:рдХреБрдмреЗ-рдиреЛрдбреЗрдкреЛрд░реНрдЯ-рд╣реЛрд╕реНрдЯ - [0:0]
:рдХреБрдмреЗ-рдиреЛрдбреЗрдкреЛрд░реНрдЯ-рдХрдВрдЯреЗрдирд░ - [0:0]
:KUBE-SVC-VO8JL93ZeRSf8cnsLpl - [0:0]
:KUBE-SVC-L26cB3JYuxdW5TF84ct - [0:0]
:KUBE-SVC-j2SF8q3nUajS8vOx2qL - [0:0]
:KUBE-SVC-shln2urO8W1aBiB2bWJ - [0:0]
:KUBE-SVC-8jQ3IvijvhJ4ppFj3Ui - [0:0]
[... рдПрд╕рдПрдирдЖрдИрдкреА ...]

рд╡рд░реНрдмреЛрдЬрд╝ рдореЛрдб рдореЗрдВ рдЙрддреНрдкрд╛рджрд┐рдд рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ iptable-save рдХреЛ рдорд░реНрдЬ рдХрд░рдХреЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдЪреНрдЫреА рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@bnprss рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕рдореАрдХреНрд╖рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ iptables-restore рдХреЗ рд▓рд┐рдП "-T рддрд╛рд▓рд┐рдХрд╛" рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕рд╣рд┐рдд рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрдИ рдЕрдкреНрд░рдпреБрдХреНрдд рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдПред рдПрдХ рдмрд╛рд░ рдЬрдм рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдкреНрд░рддрд┐рдЧрдорди (рдУрдВ) рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреВрдВрдЧрд╛ред

@bnprss рдЬреИрд╕рд╛ рдЖрдкрдиреЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рдЯреЗрдмрд▓ рд╣реЗрдбрд░ рдЧрд╛рдпрдм рд╣реИ ("* рдиреЗрдЯ" рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП), рдЗрд╕реЗ рдЧрд▓рддреА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд╕рдм рдХреБрдЫ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рдмрдЧ рдирд╣реАрдВ рд╣реИ (рдЫреЛрдбрд╝рдХрд░: https: / /github.com/BenTheElder/kubernetes/issues/3)ред рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред рдореИрдВрдиреЗ рдлрд┐рдХреНрд╕ рдХреЛ рдзрдХреНрдХрд╛ рджрд┐рдпрд╛ рд╣реИред

рдЕрдЪреНрдЫрд╛ рдХрд╛рдо, рдирд┐рдпрдо рд▓реЛрдб рд╣реЛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЕрдВрджрд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВ рд╣реИ, рдмрд╛рд╣рд░ рд╕реЗ рдХреЛрдИ рд╕рдВрдЪрд╛рд░ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рд╣реБрд╣ред рдХреНрдпрд╛ рдЖрдк рдЬрдирд╕рдВрдкрд░реНрдХ рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдФрд░ рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЕрдм рддрдХ
рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрдерд╛рдиреАрдп рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд░реЗ рдЦреБрдж рдХреЛ рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ
рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХреЛрдИ рднреА рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдХ рдмрд╛рд╣рд░реА рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдЕрдЧрд╕реНрдд 7, 2015 1:29 рдкреАрдПрдо, "bnprss" [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

рдЕрдЪреНрдЫрд╛ рдХрд╛рдо, рдирд┐рдпрдо рд▓реЛрдб рд╣реЛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЕрдВрджрд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВ
рдмрд╛рд╣рд░реА рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рд╕реЗ рдХреЛрдИ рд╕рдВрдЪрд╛рд░ рдЙрддреНрддрд░ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -128772763
.

рд╣рд╛рдВ, рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдВ рдФрд░ рдкреВрдЫрддрд╛рдЫ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдкреАрдЖрд░ рдкрд░ рдХреБрдЫ рд▓реЙрдЧ рдпрд╛ рд▓реАрдб рддреИрдпрд╛рд░ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдХрд▓ рд╕реЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдореИрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рддреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдмреИрдХрдЕрдк рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдЖрдк рд╡рд┐рднрд╛рдЬрдХ "-_" рдХреЗ рдмрд┐рдирд╛ рдирд┐рдпрдореЛрдВ рдХреЗ рдЯреЛрдХрди рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@bnprss , рдмрдврд╝рд┐рдпрд╛ред
рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдирд┐рдпрдо рд╢реНрд░реГрдВрдЦрд▓рд╛рдПрдВ рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ/рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХрд╛ рд╣реИрд╢ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдмреЗрд╕ 64 рдпреВрдЖрд░рдПрд▓ рдПрдиреНрдХреЛрдбреЗрдб рдФрд░ рдЫреЛрдЯрд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреНрдпреВрдм-рдПрд╕рд╡реАрд╕реА-. рдХреЛрдб рдпрд╣рд╛рдБ рд╣реИ: https://github.com/GoogleCloudPlatform/kubernetes/pull/9210/files#diff -d51765b83fe795b469e8a86276b12dc9R321
рд╣рдордиреЗ рдЗрд╕реЗ рд╡реИрдз рд╢реНрд░реГрдВрдЦрд▓рд╛ рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рд╣реИ рдЬреЛ рдЕрднреА рднреА рдирд┐рдпрддрд╛рддреНрдордХ рд╣реЛрддреЗ рд╣реБрдП рднреА iptables рдореЗрдВ рд╡рд░реНрдг рд╕реАрдорд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рджреЛрд╣рд░рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ, рдХреНрдпрд╛ рд╣рдо рд╡рд┐рднрд╛рдЬрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди "_" рдХреБрдЫ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИрд╢ рд╕реЗ рдЖрддреЗ рд╣реИрдВ рдФрд░ "-" рд╕рднреА рдореМрдЬреВрджрд╛ рдпреВрдЬрд░рд╕реНрдкреЗрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗ рдирд┐рдпрдо рдирд╛рдореЛрдВ рдореЗрдВ рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╣рдо рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рдмрд┐рдирд╛ рд╢рд╛рдпрдж рдХреБрдЫ рдФрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдБ, рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЙрд╕реНрдореЗрдЯрд┐рдХ рд╣реИ! :)
рд▓реЗрдХрд┐рди рдпрд╣ рдЙрди рдЪреАрдЬреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рджреЗрдЦрд╛ рдерд╛:
рдЬреАрд╕реАрдИ рдПрд▓рдмреА рдирд┐рдпрдо: a07f76b3b2ec311e59e2642010af0479
gce fw рдирд┐рдпрдо: k8s-fw-a7ecad94f3ba511e59e2642010af0479
рдЬреАрд╕реАрдИ рд░реВрдЯрд┐рдВрдЧ рдирд┐рдпрдо: рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рдорд╛рд░реНрдЧ-6973e029b504a0e8
рдиреЛрдб рдХреЗ рд▓рд┐рдП gce рд░реВрдЯрд┐рдВрдЧ: obfuscated_cluster_node-43506797-2eb2-11e5-9e26-42010af04793

рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИ:
KUBE-SVC-6ADi2TVfn7mFPvBjC56
рд╡реЗ рдордЬрд╛рдХрд┐рдпрд╛ рд╣реИрдВ:
KUBE-SVC-zU6ParcQ-UfW_LdRDUc
KUBE-SVC-y--z1xTUpHPT6sgAUCC

рд╣рд╛рдБ, рдореИрдВ рдЙрдирдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдБ, рд╣рдо рд╢рд╛рдпрдж рд╣реИрд╢ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ
рдПрдиреНрдХреЛрдбрд┐рдВрдЧред

рд╢реБрдХреНрд░, рдЕрдЧрд╕реНрдд 7, 2015 рдореЗрдВ 2:16 рдкреНрд░рдзрд╛рдирдордВрддреНрд░реА рдкрд░ bnprss [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдБ, рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЙрд╕реНрдореЗрдЯрд┐рдХ рд╣реИ! :)
рд▓реЗрдХрд┐рди рдпрд╣ рдЙрди рдЪреАрдЬреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рджреЗрдЦрд╛ рдерд╛:
рдЬреАрд╕реАрдИ рдПрд▓рдмреА рдирд┐рдпрдо: a07f76b3b2ec311e59e2642010af0479
gce fw рдирд┐рдпрдо: k8s-fw-a7ecad94f3ba511e59e2642010af0479
рдЬреАрд╕реАрдИ рд░реВрдЯрд┐рдВрдЧ рдирд┐рдпрдо: рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рдорд╛рд░реНрдЧ-6973e029b504a0e8
рдиреЛрдб рдХреЗ рд▓рд┐рдП рдЬреАрд╕реАрдИ рд░реВрдЯрд┐рдВрдЧ:
obfuscated_cluster_node-43506797-2eb2-11e5-9e26-42010af04793

рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИ:
KUBE-SVC-6ADi2TVfn7mFPvBjC56
рд╡реЗ рдордЬрд╛рдХрд┐рдпрд╛ рд╣реИрдВ:
KUBE-SVC-zU6ParcQ-UfW_LdRDUc
KUBE-SVC-y--z1xTUpHPT6sgAUCC

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -128785914
.

рд╣рд╛рдВ, рдпрд╣ рдХреЗрд╡рд▓ SHA рдХреЗ рдХрд╛рдЯреЗ рдЧрдП рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, git рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реИ, docker рднреА, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреВрдм рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдЕрдиреНрдп рд╕рдВрджрд░реНрдн рдмрдирд╛рдП рдЧрдП рд╣реИрдВред рдЙрддреНрдкрдиреНрди рд╣реИрд╢ рдмреЗрд╕ 64 рдореЗрдВ рдЯрдХреНрдХрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред ;)
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @thockin рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ iptables рдореЗрдВ рдорд╛рдиреНрдп рд╡рд░реНрдгреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдЪрд┐рдВрддрд┐рдд рдерд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдВрджрд░реНрдн рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рд╣реБрдИред рдореИрдВ рдЬрд▓реНрдж рд╣реА рдЗрд╕ рдкрд░ рдФрд░ рдЧреМрд░ рдХрд░реВрдВрдЧрд╛ред

рд╢реБрдХреНрд░, рдЕрдЧрд╕реНрдд 7, 2015 рдореЗрдВ 2:29 рдкреНрд░рдзрд╛рдирдордВрддреНрд░реА рдкрд░ bnprss [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

рд╣рд╛рдВ, рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреЗрд╡рд▓ SHA рдХреЗ рдХрд╛рдЯреЗ рдЧрдП рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, git рдареАрдХ рд╣реИ
рд╡рд╣, рдбреЙрдХрдЯрд░ рднреА, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреВрдм рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдВрджрд░реНрдн рд╣реИ
рдирд┐рдХрд╛рдп рдмрдирддреЗ рд╣реИрдВред рдЙрддреНрдкрдиреНрди рд╣реИрд╢ рдмреЗрд╕ 64 рдореЗрдВ рдЯрдХреНрдХрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛
рдорджрджред ;)
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @thockin https://github.com/thockin рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддрд╛ рд╣реИред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment -128788454
.

@bnprss fyi рдкреАрдЖрд░ рдмрд╣реБрдд рдЕрд╕реНрдерд┐рд░ рд╣реИ рдФрд░ рдкреНрд░рддрд┐ рдереЙрдХрд┐рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд╣рдо рдЕрднреА рдХреЗ рд▓рд┐рдП рдиреЛрдбрдкреЛрд░реНрдЯ рдЗрддреНрдпрд╛рджрд┐ рдХреЛ рдЯреНрд░рд┐рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдкреЛрд░реНрдЯрд▓реНрд╕ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓, рдХреНрд▓реАрдирд░ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдлрд┐рд░ рдкреВрд░реНрдг рд╕рдорд╛рдирддрд╛ рддрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ _not_ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рдкреАрдЖрд░ рдХреЛ рдХреБрдЫ рдЫреЛрдЯреЗ рд╕рдВрдмрдВрдзрд┐рдд рд▓реЛрдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдирд╛ рдФрд░ рдлрд┐рд░ iptables-рдкреНрд░реЙрдХреНрд╕реА рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдл-рд╕реБрдерд░рд╛ рдзрдХреНрдХрд╛ рджреЗрдирд╛ред

рдЖрдк рдореЗрдВ рд╕реЗ рдЬреЛ рдШрд░ рдкрд░ рдЦреЗрд▓ рд░рд╣реЗ рд╣реИрдВ, рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╕рдорддрд╛, рд▓реЗрдХрд┐рди рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ :)

рд╢реБрдХреНрд░, рдЕрдЧрд╕реНрдд 7, 2015 рдХреЛ рд░рд╛рдд 9:35 рдмрдЬреЗ, рдмреЗрдВрдЬрд╛рдорд┐рди рдПрд▓реНрдбрд░ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдЙрдкрд░реЛрдХреНрдд рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдЙрддреНрддрд░, рдЬрд▓реНрдж рд╣реА рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ:

рдЖрдИрдЖрд░рд╕реА рдореЗрдВ рдЪрд░реНрдЪрд╛:

  • рдЕрднреА рднреА рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
    рдЙрдкрдпреЛрдЧ/iptables рдкреИрдХреЗрдЬ рдореЗрдВ рд░рд╛рдЬреНрдпред
  • рдЕрднреА рднреА рд╣реИрд╢рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд▓рдВрдмрд╛рдИ рд╕реАрдорд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ

рдЕрдиреНрдпрдерд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдл рд╕рд░рд▓реАрдХрд░рдг рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдмрд╛рдж рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛
рдХреБрдЫ рдФрд░ рдЪрд░реНрдЪрд╛ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760#issuecomment-128912169
.

рд╕реНрдерд┐рддрд┐: "рдореБрдЦреНрдп" рддрд░реНрдХ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдЕрдм рдиреЛрдб рдкреЛрд░реНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдЬреАрдмреЛрдЧрд░реАрдм рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореЗрд░реЗ рдЕрдм рддрдХ рдХреЗ рдиреЛрдЯреНрд╕:

# Basic node ports:
iptables -t nat -N KUBE-NODEPORTS
iptables -t nat -A PREROUTING -j KUBE-NODEPORTS
iptables -t nat -A OUTPUT -j KUBE-NODEPORTS
iptables -t nat -A KUBE-NODEPORTS -p tcp -m comment --comment "TEST: default/nodeport:p" -m tcp --dport 30241 -j KUBE-SVC-EQKU6GMUKRXBR6NWW53

# To get traffic from node to localhost:nodeport to the service:
echo 1 > /proc/sys/net/ipv4/conf/all/route_localnet
# Mark packets that are destined for services from localhost, then masquerade those
iptables -t nat -I KUBE-SVC-EQKU6GMUKRXBR6NWW53 -s 127.0.0.0/16 -j MARK --set-mark 0x4b000001;
iptables -t nat -A POSTROUTING -m mark --mark 0x4b000001 -j MASQUERADE

# To get traffic from a pod to itself via a service:
for intf in $(ip link list | grep veth | cut -f2 -d:); do brctl hairpin cbr0 $intf on; done
# Mark packets that are destined for each endpoint from the same endpoint, then masquerade those.
# This is hacky, but I don't really know which pods are "local" and I don't really want to right now. (but I will eventually)
iptables -t nat -I KUBE-SEP-HHNEQBOLY57T5MQCFIY -s 10.244.1.6 -j MARK --set-mark 0x4b000001

рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдпреЛрдЧрджрд╛рди рдЙрдкрдХрд░рдг рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЕрдм рддрдХ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдПрдХ рдиреЛрдб рдкрд░ рдПрдХ рд╕рд░реНрд╡рд░ рдХреЛ рдЖрдЧ рд▓рдЧрд╛ рджреВрдВрдЧрд╛, рд╕рдордп рд╡рд┐рд▓рдВрдмрддрд╛
рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ, рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╕рдВрд╕рд╛рдзрди рд▓реЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЗрдЦреЗрдВ рдФрд░ рдЗрд╕реЗ рдбрдВрдк рдХрд░реЗрдВ
рд░реЗрдЦрд╛рдВрдХрди рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рд╡реА рдХреЛ рдбреЗрдЯрд╛ред
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╢реБрдХреНрд░рд╡рд╛рд░ рд╕реЗ рдкрд╣рд▓реЗ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрднреА рдХреБрдмреЗрдХреНрдЯрд▓ рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реВрдВред

рдмреБрдз, рдЕрдЧрд╕реНрдд 12, 2015 рдЕрдкрд░рд╛рд╣реНрди 8:48 рдмрдЬреЗ, рдЯрд┐рдо рд╣реЛрдХрд┐рди рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рд╕реНрдерд┐рддрд┐: "рдореБрдЦреНрдп" рддрд░реНрдХ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдЕрдм рдиреЛрдб рдкреЛрд░реНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдЬреАрдмреЛрдЧрд░реАрдм рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╡рд┐рд╢реЗрд╖ рд╣реИрдВрдбрд▓рд┐рдВрдЧред рдореЗрд░реЗ рдЕрдм рддрдХ рдХреЗ рдиреЛрдЯреНрд╕:

рдореВрд▓ рдиреЛрдб рдкреЛрд░реНрдЯ:

iptables -t nat -N KUBE-NODEPORTS
iptables -t nat -A PREROUTING -j KUBE-NODEPORTS
iptables -t nat -A OUTPUT -j KUBE-NODEPORTS
iptables -t nat -A KUBE-NODEPORTS -p tcp -m comment --comment "TEST: default/ nodeport:p " -m tcp --dport 30241 -j KUBE-SVC-EQKU6GMUKRXBR6NWW53

рдиреЛрдб рд╕реЗ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рдЗрдХреЛ 1 > /proc/sys/net/ipv4/conf/all/route_localnet

рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рд╕реЗ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдд рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ, рдлрд┐рд░ рдЙрдирдХрд╛ рдореБрдЦреМрдЯрд╛ рд▓рдЧрд╛рдПрдВ

iptables -t nat -I KUBE-SVC-EQKU6GMUKRXBR6NWW53 -s 127.0.0.0/16 -j MARK --set-mark 0x4b000001;
iptables -t nat -A рдкреЛрд╕реНрдЯрд░рд╛рдЙрдЯрд┐рдВрдЧ -m рдорд╛рд░реНрдХ --mark 0x4b000001 -j MASQUERADE

рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреЙрдб рд╕реЗ рд╕реНрд╡рдпрдВ рддрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

$ рдореЗрдВ intf рдХреЗ рд▓рд┐рдП (рдЖрдИрдкреА рд▓рд┐рдВрдХ рд╕реВрдЪреА | grep veth | рдХрдЯ -f2 -d:); brctl рд╣реЗрдпрд░рдкрд┐рди cbr0 $intf рдСрди рдХрд░реЗрдВ; рдХрд┐рдпрд╛ рд╣реБрдЖ

рдПрдХ рд╣реА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдд рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ, рдлрд┐рд░ рдЙрдирдХрд╛ рдореБрдЦреМрдЯрд╛ рд▓рдЧрд╛рдПрдВред

рдпрд╣ рд╣реИрдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреМрди рд╕реЗ рдкреЙрдб "рд╕реНрдерд╛рдиреАрдп" рд╣реИрдВ рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ред (рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдВрддрддрдГ рдХрд░реВрдБрдЧрд╛)

iptables -t nat -I KUBE-SEP-HHNEQBOLY57T5MQCFIY -s 10.244.1.6 -j MARK --set-mark 0x4b000001

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -130492394
.

@BenTheElder рдореИрдВрдиреЗ рдЕрднреА GCE рдкрд░ рдХреБрдЫ рдпрдереЛрдЪрд┐рдд рд╡рд┐рд╕реНрддреГрдд рдиреЗрдЯрд╡рд░реНрдХ perf рдорд╛рдкрди рдХрд┐рдпрд╛ рд╣реИ - рдореИрдВ netperf рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдБ (qperf рд╡рд┐рд▓рдВрдмрддрд╛ рдорд╛рдк рднреА рджреЗрддрд╛ рд╣реИ)ред

netperf рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ/рд╕рд░реНрд╡рд░ perf рдЯреВрд▓ рд╣реИ, рдореИрдВрдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рдХреЛ docker рдХрдВрдЯреЗрдирд░ paultilady/ netserver:ubuntu.2 рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рд╣реИред рдиреЗрдЯрдкрд░рдл рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреЛ рдиреЗрдЯрд╕рд░реНрд╡рд░ рдкреЙрдбреНрд╕ рдХреЛ рд╕реНрдкрд┐рди рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИ

kubectl exec  -t $netserver-pod-1 -- netperf тАУl 30 -i 10 -I 99,1 -c -j -H $netserver-pod-2-ip -t OMNI --  -T tcp -D -O THROUGHPUT,THROUGHPUT_UNITS,MEAN_LATENCY,MIN_LATENCY,MAX_LATENCY,P50_LATENCY,P90_LATENCY,P99_LATENCY,STDDEV_LATENCY,LOCAL_CPU_UTIL

рдЖрдкрдХреЛ рд╡рд┐рд▓рдВрдмрддрд╛ рдФрд░ рдереНрд░реВрдкреБрдЯ рд╕рд╣рд┐рдд рдЖрдБрдХрдбрд╝реЛрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╕рд╛рд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдиреЛрдб-> рдкреЙрдб рдкрд░реАрдХреНрд╖рдг рднреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП docker run --net=host рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЗрдЯрд╕рд░реНрд╡рд░ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП dockerfile рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рджреБрдмрд▓рд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рддреЗрдЬреА рд╕реЗ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓реНрдкрд╛рдЗрдирд▓рд┐рдирдХреНрд╕-рдЖрдзрд╛рд░рд┐рдд рдХрдВрдЯреЗрдирд░) рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЖрдЧ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВред

рдзрдиреНрдпрд╡рд╛рдж рдореИрдВ рдЙрд╕рдореЗрдВ рджреЗрдЦ рд▓реВрдВрдЧрд╛ред

рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реЗрд╡рд╛ рдЕрдиреБрд░реЛрдз рд╡рд┐рд▓рдВрдмрддрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЕрднреА рдореИрдВ рдорд╛рдирдХ nginx рдХрдВрдЯреЗрдирд░ рдХреЛ рдиреЛрдб рдПрдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдкреЙрдб рд╕рдордп рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдорд╛рд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╣рдо рдиреЛрдб рд╡рд╛рдИ рдкрд░ рдПрдХ рдЧреНрд░рд╛рдл рдмрдирд╛ рд╕рдХреЗрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ netperf/qperf рдХреЛ рджреЗрдЦреВрдВрдЧрд╛, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдХрдИ рдкрд░реАрдХреНрд╖рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдЙрд╕ рдЧреНрд░рд╛рдл рдХреЛ рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд┐рдЫрд▓реА рдЪрд░реНрдЪрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ @thockin

рдЧреБрд░реБ, рдЕрдЧрд╕реНрдд 13, 2015 рдкреВрд░реНрд╡рд╛рд╣реНрди 12:02 рдмрдЬреЗ, рдкреЙрд▓ рдЯрд┐рдкрд▓рд╛рдбреА рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@BenTheElder https://github.com/BenTheElder рдореИрдВрдиреЗ рдЕрднреА рдХреБрдЫ рдЙрдЪрд┐рдд рдХрд┐рдпрд╛ рд╣реИ
рдЬреАрд╕реАрдИ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдиреЗрдЯрд╡рд░реНрдХ рдкреВрд░реНрдг рдорд╛рдк - рдореИрдВ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ
netperf (qperf рд╡рд┐рд▓рдВрдмрддрд╛ рдорд╛рдк рднреА рджреЗрддрд╛ рд╣реИ)ред

netperf рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ/рд╕рд░реНрд╡рд░ perf рдЯреВрд▓ рд╣реИ, рдореИрдВрдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рджреЛрдиреЛрдВ рдХреЛ рдкреИрдХ рдХрд┐рдпрд╛ рд╣реИ
рдбреЛрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рд░реНрд╡рд░ рдкреЙрд▓реАрдкреНрд▓рд╛рдбреА/ рдиреЗрдЯрд╕рд░реНрд╡рд░: ubuntu.2ред рд╡рд╣рд╛рдВ
netperf рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреЛ рдХреЛ рд╕реНрдкрд┐рди рдХрд░рдиреЗ рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИ
рдиреЗрдЯрд╕рд░реНрд╡рд░ рдкреЙрдбреНрд╕ рдФрд░ рд░рдирд┐рдВрдЧ

kubectl exec -t $netserver-pod-1 -- netperf -l 30 -i 10 -I 99,1 -c -j -H $netserver-pod-2-ip -t OMNI -- -T tcp -D -O THROUGHPUT,THROUGHPUT_UNITS,MEAN_LATENCY,MIN_LATENCY,MAX_LATENCY,P50_LATENCY,P90_LATENCY,P99_LATENCY,STDDEV_LATENCY,LOCAL_CPU_UTIL

рдЖрдкрдХреЛ рд╡рд┐рд▓рдВрдмрддрд╛ рдФрд░ рдереНрд░реВрдкреБрдЯ рд╕рд╣рд┐рдд рдЖрдБрдХрдбрд╝реЛрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╕рд╛рд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдк docker run --net=host to do рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ netserver рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдиреЛрдб-> рдкреЙрдб рдкрд░реАрдХреНрд╖рдг рднреАред

рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЖрдЧ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдЕрдЧрд░
рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рджреБрдмрд▓реЗ-рдкрддрд▓реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓реНрдкрд╛рдЗрдирд▓рд┐рдирдХреНрд╕-рдЖрдзрд╛рд░рд┐рдд
рдЬрд▓реНрджреА рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░)ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -130524576
.

рдиреЛрдб рдкреЛрд░реНрдЯ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ: #9210 рдореЗрдВ @Symmetric рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд▓рд╛рдпрд╛:

рдпрджрд┐ рдпрд╛рддрд╛рдпрд╛рдд рдмрд╣рддрд╛ рд╣реИ:
LB -> node1:nodePort
рдФрд░ рд╕рд░реНрд╡рд┐рд╕ рдкреЙрдб рдиреЛрдб 2 рдкрд░ рд╣реИ, рддреЛ рдкреВрд░рд╛ рдкреНрд░рд╡рд╛рд╣ рд╣реЛрдЧрд╛:
LB -> node1:nodePort -> node2 -> pod:svcPort
srcIP рдЕрднреА рднреА LB рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрд╛рдПрдЧреА
pod -> node2 -> LB
рдЪреВрдВрдХрд┐ рдиреЛрдб 2 рд╕реАрдзреЗ рдПрд▓рдмреА рдХреЛ рд░реВрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЕрдм рд╣рдо рд░рд┐рдЯрд░реНрди рдкреИрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╕реНрд░реЛрдд рдЖрдИрдкреА рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрди-рдбреАрдПрдирдПрдЯреА рдХрд╛ рдЕрд╡рд╕рд░ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ (рдЬреЛ рдХреЗрд╡рд▓ рдиреЛрдб 1 рдкрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред

рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХрд┐рдпрд╛ рд╣реИред рдПрд╕реАрдХреЗ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред tcpdump рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЯреЛрдВ рдХреЛ (рдСрдл-рдорд╢реАрди) рдкреЙрдб IP: рдкреЛрд░реНрдЯ рдореЗрдВ DNAT'ed рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, src рдмрд░рдХрд░рд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрдВрддрд╡реНрдп рдорд╢реАрди рдкрд░ tcpdump рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЯ рд╡рд╣рд╛рдВ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рднреА рдореИрдВ рдХреНрдпрд╛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░реВрдВрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ SNAT рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рд╣реИред рдХрдо рд╕реЗ рдХрдо рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╕рдорд╛рдзрд╛рди LB рд╕реЗ _only_ SNAT рдкреИрдХреЗрдЯ рд╣реЛрдЧрд╛ рдЬреЛ рдХрд┐ рдСрдл-рдиреЛрдб рдХреЗ рд▓рд┐рдП рдирд┐рдпрдд рд╣реИрдВ, рд▓реЗрдХрд┐рди a) рдореЗрд░реЗ рдкрд╛рд╕ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рд╡рд╣ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ (рдЗрд╕реЗ рдХреЛрдб рдХреА рдХреАрдордд рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдФрд░ b) рдЪреВрдВрдХрд┐ рдХреЛрдИ рднреА рдиреАрддрд┐ рдХреЛ рдПрд╕рдПрдирдПрдЯреА рдорд╛рдорд▓реЗ рдкрд░ рд╡реИрд╕реЗ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдореИрдВ рд╣рдореЗрд╢рд╛ рдмрд╛рд╣рд░реА рдПрд▓рдмреА рдкреИрдХреЗрдЯ рдХреЛ рдПрд╕рдПрдирдПрдЯреА рдХрд░рдХреЗ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдиреАрддрд┐ рдЗрдВрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд┐рддрдирд╛ рдмреБрд░рд╛ рд╣реИ?

рдЕрдВрддрддрдГ рдПрд▓рдмреА рдХрд╛рдлреА рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдВрдЧреЗ рдЬреЛ рдХреЗрд╡рд▓ рдкреЙрдбреНрд╕ рд╡рд╛рд▓реЗ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдпрд╛рддрд╛рдпрд╛рдд рд╕реНрдерд╛рдиреАрдп рд░рд╣реЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рдпрд╣ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реЛрдЧрд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдФрд░ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ deprecatedPublicIPs рдлрд╝реАрд▓реНрдб рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рд╢рд╛рдпрдж рд╣рдЯрд╛ рджреЗрдВрдЧреЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдФрд░ рднреА рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдИрдкреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡реАрдПрдо рдореЗрдВ 1-рд╕реЗ-1 рдПрдирдПрдЯреА рдмрд╛рд╣рд░реА рдЖрдИрдкреА рд╣реИ)ред рдЖрд╕рд╛рди рдЙрддреНрддрд░ - рд╣рдореЗрд╢рд╛ SNAT рдиреЛрдб-рдкреЛрд░реНрдЯ рдкреИрдХреЗрдЯред рдХреНрдпрд╛ рд╕реЛрдЪрд╛?

рдореИрдВ рдХрд▓ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдВрдЧрд╛ред

@BenTheElder рдЖрдк рдиреЗрдЯрд╕рд░реНрд╡рд░ рдкреЙрдб рдХреЛ рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдкрд░рдлрд╝ рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ <->
рд╕рд░реНрд╡рд░ рд╡реАрдЖрдИрдкреА рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ
рдирдореВрдирд╛рдХрд░рдг/рд╡рд┐рд▓рдВрдмрддрд╛ рдЧрдгрдирд╛ рд╕реНрд╡рдпрдВ ...

рдмреБрдз, рдЕрдЧрд╕реНрдд 12, 2015 рдХреЛ рд░рд╛рдд 9:20 рдмрдЬреЗ, рдмреЗрдВрдЬрд╛рдорд┐рди рдПрд▓реНрдбрд░ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдзрдиреНрдпрд╡рд╛рдж рдореИрдВ рдЙрд╕рдореЗрдВ рджреЗрдЦ рд▓реВрдВрдЧрд╛ред

рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рд╕реЗ
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реЗрд╡рд╛ рдЕрдиреБрд░реЛрдз рд╡рд┐рд▓рдВрдмрддрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕рд╣реА
рдЕрдм рдореИрдВ рдорд╛рдирдХ nginx рдХрдВрдЯреЗрдирд░ рдХреЛ рдиреЛрдб X рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреЙрдб рд╕рдордп рдЗрд╕реЗ рдмрд╛рд░-рдмрд╛рд░ рдорд╛рд░ рд░рд╣рд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдПрдХ рдЧреНрд░рд╛рдл рдмрдирд╛ рд╕рдХреЗрдВ
рдиреЛрдб рд╡рд╛рдИ.

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ netperf/qperf рдХреЛ рджреЗрдЦреВрдВрдЧрд╛, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдХрдИ рдкрд░реАрдХреНрд╖рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдЙрд╕ рдЧреНрд░рд╛рдл рдХреЛ рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд┐рдЫрд▓реА рдЪрд░реНрдЪрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░
@thockin

рдЧреБрд░реБ, рдЕрдЧрд╕реНрдд 13, 2015 рдкреВрд░реНрд╡рд╛рд╣реНрди 12:02 рдмрдЬреЗ, рдкреЙрд▓ рдЯрд┐рдкрд▓рд╛рдбреА рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@BenTheElder https://github.com/BenTheElder рдореИрдВрдиреЗ рдЕрднреА рдХреБрдЫ рдЙрдЪрд┐рдд рдХрд┐рдпрд╛ рд╣реИ
рдЬреАрд╕реАрдИ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдиреЗрдЯрд╡рд░реНрдХ рдкреВрд░реНрдг рдорд╛рдк - рдореИрдВ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ
netperf (qperf рд╡рд┐рд▓рдВрдмрддрд╛ рдорд╛рдк рднреА рджреЗрддрд╛ рд╣реИ)ред

netperf рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ/рд╕рд░реНрд╡рд░ perf рдЯреВрд▓ рд╣реИ, рдореИрдВрдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рджреЛрдиреЛрдВ рдХреЛ рдкреИрдХ рдХрд┐рдпрд╛ рд╣реИ
рдбреЛрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рд░реНрд╡рд░ рдкреЙрд▓реАрдкреНрд▓рд╛рдбреА/ рдиреЗрдЯрд╕рд░реНрд╡рд░: ubuntu.2ред рд╡рд╣рд╛рдВ
netperf рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреЛ рдХреЛ рд╕реНрдкрд┐рди рдХрд░рдиреЗ рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИ
рдиреЗрдЯрд╕рд░реНрд╡рд░ рдкреЙрдбреНрд╕ рдФрд░ рд░рдирд┐рдВрдЧ

kubectl exec -t $netserver-pod-1 -- netperf -l 30 -i 10 -I 99,1 -c -j -H
$netserver-pod-2-ip -t OMNI -- -T tcp -D -O
THROUGHPUT,THROUGHPUT_UNITS,MEAN_LATENCY,MIN_LATENCY,MAX_LATENCY,P50_LATENCY,P90_LATENCY,P99_LATENCY,STDDEV_LATENCY,LOCAL_CPU_UTIL

рдЖрдкрдХреЛ рд╡рд┐рд▓рдВрдмрддрд╛ рд╕рд╣рд┐рдд рдЖрдБрдХрдбрд╝реЛрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╕рд╛рд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░
рдереНрд░реВрдкреБрдЯ
рдЖрдк docker run --net=host to do рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ netserver рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдиреЛрдб-> рдкреЙрдб рдкрд░реАрдХреНрд╖рдг рднреАред

рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЖрдЧ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдЕрдЧрд░
рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рджреБрдмрд▓реЗ-рдкрддрд▓реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓реНрдкрд╛рдЗрдирд▓рд┐рдирдХреНрд╕-рдЖрдзрд╛рд░рд┐рдд
рдЬрд▓реНрджреА рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░)ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
<
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -130524576

.

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -130527558
.

рд╕рддреНрдпред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @thockin рдиреЗ рдЕрдВрддрддрдГ рдПрдХ e2e рд╡рд┐рд▓рдВрдмрддрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ
рдХреБрдВрдЖред рд╕рдордп рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рд╣реЛрдВрдЧреЗ рдФрд░ рд╣рдо рдХрд░реЗрдВрдЧреЗ
рд╢рд╛рдпрдж рдЬреАрд╕реАрдИ рдмрдирд╛рдо рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдЖрджрд┐ рдХрд╛ рд╣рд┐рд╕рд╛рдм рджреЗрдирд╛ рд╣реЛрдЧрд╛ред
13 рдЕрдЧрд╕реНрдд 2015 рдХреЛ рджреЛрдкрд╣рд░ 1:47 рдмрдЬреЗ, "рдкреЙрд▓ рдЯрд┐рдкреНрд▓рд╛рдбреА" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдЖрдк рдиреЗрдЯрд╕рд░реНрд╡рд░ рдкреЙрдб рдХреЛ рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдкрд░реНрдлрд╝ рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ <->
рд╕рд░реНрд╡рд░ рд╡реАрдЖрдИрдкреА рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ
рдирдореВрдирд╛рдХрд░рдг/рд╡рд┐рд▓рдВрдмрддрд╛ рдЧрдгрдирд╛ рд╕реНрд╡рдпрдВ ...

рдмреБрдз, рдЕрдЧрд╕реНрдд 12, 2015 рдХреЛ рд░рд╛рдд 9:20 рдмрдЬреЗ, рдмреЗрдВрдЬрд╛рдорд┐рди рдПрд▓реНрдбрд░ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдзрдиреНрдпрд╡рд╛рдж рдореИрдВ рдЙрд╕рдореЗрдВ рджреЗрдЦ рд▓реВрдВрдЧрд╛ред

[рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА] рд╕реЗ (

https://github.com/kubernetes/kubernetes/pull/9210#issuecomment-130154261)
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реЗрд╡рд╛ рдЕрдиреБрд░реЛрдз рд╡рд┐рд▓рдВрдмрддрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕рд╣реА
рдЕрдм рдореИрдВ рдорд╛рдирдХ nginx рдХрдВрдЯреЗрдирд░ рдХреЛ рдиреЛрдб X рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдкрд░
рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреЙрдб рд╕рдордп рдЗрд╕реЗ рдмрд╛рд░-рдмрд╛рд░ рдорд╛рд░ рд░рд╣рд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдПрдХ рдЧреНрд░рд╛рдл рдмрдирд╛ рд╕рдХреЗрдВ
рдиреЛрдб рд╡рд╛рдИ.

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ netperf/qperf рдХреЛ рджреЗрдЦреВрдВрдЧрд╛, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдХрдИ рдкрд░реАрдХреНрд╖рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдЙрд╕ рдЧреНрд░рд╛рдл рдХреЛ рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд┐рдЫрд▓реА рдЪрд░реНрдЪрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░
@thockin

рдЧреБрд░реБ, рдЕрдЧрд╕реНрдд 13, 2015 рдХреЛ рджреЛрдкрд╣рд░ 12:02 рдмрдЬреЗ, рдкреЙрд▓ рдЯрд┐рдкрд▓рд╛рдбреА < рд╕реВрдЪрдирд╛рдПрдБ @github.com

рд▓рд┐рдЦрд╛ рдерд╛:

@BenTheElder https://github.com/BenTheElder рдореИрдВрдиреЗ рдЕрднреА рдХреБрдЫ рдХрд┐рдпрд╛ рд╣реИ
рдпрдереЛрдЪрд┐рдд
рдЬреАрд╕реАрдИ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдиреЗрдЯрд╡рд░реНрдХ рдкреВрд░реНрдг рдорд╛рдк - рдореИрдВ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ
рдкрд░
netperf (qperf рд╡рд┐рд▓рдВрдмрддрд╛ рдорд╛рдк рднреА рджреЗрддрд╛ рд╣реИ)ред

netperf рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ/рд╕рд░реНрд╡рд░ perf рдЯреВрд▓ рд╣реИ, рдореИрдВрдиреЗ рджреЛрдиреЛрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреИрдХ рдХрд┐рдпрд╛ рд╣реИ
рддрдерд╛
рдбреЛрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рд░реНрд╡рд░ рдкреЙрд▓реАрдкреНрд▓рд╛рдбреА/ рдиреЗрдЯрд╕рд░реНрд╡рд░: ubuntu.2ред
рд╡рд╣рд╛рдВ
netperf рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреЛ рдХреЛ рд╕реНрдкрд┐рди рдХрд░рдиреЗ рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИ
рдиреЗрдЯрд╕рд░реНрд╡рд░ рдкреЙрдбреНрд╕ рдФрд░ рд░рдирд┐рдВрдЧ

kubectl рдирд┐рд╖реНрдкрд╛рджрди -t $netserver-pod-1 -- netperf тАУl 30 -i 10 -I 99,1 -c -j
-рдПрдЪ
$netserver-pod-2-ip -t OMNI -- -T tcp -D -O

THROUGHPUT,THROUGHPUT_UNITS,MEAN_LATENCY,MIN_LATENCY,MAX_LATENCY,P50_LATENCY,P90_LATENCY,P99_LATENCY,STDDEV_LATENCY,LOCAL_CPU_UTIL

рдЖрдкрдХреЛ рд╡рд┐рд▓рдВрдмрддрд╛ рд╕рд╣рд┐рдд рдЖрдБрдХрдбрд╝реЛрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╕рд╛рд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░
рдереНрд░реВрдкреБрдЯ
рдЖрдк docker run --net=host to do рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ netserver рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдиреЛрдб-> рдкреЙрдб рдкрд░реАрдХреНрд╖рдг рднреАред

рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП dockerfile рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЖрдЧ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдБ
рдЕрдЧрд░
рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рджреБрдмрд▓реЗ-рдкрддрд▓реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓реНрдкрд╛рдЗрдирд▓рд┐рдирдХреНрд╕-рдЖрдзрд╛рд░рд┐рдд
рдЬрд▓реНрджреА рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░)ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
<

https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -130524576

.

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
<
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -130527558

.

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -130776866
.

@Symmetric netperf рдкрд░реАрдХреНрд╖рдг рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдпреЗ рдзрдиреНрдпрд╡рд╛рдж :-)

рдореИрдВ рдмрд╛рдж рдореЗрдВ рд╕рдВрднрд╡рддрдГ рдПрдХ рд╡реЗрдм-рд╕реЗрд╡рд╛ рдЬреИрд╕реЗ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рд▓реЛрдб рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рддрд░реНрдХреЛрдВ рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЕрдм рддрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдбреЗрдЯрд╛ рджреЗ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдмрд╛рдж рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ рдЬрдм рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░ рджреВрдВрдЧрд╛ред

рдпрд╣ рдЬрд╛рдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ -- рдЗрд╕рдореЗрдВ рдЪреМрдВрдХрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдВрдЦреНрдпрд╛ рд╣реИ
рдЙрд╕ рдЙрдкрдХрд░рдг рдкрд░ рд╡рд┐рдХрд▓реНрдк, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╕рд╛рдмрд┐рдд рд╣реБрдЖ рд╣реИред
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ iperf рд╕реЗ рдмреЗрд╣рддрд░...

рдЧреБрд░реБ, рдЕрдЧрд╕реНрдд 13, 2015 рдЕрдкрд░рд╛рд╣реНрди 2:32 рдмрдЬреЗ, рдмреЗрдВрдЬрд╛рдорд┐рди рдПрд▓реНрдбрд░ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@Symmetric https://github.com/Symmetric netperf рдкрд░реАрдХреНрд╖рдг рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗред рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдпреЗ рдзрдиреНрдпрд╡рд╛рдж :-)

рдореИрдВ рдмрд╛рдж рдореЗрдВ рд╡реЗрдм-рд╕реЗрд╡рд╛ рдЬреИрд╕реЗ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рд▓реЛрдб рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рд╕рдВрднрд╡рддрдГ, рд▓реЗрдХрд┐рди рд╕рд╣реА рддрд░реНрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдбреЗрдЯрд╛ рджреЗ рд░рд╣рд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП
рджреВрд░ред рдореИрдВ рдмрд╛рдж рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ рдЬрдм рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░ рджреВрдВрдЧрд╛ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -130850398
.

@thockin рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо LB рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП SNAT рдХреЗ рд╕рд╛рде рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рд╕реЛрдЪ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкреЙрдб рдХреА рдПрдХреНрд╕реЗрд╕ рдиреАрддрд┐ рдХреЛ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ '[рдореЗрд░реЗ рдирд╛рдорд╕реНрдерд╛рди] рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдВ' рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрд▓рдмреА рдкреИрдХреЗрдЯ рдЧрд┐рд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ
  • '[рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА] рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдВ', рдпрд╛ '[рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рднреА рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдВ]', рдлрд┐рд░ рд╕реЗ рдПрд▓рдмреА рдкреИрдХреЗрдЯ рд╣рдореЗрд╢рд╛ рдЧрд┐рд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ
  • 'рд╕рднреА рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдВ', рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрд▓рдмреА, рдЕрдиреНрдп рдиреЛрдб, рдпрд╛ рдХрд╣реАрдВ рднреА рд╣реИ рдпрд╛ рдирд╣реАрдВ

рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрд▓рдмреА рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдЖрдИрдкреА рдЦреЛрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд░ рд╣рдо рдЧрд╛рд░рдВрдЯреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрд▓рдмреА рд╕рд░реНрд╡рд┐рд╕ рдкреЙрдб рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдиреЛрдб рдорд╛рд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ - рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рдореЗрдВ рдПрд╕рдПрдирдПрдЯреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдо рдПрд▓рдмреА рдЖрдИрдкреА рдХреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдПрдХ рд╕рдЦреНрдд рдЬрд╣рд╛рдЬ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЙрдиреНрд╣реЗрдВ рдПрдХ рдкрд░ рдкреНрд░рд╛рд╡рдзрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╕реЗрд╡рд╛, рдФрд░ рдЕрдиреНрдпрдерд╛ рдпрд╛рддрд╛рдпрд╛рдд рдЫреЛрдбрд╝рдирд╛ред

рдкрдмреНрд▓рд┐рдХрдЖрдИрдкреА рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдиреЛрдбрдкреЛрд░реНрдЯ рдХреЗ рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░ рд╣реЛрдВрдЧреЗ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рддрдм рддрдХ рдПрд╕рдПрдирдПрдЯреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрдм рддрдХ рдХрд┐ рдПрд▓рдмреА рд╕рд╣реА рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рд╣рд┐рдЯ рдирд╣реАрдВ рдХрд░ рд▓реЗрддреЗред рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреМрди рд╕рд╛ рдареАрдХ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдореБрдЭреЗ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдпрд╛рдж рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╡реЗ рдиреЛрдбрдкреЛрд░реНрдЯ рд╕реЗ рдЕрдзрд┐рдХ рджреБрд╖реНрдЯ рд╣реИрдВ ...

рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ MASQUERADE рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рдзреНрд╡рдЬ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рдЕрднрд┐рдирдп)ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд┐рджрд╛рди рдпрд╛ рдХрдордмреИрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ (рдореИрдВ vxlan рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ)ред

-------- рд╕рдВрджреЗрд╢ рдбреА рдУрд░рд┐рдЬрд┐рди --------
рдбреА: рдкреЙрд▓ рдЯрд┐рдкрд▓рдбреА рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рджрд┐рдирд╛рдВрдХ: 14/08/2015 12:50 (рдЬреАрдПрдордЯреА+11:00)
рдкрддрд╛: Kubernetes/kubernetes [email protected]
рд╕реАрд╕реА: рдорд┐рдХреЗрд▓ рдХреНрд▓реВрд╕реЛ [email protected]
Objet : рдкреБрди: [kubernetes] рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдХреЗ рдмрдЬрд╛рдп рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
(#3760)

@thockin рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо LB рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП SNAT рдХреЗ рд╕рд╛рде рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рд╕реЛрдЪ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкреЙрдб рдХреА рдПрдХреНрд╕реЗрд╕ рдиреАрддрд┐ рдХреЛ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

рдбрд┐рдлрд╝реЙрд▓реНрдЯ '[рдореЗрд░реЗ рдирд╛рдорд╕реНрдерд╛рди] рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдВ' рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрд▓рдмреА рдкреИрдХреЗрдЯ рдЧрд┐рд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ
'[рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА] рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдВ', рдпрд╛ '[рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рднреА рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдВ]', рдлрд┐рд░ рд╕реЗ рдПрд▓рдмреА рдкреИрдХреЗрдЯ рд╣рдореЗрд╢рд╛ рдЧрд┐рд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ
'рд╕рднреА рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдВ', рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрд▓рдмреА, рдЕрдиреНрдп рдиреЛрдб, рдпрд╛ рдХрд╣реАрдВ рднреА рд╣реИ рдпрд╛ рдирд╣реАрдВ

рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрд▓рдмреА рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдЖрдИрдкреА рдЦреЛрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд░ рд╣рдо рдЧрд╛рд░рдВрдЯреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрд▓рдмреА рд╕рд░реНрд╡рд┐рд╕ рдкреЙрдб рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдиреЛрдб рдорд╛рд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ - рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рдореЗрдВ рдПрд╕рдПрдирдПрдЯреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдо рдПрд▓рдмреА рдЖрдИрдкреА рдХреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдПрдХ рд╕рдЦреНрдд рдЬрд╣рд╛рдЬ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЙрдиреНрд╣реЗрдВ рдПрдХ рдкрд░ рдкреНрд░рд╛рд╡рдзрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╕реЗрд╡рд╛, рдФрд░ рдЕрдиреНрдпрдерд╛ рдпрд╛рддрд╛рдпрд╛рдд рдЫреЛрдбрд╝рдирд╛ред

рдкрдмреНрд▓рд┐рдХрдЖрдИрдкреА рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдиреЛрдбрдкреЛрд░реНрдЯ рдХреЗ рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░ рд╣реЛрдВрдЧреЗ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рддрдм рддрдХ рдПрд╕рдПрдирдПрдЯреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрдм рддрдХ рдХрд┐ рдПрд▓рдмреА рд╕рд╣реА рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рд╣рд┐рдЯ рдирд╣реАрдВ рдХрд░ рд▓реЗрддреЗред рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреМрди рд╕рд╛ рдареАрдХ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдореБрдЭреЗ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдпрд╛рдж рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╡реЗ рдиреЛрдбрдкреЛрд░реНрдЯ рд╕реЗ рдЕрдзрд┐рдХ рджреБрд╖реНрдЯ рд╣реИрдВ ...

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВред

@MikaelCluseau рдпрд╣ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ - рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЙрд╕ рдкрд░ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХрд╛ рдЯреНрд░реИрдХ рдирд╣реАрдВ рдЦреЛрддрд╛?

рдЕрднреА рднреА TODO: рд╣реЗрдпрд░рдкрд┐рди рдареАрдХ рдХрд░реЗрдВ, e2e, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ

рд╣рд╛рдп рдЯрд┐рдо, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рдХрд░рдиреА рдереА... рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдЧрд▓реЗ рд╢рдирд┐рд╡рд╛рд░ рдХреЛ рдлрд┐рдХреНрд╕ рд╣реЗрдпрд░рдкрд┐рди рдЪреБрдиреВрдВрдЧрд╛ред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдиреЛрдЯ рдерд╛ - рдХреНрдпрд╛ рдЖрдк рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рдереЗ? :)

рд╣рд╛рдВ, рдмрд┐рд▓реНрдХреБрд▓, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛ рдерд╛ рдЬрдм рд╣рдо e2e рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рдереЗред рдореИрдВ рдорджрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдХрд░реВрдВрдЧрд╛, рдФрд░ рдмрдЧ рд▓реЗрдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рдХреНрдпрд╛ рд╣реИ? :-) рдХрд┐рд╕реА рднреА рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣реЗрдпрд░рдкрд┐рди рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрд╣ рдХреНрдпреВрдмрд▓реЗрдЯ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдзреНрд╡рдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдкрд╣рд▓реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо)ред рдореИрдВ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ 0.5 рд╕реЗ 1 рджрд┐рди рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

AFAIK рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХрдорд╛рддреНрд░ рд╣рд┐рд╕реНрд╕рд╛ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдирд╛ рджреЗрддрд╛ рд╣реИ рдЬреЛ v1.1 рдХреЗ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдХреЛрдИ рдЭрдЯрдХрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛) рдФрд░ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдореАрд▓ рд╣реИред

рд╡рд╛рд╣!

рдереВ, 24 рд╕рд┐рддрдВрдмрд░ 2015 рдХреЛ рдкреВрд░реНрд╡рд╛рд╣реНрди 11:21 рдмрдЬреЗ рдЯрд┐рдо рд╣реЙрдХрд┐рди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

AFAIK рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХрдорд╛рддреНрд░ рд╣рд┐рд╕реНрд╕рд╛ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдирд╛ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
v1.1 рдХреЗ рдХреБрдЫ рд╕рдордп рдмрд╛рдж (рдмрд┐рдирд╛ рдмреНрд▓реЛ-рдЕрдк рдорд╛рдирдХрд░) рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдореАрд▓ рд╣реЛрддреЗ рд╣реИрдВ
рдЗрд╕ рдкрд░ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -142960614
.

v1.1 рдХреЗ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдФрд░ рдЗрд╕ рдкрд░ рдХреБрдЫ рдореАрд▓ рд╣реИред

рдЖрдЙрдЪред рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкрд░ 1.1 рдХреЗ рд▓рд┐рдП рднрд░реЛрд╕рд╛ рдХрд░ рд░рд╣реЗ рдереЗ ....
https://github.com/kubernetes/kubernetes/blob/master/docs/roadmap.md

@bgrieder рдЖрдк рдЕрднреА рднреА рдЗрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ IN рд╣реИ рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рдирд╣реАрдВ рд╣реИред рдЖрдк рдкреНрд░рддрд┐ рдПрдХ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдСрдкреНрдЯ-рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдиреЛрдб (рдФрд░ рдПрдХ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдкреБрдирд░рд╛рд░рдВрдн)

рдереВ, 24 рд╕рд┐рддрдВрдмрд░, 2015 рдХреЛ рд╕реБрдмрд╣ 8:27 рдмрдЬреЗ, рдмреНрд░реВрдиреЛ рдЬреА. рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

v1.1 рдХреЗ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдФрд░ рдЗрд╕ рдкрд░ рдХреБрдЫ рдореАрд▓ рд╣реИред

рдЖрдЙрдЪред рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкрд░ 1.1 рдХреЗ рд▓рд┐рдП рднрд░реЛрд╕рд╛ рдХрд░ рд░рд╣реЗ рдереЗ ....
https://github.com/kubernetes/kubernetes/blob/master/docs/roadmap.md

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -142962932
.

@thockin @bnprss рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╕рдВрд╕реНрдХрд░рдг 1.1 рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж Google рдХрдВрдЯреЗрдирд░ рдЗрдВрдЬрди рдкрд░ рдЪрд▓рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд▓рдЪреАрд▓рд╛рдкрди 'рдкреНрд░рддрд┐ рдиреЛрдб рдПрдХ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдСрдкреНрдЯ-рдЗрди' рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╡рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреНрдпрд╛ рд╣реЛрдЧреА рдпрд╛ рд╣рдореЗрдВ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреА рдУрд░ рд╕рдВрдХреЗрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдПрдХ рдмрд╛рд░ 1.1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж:

$ for node in $(kubectl get nodes -o name); do kubectl annotate $node net.beta.kubernetes.io/proxy-mode=iptables; done

рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП SSH рдФрд░ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ (рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░реЗрдВ)ред

рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рд╕рддрд░реНрдХ рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдпрд╛ рджреЛ рдиреЛрдбреНрд╕ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ :)

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рд░рд┐рд▓реАрдЬрд╝-рдиреЛрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдЕрдкрдиреЗ 1.1 рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЙрд╕ рдореИрдЬрд┐рдХ рд▓реВрдк рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред

@RichieEscarez

(рдмрд╕ рдкреЙрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рд╣рдо рдПрдХ рд╣рдлреНрддреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реАрдЗрдВрдЧ iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ!)

@thockin рдХреНрдпрд╛ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ 1.1 рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореИрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 1.2 рдкрд░ рд▓реЗ рдЬрд╛рдКрдБрдЧрд╛ред

рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЧреВрдВрдЧрд╛ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдХреЗ рд╕рдВрд░рдХреНрд╖рдг рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ:

@thockin рдореИрдВрдиреЗ 2 рд╕рд┐рддрдВрдмрд░ рдХреЛ рдПрдХ рдЕрдиреНрдп рдЕрдВрдХ рдореЗрдВ рджреЗрдЦрд╛ рдХрд┐ "рдХреЗрд╡рд▓ рдЗрдВрдЯреНрд░рд╛-рдХреНрд▓рд╕реНрдЯрд░ рдЯреНрд░реИрдлрд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдХреЛ рдмрд░рдХрд░рд╛рд░ рд░рдЦрддрд╛ рд╣реИ" - рдХреНрдпрд╛ рдпрд╣ 1.2 рдЕрд▓реНрдлрд╛ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рд╕рдЪ рд╣реИ?

рд╣рдордиреЗ рдПрдХ рдирдпрд╛ 1.2 рдХреНрд▓рд╕реНрдЯрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛, рдиреЛрдб рдПрдиреЛрдЯреЗрд╢рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ рдЕрднреА рднреА HAProxy рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреЙрдб рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ 10.244.0.1 рджреЗрдЦрддреЗ рд╣реИрдВред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдордиреЗ рдПрдХ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдореИрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЕрднреА рддрдХ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ - рд╡рд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдИрдкреА рдкрддрд╛ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдПрдХ рдПрдиреЛрдЯреЗрд╢рди рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдиреЛрдб (net.beta.kubernetes. io/proxy-mode=iptables) рдФрд░ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ
рдкреНрд░реЙрдХреНрд╕реАред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╛рд╣рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдХреЛ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреЗрд╡рд▓ рдЗрдВрдЯреНрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░
рдЖрдИрдкреА
23 рдЕрдХреНрдЯреВрдмрд░ 2015 рдХреЛ рд╢рд╛рдо 5:09 рдмрдЬреЗ, "рдмреЗрди рд╣рдВрдбрд▓реЗ" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЧреВрдВрдЧрд╛ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрд░рдХреНрд╖рдг рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ
рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдХреА:

@thockin https://github.com/thockin рдореИрдВрдиреЗ 2 рд╕рд┐рддрдВрдмрд░ рдХреЛ рдПрдХ рдЕрдиреНрдп рдЕрдВрдХ рдореЗрдВ рджреЗрдЦрд╛
рдХрд┐ "рдХреЗрд╡рд▓ рдЗрдВрдЯреНрд░рд╛-рдХреНрд▓рд╕реНрдЯрд░ рдЯреНрд░реИрдлрд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдХреЛ рдмрд░рдХрд░рд╛рд░ рд░рдЦрддрд╛ рд╣реИ" - рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рд╣реИ
1.2 рдЕрд▓реНрдлрд╛ рдХреЗ рд▓рд┐рдП рд╕рдЪ рд╣реИ?

рд╣рдордиреЗ рдПрдХ рдирдпрд╛ 1.2 рдХреНрд▓рд╕реНрдЯрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛, рдиреЛрдб рдПрдиреЛрдЯреЗрд╢рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛,
рдФрд░ рдЕрднреА рднреА 10.244.0.1 рдХреЛ a . рдХреЛ рдХрд┐рдП рдЧрдП рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдВ
рдкреЙрдб рд░рдирд┐рдВрдЧ HAProxy.

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдЪреВрдХ рдЧрдП рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ
рд╕реЗрдЯрд┐рдВрдЧ рдпрд╛ рдореИрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЕрднреА рддрдХ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ -- рдХрд┐
рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдИрдкреА рдкрддрд╛ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ
рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -150725513
.

рдореИрдВ рдПрдХ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░реА рдЯреНрд░реИрдлрд╝рд┐рдХ + рд░реВрдЯрд┐рдВрдЧ рдХреЛ рдбреАрдПрдирдПрдЯ рдХрд░рдХреЗ рдмрд╛рд╣рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХрд╛ рд╕реЗрд╡рд╛ рдиреЗрдЯрд╡рд░реНрдХ 10.42.0.0/16 рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ IP 10.10.1.1 рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рдЙрдкрд▓рдмреНрдз рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд┐рдореНрди iptable рдирд┐рдпрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

-A PREROUTING -i public -p tcp -m tcp --dport 25 -j DNAT --to-destination 10.42.12.34

рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рд░реНрдЧ:

10.42.0.0/16 via 10.10.1.1 dev edge 

рдкреЙрдб рдкреАрдЫреЗ рдЕрд╕рд▓реА рдЖрдИрдкреА рджреЗрдЦрддрд╛ рд╣реИ:

Oct 24 02:41:39 email-0yr7n mail.info postfix/smtpd[469]: connect from zed.yyy.ru.[94.102.51.96]

рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреИрдХреЗрдЯ рдХреЗ рд╡рд╛рдкрд╕реА рдкрде рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рдБ, рдпрджрд┐ рдпрд╣ DNAT рдПрдХ рдСрдл-рдорд╢реАрди рдмреИрдХрдПрдВрдб рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдмрд┐рдирд╛ рддреНрд░рд┐рднреБрдЬ рдХреЗ рдПрдХ рддреНрд░рд┐рднреБрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ
SNATред рдпрд╣ рдореВрд▓рднреВрдд рд╕рдорд╕реНрдпрд╛ рд╣реИред

рд╢реБрдХреНрд░, 23 рдЕрдХреНрдЯреВрдмрд░, 2015 рдХреЛ рд░рд╛рдд 8:12 рдмрдЬреЗ, рдорд┐рдХрд╛рдПрд▓ рдХреНрд▓реВрд╕реЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдореИрдВ рдмрд╛рд╣рд░реА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ DNAT'ing рдХрд░рдХреЗ рдмрд╛рд╣рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ IP рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдБ +
рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрдЯрд┐рдВрдЧред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХрд╛ рд╕реЗрд╡рд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╣реИ
10.42.0.0/16 рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрдИрдкреА рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рдЙрдкрд▓рдмреНрдз рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╣реИ
10.10.1.1, рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд iptable рдирд┐рдпрдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

-рдП рдкреНрд░реАрдЖрдЙрдЯрд┐рдВрдЧ-рдЖрдИ рдкрдмреНрд▓рд┐рдХ-рдкреА рдЯреАрд╕реАрдкреА-рдПрдо рдЯреАрд╕реАрдкреА--рдбреАрдкреЛрд░реНрдЯ 25-рдЬреЗ рдбреАрдПрдирдПрдЯреА-рдЯреВ-рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди 10.42.12.34

рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рд░реНрдЧ:

10.42.0.0/16 рд╕реЗ 10.10.1.1 рджреЗрд╡ рдХрд┐рдирд╛рд░реЗ

рдкреЙрдб рдкреАрдЫреЗ рдЕрд╕рд▓реА рдЖрдИрдкреА рджреЗрдЦрддрд╛ рд╣реИ:

24 рдЕрдХреНрдЯреВрдмрд░ 02:41:39 рдИрдореЗрд▓-0yr7n mail.info рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕/smtpd[469]: zed.yyy.ru рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред[94.102.51.96]

рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреИрдХреЗрдЯ рдХреЗ рд╡рд╛рдкрд╕реА рдкрде рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -150747217
.

рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдХреЛрдИ рд▓рд┐рдВрдХ? :-) рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдкреИрдХреЗрдЯ рд╕рд╣реА рдХреЙрдиреНрдЯреНрд░реИрдХ рдирд┐рдпрдо рд╕реЗ рдЧреБрдЬрд░реЗрдЧрд╛ред рдореИрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдирдЯреНрд░реИрдХ рд╕реНрдЯреЗрдЯ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ред

рдЖрдк рдЬреЛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рд╕реЗ рдореИрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЦреЛ рдЧрдпрд╛ рд╣реВрдВред

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╡рд░реНрддрдорд╛рди iptables рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдкреИрдХреЗрдЯ
рдПрдХ рдиреЛрдб рдкрд░ рдЖрддрд╛ рд╣реИ, рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рдХрд░реЗрдВ
SNAT, рдмреИрдХрдПрдВрдб рдЪреБрдиреЗрдВ, SNAT рдХреЗ рд╕рд╛рде рдмреИрдХрдПрдВрдб рдкрд░ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░реЗрдВ, рдмреИрдХрдПрдВрдб рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрддрд╛ рд╣реИ
рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рд╣рдо рдЕрди-рдПрд╕рдПрдирдПрдЯреА, рдЕрди-рдбреАрдПрдирдПрдЯреА, рдФрд░ рдмрд╛рд╣рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддреЗ рд╣реИрдВред

рд╢реБрдХреНрд░, 23 рдЕрдХреНрдЯреВрдмрд░, 2015 рдХреЛ рд░рд╛рдд 9:32 рдмрдЬреЗ, рдорд┐рдХрд╛рдПрд▓ рдХреНрд▓реВрд╕реЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдХреЛрдИ рд▓рд┐рдВрдХ? :-) рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
рдкреИрдХреЗрдЯ рд╕рд╣реА рдХреЙрдиреНрдЯреНрд░реИрдХ рдирд┐рдпрдо рд╕реЗ рдЧреБрдЬрд░реЗрдЧрд╛ред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛
рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдирдЯреНрд░реИрдХ рд░рд╛рдЬреНрдп рдХреА рдкреНрд░рддрд┐рдХреГрддрд┐ рдмрдирд╛рдирд╛ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -150753147
.

рдУрд╣, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЕрдЧрд░ рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдБред рдореИрдВ SNAT-рд░рд╣рд┐рдд рдорд╛рдорд▓реЗ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрджрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреА рд╕рдорд╛рди рдХреЙрдиреНрдЯреНрд░реИрдХ рд╕реВрдЪреА рд╣реИ, рддреЛ рдХрдВрдЯреЗрдирд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдкрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрди-рдбреАрдПрдирдПрдЯреА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдПрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд░реЗрдЦрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдЪрдП рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ:

[client] ----- [proxy in HA] ------ [node1]
                           `------- [node2]

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рддреНрд░рд┐рдХреЛрдг рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЪреАрдЬ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЦреЛрд▓рдиреА рдЪрд╛рд╣рд┐рдПред

[client] ----- [proxy1] ------ [node1]
       `------ [proxy2] ------ [node2]

рдпрд╣ рдкреНрдпрд╛рд░рд╛ рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рдкрд╛рдЧрд▓ рдЬрдЯрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИ

рд╕реВрд░реНрдп, 25 рдЕрдХреНрдЯреВрдмрд░, 2015 рдореЗрдВ 11:20 рдмрдЬреЗ рдкрд░, рдорд╛рдЗрдХрд▓ Cluseau [email protected]
рд▓рд┐рдЦрд╛ рдерд╛:

рдУрд╣, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЕрдЧрд░ рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдБред рдореИрдВ SNAT-рд░рд╣рд┐рдд рдорд╛рдорд▓реЗ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЕрдЧрд░
рдкреНрд░рддреНрдпреЗрдХ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреА рд╕рдорд╛рди рдХреЙрдиреНрдЯреНрд░реИрдХ рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ, рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдЬрдм рдХрдВрдЯреЗрдирд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ рддреЛ рдЕрди-рдбреАрдПрдирдПрдЯреА рд╕рд╣реА рдврдВрдЧ рд╕реЗред

рдореИрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдПрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рдмрд┐рдирд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдПрдЪрдП рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ
рдЗрд╕ рддрд░рд╣ рдХреА рд░реЗрдЦрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреА рд╕рдВрд░рдЪрдирд╛:

[рдХреНрд▓рд╛рдЗрдВрдЯ] ----- [рд╣рд╛ рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА] ------ [рдиреЛрдб1]
`------- [рдиреЛрдб 2]

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рддреНрд░рд┐рдХреЛрдг рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЪреАрдЬ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЦреЛрд▓рдиреА рдЪрд╛рд╣рд┐рдПред

[рдХреНрд▓рд╛рдЗрдВрдЯ] ----- [рдкреНрд░реЙрдХреНрд╕реА 1] ------ [рдиреЛрдб 1]
`------ [рдкреНрд░реЙрдХреНрд╕реА2] ------ [рдиреЛрдб2]

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -151037663
.

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореБрдЭреЗ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░рдирд╛ рд╣реИ (рдореБрдЭреЗ рдЙрдЪрд┐рдд рд╢реЛрдз рд╕реЗ рдкрд╣рд▓реЗ рдкреВрдЫрдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╕рдмрдЬреЗрдЯ рдЕрдм рдЦреБрд▓рд╛ рд╣реИ ...) "рдЕрд╕рдордорд┐рдд рдмрд╣реБ-рдкрде рд░реВрдЯрд┐рдВрдЧ" рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: http:// conntrack-tools.netfilter.org/manual.html#sync-aa ред рдФрд░ рд╣рд╛рдБ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ :-)

рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдЪреАрдЬ рдЬреЛ рд╕рдВрднрд╡рддрдГ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ ...

  1. рдкреНрд░реЙрдХреНрд╕реА 1 рдХреЛ iptables рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдирдпрд╛ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ), рдФрд░ рдЗрд╕рдХрд╛ рдПрд▓рдмреА рдЗрд╕реЗ рдкреНрд░реЙрдХреНрд╕реА 2 рдХреЗ рдиреЛрдб рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИред
  2. рдкреНрд░реЙрдХреНрд╕реА1 рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ рдЬреИрд╕реЗ "{src-ip}:{src-port} -> {pod-ip}:{pod-port} рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдЯреНрд░реИрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗрдЯ рдХрд░реЗрдВ"
  3. рдкреНрд░реЙрдХреНрд╕реА 2 рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдХреЙрдиреНрдЯреНрд░реИрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдкреНрд░реЙрдХреНрд╕реА 1 рдкрд░ рдПрд╕реАрдХреЗ рдХрд░рддрд╛ рд╣реИ
  4. рдкреНрд░реЙрдХреНрд╕реА1 рдкреИрдХреЗрдЯ рдХреЛ рдбреАрдПрдирдПрдЯреА рдирд┐рдпрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рджреЗрддрд╛ рд╣реИ (рдЬреЛ рдкреНрд░реЙрдХреНрд╕реА 1 рдореЗрдВ рднреА рдПрдХ рдХреЙрдиреНрдЯреНрд░реИрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдбрд╛рд▓рддрд╛ рд╣реИ)ред
  5. рдЬрдм рдкреЙрдб рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЙрдХреНрд╕реА 2 рдХрд╛ рд╣реЛрд╕реНрдЯ рдЙрд╕реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ unDNATs рдХрд░рддрд╛ рд╣реИред
  6. рдЬрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░реЙрдХреНрд╕реА1 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдкреНрд░рд╡рд╛рд╣ рдкрд░ рдПрдХ рдФрд░ рдкреИрдХреЗрдЯ рднреЗрдЬрддрд╛ рд╣реИ, рддреЛ рдХреЙрдирдЯреНрд░реИрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕рд╣реА DNAT рднреА рдХрд░рддреА рд╣реИред

рдЗрд╕ рддрд░рд╣, рдУрд╡рд░рд╣реЗрдб 2 рдкреИрдХреЗрдЯ рдкреНрд░рддрд┐ рдирдпрд╛ рдХрдиреЗрдХреНрд╢рди рд╣реИ, рдФрд░ рдЕрди-рдПрд╕рдПрдирдПрдЯреА + рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдЯрд┐рдВрдЧ рд╕реЗ рдмрдЪрдХрд░ рддреЗрдЬреА рд╕реЗ рд╡рд╛рдкрд╕ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрдиреНрдпрдерд╛ рдкреИрдХреЗрдЯ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА 1 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ)ред

рдореИрдВ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╛рди рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдкреНрд░рддрд┐ NodePort рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдерд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ INPUT рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЕрдиреНрдп рд╕рднреА рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рд░рд▓ ALLOW IP / DROP рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ:

iptables -A INPUT -s $WHITELISTED_IP -p tcp --dport $CONTAINER_PORT -j ACCEPT
iptables -A INPUT -p tcp --dport $CONTAINER_PORT -j DROP

рдЗрди рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЬреЛ рдХрд▓реНрдкрдирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛, рд╡рд╣ NodePort рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рд╢реНрд╡реЗрддрд╕реВрдЪреА рд╡рд╛рд▓реЗ рдЖрдИрдкреА рд╣реЛрдВрдЧреЗред

рдЪреВрдВрдХрд┐ рдореИрдВ рдЗрди рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рднреА рд╕рд░реНрд╡рд┐рд╕ рдПрдиреЛрдЯреЗрд╢рди рд╕реЗ рдорд┐рдирд┐рдпрди рдХреА INPUT рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдорд┐рдирд┐рдпрди рдкрд░ рдПрдХ рд╕реВрдХреНрд╖реНрдо рдХреНрд░реЙрди рдХрд╛рд░реНрдп рдХреА рдХрд▓реНрдкрдирд╛ рдХреАред

рдХреНрдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдХреНрдпрд╛ рдореИрдВ рдкрд╛рдЧрд▓ рд╣реВрдВ?

@thockin рдХреЗ рдкрд╛рд╕ рдореБрдЭрд╕реЗ рдмреЗрд╣рддрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдСрд░реНрдереЛрдЧреЛрдирд▓ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрд▓рдЧ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рд╢рд╛рдпрдж рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ/рдкреНрд░реЙрдХреНрд╕реА рдкреНрд▓рдЧрдЗрдиред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Kubernetes рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ etcd рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдмрд╕ рдПрдХ рдирд┐рдпрдо рд╕реЗрдЯ рдХреЛ рдПрдХ рдХреБрдВрдЬреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ etcdctl рдШрдбрд╝реА/рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

# while true; do etcdctl watch "/iptables/$(hostname)" && etcdctl get /iptables/$(hostname) |iptables-restore --noflush; done &
# iptables -F my-filter
# iptables -nvL my-filter
Chain my-filter (0 references)
 pkts bytes target     prot opt in     out     source               destination      
# ~nwrk/go/bin/etcdctl set /iptables/$(hostname) >/dev/null <<EOF
*filter
:my-filter -
-A my-filter -j ACCEPT -s 1.2.3.4 -p tcp --dport 80
-A my-filter -j DROP -p tcp --dport 80
COMMIT
EOF
# iptables -nvL my-filter
Chain my-filter (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       1.2.3.4              0.0.0.0/0            tcp dpt:80
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ #14505

рд╕реЛрдо, 26 рдЕрдХреНрдЯреВрдмрд░ 2015 рдХреЛ рд╕реБрдмрд╣ 8:53 рдмрдЬреЗ, рдмреЗрди рд╣рдВрдбрд▓реЗ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдкреНрд░рддрд┐ NodePort рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдерд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рд╛рдзрд╛рд░рдг ALLOW IP / DROP рдХреЛ рдЕрдиреНрдп рд╕рднреА рдирд┐рдпрдореЛрдВ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ
INPUT рд╢реНрд░реГрдВрдЦрд▓рд╛, рдЬреИрд╕реЗ:

iptables -A INPUT -s $WHITELISTED_IP -p tcp --dport $CONTAINER_PORT -j ACCEPT
iptables -рдПрдХ рдЗрдирдкреБрдЯ -рдкреА рдЯреАрд╕реАрдкреА --dport $CONTAINER_PORT -j рдбреНрд░реЙрдк

рдЗрди рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЙрд╕ рдкрд░ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛
рдиреЛрдбрдкреЛрд░реНрдЯ рд╕реЗрд╡рд╛рдПрдВред рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рд╢реНрд╡реЗрддрд╕реВрдЪреА рд╡рд╛рд▓реЗ рдЖрдИрдкреА рд╣реЛрдВрдЧреЗред

рдЪреВрдВрдХрд┐ рдореИрдВ рдЗрди рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдорд┐рдирдЯ рдХреА рдХрд▓реНрдкрдирд╛ рдХреА
рдорд┐рдирд┐рдпрди рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдиреЗ рдФрд░ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдорд┐рдирд┐рдпрди рдкрд░ рдХреНрд░реЙрди рдХрд╛рд░реНрдп
рд╕рднреА рд╕реЗрд╡рд╛ рдПрдиреЛрдЯреЗрд╢рди рд╕реЗ рд╢реНрд░реГрдВрдЦрд▓рд╛ред

рдХреНрдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдХреНрдпрд╛ рдореИрдВ рдкрд╛рдЧрд▓ рд╣реВрдВ?

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -151181267
.

рдпрд╣ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдореВрд╣ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдереЗред рдореИрдВрдиреЗ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдкрд░ рдкреНрд░рддрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреА рд╕реАрдорд╛ рдХреЛ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдорд╛рд░рд╛, рдФрд░ рдПрдХ рдХреНрдпреВрдм рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХрдИ рдПрд╕рдЬреА рдФрд░ рдПрдХрд╛рдзрд┐рдХ рдИрдПрд▓рдмреА рдореЗрдВ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдореЛрдВ рдХреЛ рдлреИрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рдХреБрдЫ рдмрд╛рд▓реЛрдВ рд╡рд╛рд▓реЗ рддрд░реНрдХ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рд╣рдо рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдкрд░ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ iptables рдХреЗ рд╕рд╛рде рдкрдВрдЧрд╛ рд▓реЗрдирд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рдЖрдк рдЕрднреА рд╢рд╛рдорд┐рд▓ рд╣реБрдП рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рджреЗрдВред рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рдХреЗ рд╕рднреА рдореБрджреНрджреЛрдВ рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди (рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд) рдЗрд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдЖрдИрдкреА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛.

@ shaylevi2 рдХреНрд▓рд╛рдЙрдб рдПрд▓рдмреА рдФрд░ рдиреЛрдбрдкреЛрд░реНрдЯ рдкрд░ рдмрд╛рдЙрдВрд╕ рдХрд░рддреЗ рд╕рдордп рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рдмрд╛рд░ рдХреНрд▓рд╛рдЙрдб рдПрд▓рдмреА рдХреЗ рдкрдХрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЙрд╕ рдкрд░ рдХреВрдж рдЬрд╛рдКрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрддрд╛ рд╣реИ

рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрддрд╛ рд╣реИ

рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЗрд╕ рд╕рдордп OpenShift рдореЗрдВ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ iptables рдирд┐рдпрдо OVS-рдЖрдВрддрд░рд┐рдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкрд░ рдирд╣реАрдВ рдЪрд▓рддреЗ рд╣реИрдВред рддреЛ рдкреИрдХреЗрдЯ рдбреАрдПрдирдПрдЯреАрдб рд╕реЗрд╡рд╛ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдореЗрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╕реНрд░реЛрдд рдЖрдИрдкреА рдХреНрд▓рд╕реНрдЯрд░-рдЖрдВрддрд░рд┐рдХ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдУрд╡реАрдПрд╕ рдХреЗ рднреАрддрд░ рд░рд╣реЗрдЧреА, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдлрд┐рд░ рд╕реЗ iptables рд╣рд┐рдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП DNAT'ing рдЙрд▓рдЯ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдкреЙрдб рдкреИрдХреЗрдЯ рдХреЛ рдирд╣реАрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрдкрд╛рдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдореЗрдВ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдврдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рдП, рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рдкрд░ рдлрд┐рд░ рд╕реЗ OVS рд╕реЗ рдмрд╛рдЙрдВрд╕ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдкрдбрд╝реЗред (рдореИрдВ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред)

рдХреНрдпрд╛ рдУрд╡реАрдПрд╕ рдХреА рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╡реАрдЖрдИрдкреА рдзрд╛рд░рдгрд╛ рд╣реИ? рдЖрдк рдмрд╕ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА (cf opencontrail)

рд╢реБрдХреНрд░, 20 рдирд╡рдВрдмрд░, 2015 рдХреЛ рд╕реБрдмрд╣ 7:09 рдмрдЬреЗ, рдбреИрди рд╡рд┐рдирд╢рд┐рдк рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрддрд╛ рд╣реИ

рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд╣реАрдВ рд╣реИ
рдЗрд╕ рд╕рдордп OpenShift рдореЗрдВ рд╕рд╣реА рдХрд╛рдо рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ iptables рдирд┐рдпрдо рдирд╣реАрдВ рдЪрд▓рддреЗ рд╣реИрдВ
рдУрд╡реАрдПрд╕-рдЖрдВрддрд░рд┐рдХ рдпрд╛рддрд╛рдпрд╛рдд рдкрд░ред рддреЛ рдкреИрдХреЗрдЯ рдХреЛ рд╕реЗрд╡рд╛ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП DNAT'ed рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╕реНрд░реЛрдд рдЖрдИрдкреА рдХреНрд▓рд╕реНрдЯрд░-рдЖрдВрддрд░рд┐рдХ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреА
рдУрд╡реАрдПрд╕ рдХреЗ рднреАрддрд░ рд░рд╣реЗрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдлрд┐рд░ рд╕реЗ iptables рдХреЛ рд╣рд┐рдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП DNAT'ing рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рдЙрд▓реНрдЯрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдкреЙрдб рдкреИрдХреЗрдЯ рдХреЛ рдирд╣реАрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред рдкрд░
рдкрд▓, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрдкрд╛рдп рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫрд┐рдкрд╛рдирд╛ рд╣реИ
рдПрдВрдбрдкреЙрдЗрдВрдЯ рдореЗрдВ рдЬрд╛рдХрд░, рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдУрд╡реАрдПрд╕ рд╕реЗ рдмрд╛рдЙрдВрд╕ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛
рдмрд╛рд╣рд░ рдХрд╛ рд░рд╛рд╕реНрддрд╛ред (рдореИрдВ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред)

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -158426296
.

рд╣рдордиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдУрд╡реАрдПрд╕ рдХреЗ рдЕрдВрджрд░ рдкреНрдпреЛрд░-рдЖрдИрдкреАрдЯреЗрдмрд▓реНрд╕-рдкреНрд░реЙрдХреНрд╕рд┐рдВрдЧ рдХреЗ рдмрд░рд╛рдмрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдУрд╡реАрдПрд╕ рдХреЙрдирдЯреНрд░реИрдХ рд╕рдкреЛрд░реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╣рд╛рд▓рд┐рдпрд╛ рдХрд░реНрдиреЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдЕрднреА рддрдХ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред

(рдЕрднреА рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рд╕реНрд░реЛрдд рдЖрдИрдкреА + рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рдУрд╡реАрдПрд╕ рд╕реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЙрдк рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЬреНрдЮрд╛рдд рд╕реЗрд╡рд╛ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ; рдиреЛрдб рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдЕрди-рдбреАрдПрдирдПрдЯреА рдХрд░реЗрдЧрд╛ , рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ OVS рдореЗрдВ рдЙрдЫрд╛рд▓ рджреЗрдВ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреЙрдб рдореЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╡рд╛рдкрд╕ рдкрд╣реБрдВрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред)

рдореИрдВ рд╕реЗрд╡рд╛ рд╡реАрдЖрдИрдкреА рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдореВрд░реНрдд рд╣реИ рдЬрд┐рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдХреБрдЫ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдорд╛рдорд▓реЗ)ред

рд╕реЛрдо, рдирд╡рдВрдмрд░ 23, 2015 рдХреЛ рд╕реБрдмрд╣ 6:54 рдмрдЬреЗ, рдбреИрди рд╡рд┐рдирд╢рд┐рдк рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рд╣рдордиреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдмрд░рд╛рдмрд░ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдХреА рдереА
Pure-iptables-proxying рдкреВрд░реА рддрд░рд╣ рд╕реЗ OVS рдХреЗ рдЕрдВрджрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП OVS conntrack рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╕рдорд░реНрдерди, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╣рд╛рд▓ рдХреЗ рдХрд░реНрдиреЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдЕрднреА рддрдХред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред

(рдЕрднреА рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдПрдХ рдЬреНрдЮрд╛рдд рд╕реЗрд╡рд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрд░реЛрдд рдЖрдИрдкреА + рдкреЛрд░реНрдЯ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рдУрд╡реАрдПрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ
рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдЬреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ; рдиреЛрдб рддрдм рд╣реЛрдЧрд╛
рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдЕрди-рдбреАрдПрдирдПрдЯреА, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдУрд╡реАрдПрд╕ рдореЗрдВ рдЙрдЫрд╛рд▓ рджреЗрдВ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ
рдХреНрд▓рд╛рдЗрдВрдЯ рдкреЙрдб рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╡рд╛рдкрд╕ рдбрд┐рд▓реАрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред)

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -158959014
.

рд╣рд╛рд▓рд╛рдБрдХрд┐ iptables/nftables рджреЛрдиреЛрдВ TCP рдФрд░ UDP рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ, рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ IPVS https://github.com/kubernetes/kubernetes/issues/17470 рдПрдХ рдмреЗрд╣рддрд░ рдлрд┐рдЯ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреЗ рд▓рд┐рдП рдЙрджреНрджреЗрд╢реНрдп-рдирд┐рд░реНрдорд┐рдд рд╣реИ (рдкрдврд╝реЗрдВ: k8s рдЯреАрдо рдХреЗ рд▓рд┐рдП рдХрдо рдЪрд▓ рд░рд╣реЗ рдкрд░рд┐рд╡рд░реНрддрди/рд░рдЦрд░рдЦрд╛рд╡), рд▓реЛрдб рд╕рдВрддреБрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдПрдХ рд╕рдореГрджреНрдз рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдирд┐рдХрдЯ-рд░реЗрдЦрд╛-рджрд░ рдЧрддрд┐ рдкрд░ рд╕реНрдерд┐рд░рддрд╛ рд╕рд╛рдмрд┐рдд рд╣реБрдИ рд╣реИ, рдПрдПрдордбреА рдореЗрдВ рдирд┐рдпрдореЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЛрд▓рдВрдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдп рднреА рддреИрдпрд╛рд░ рд╣реИрдВред

@thockin , рдЕрдиреНрдп, https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -150743158 рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВрдиреЗ рдПрдиреЛрдЯреЗрд╢рди рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдареАрдХ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд╛рд╣рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдЕрднреА рднреА рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдмреИрдареЗ рдРрдк рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ .

рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдпрд╛рдиреА рдмрд╛рд╣рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ? рдореЗрд░реЗ рд╕реЗрдЯрдЕрдк рдореЗрдВ, рдХреЛрдИ рдмрд╛рд╣рд░реА рдПрд▓рдмреА рдирд╣реАрдВ рд╣реИ, рд╕реЗрд╡рд╛ рдХреЛ рдиреЛрдбрдкреЛрд░реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрд░реЗ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рд╕рд╛рджрд╛ рдЯреАрд╕реАрдкреА (http/рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдирд╣реАрдВ) рдХрдиреЗрдХреНрд╢рди рдмрдирд╛ рд░рд╣рд╛ рд╣реИред

@ashishvyas рдЖрдк рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ?

рдореИрдВ v1.1.3 . рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдБ

https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -143280584 рдФрд░ https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -150743158 рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдирд╛рдо рдХреЗ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ net.beta.kubernetes.io/proxy-mode , net.experimental.kubernetes.io/proxy-mode рдирд╛рдордХ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

for node in $(kubectl get nodes -o name); do
  kubectl annotate $node net.experimental.kubernetes.io/proxy-mode=iptables;
done

рдЖрдкрдХреЛ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓реЙрдЧ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ 'рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдПрдиреЛрдЯреЗрд╢рди рдорд┐рд▓рд╛' рдФрд░ 'рдПрдиреЛрдЯреЗрд╢рди iptables рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ'

рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬрд╝ рдЬрд┐рд╕реЗ https://github.com/kubernetes/kubernetes/commit/da9a9a94d804c5bfdf3cc86ee76a2bc1a2742d16 рдиреЗ рдмрдирд╛рдпрд╛ рдерд╛ рд╡рд╣ 1.1.4 рдереА рдЗрд╕рд▓рд┐рдП net.beta.kubernetes.io/proxy-mode рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЖрдк рдЗрд╕рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реИрдВред

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдЦреЛ рджреЗрддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рдЖрддрд╛ рд╣реИ
рдПрдХ рдиреЛрдб рдкреЛрд░реНрдЯред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдмрд╣реБрдд рд╣реИ рдХрд┐ рдХреИрд╕реЗ
рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдареАрдХ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ
рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд░ (рдпрд╛ рдЕрдиреНрдп рддрд░реАрдХреЗ рдЬрд┐рд╕рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд┐рд╕реА рдиреЛрдб рдкрд░ рдЖрддрд╛ рд╣реИ, рдЬреИрд╕реЗ
рдбреАрдПрдирдПрд╕-рдЖрд░рдЖрд░ рдХреЗ рд░реВрдк рдореЗрдВ)

рдмреБрдз, 13 рдЬрдирд╡рд░реА 2016 рдХреЛ рд╕реБрдмрд╣ 10:25 рдмрдЬреЗ, рдорд╛рдЗрдХ рдбреИрдиреА рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

#3760 рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ (рдЯрд┐рдкреНрдкрдгреА)
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -143280584
рдФрд░ #3760 (рдЯрд┐рдкреНрдкрдгреА)
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -150743158
рд▓реЗрдХрд┐рди рдирд╛рдорд┐рдд рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп
net.beta.kubernetes.io/proxy-mode, рдирд╛рдо рдХреЗ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
net.experimental.kubernetes.io/proxy-modeред

$ рдореЗрдВ рдиреЛрдб рдХреЗ рд▓рд┐рдП (kubectl рдиреЛрдбреНрд╕ -o рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ); рдХрд░рдирд╛
kubectl рдПрдиреЛрдЯреЗрдЯ $node net.experimental.kubernetes.io/proxy-mode=iptables;
рдХрд┐рдпрд╛ рд╣реБрдЖ

рдЖрдкрдХреЛ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓реЙрдЧ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП
рдЬреИрд╕реЗ 'рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдПрдиреЛрдЯреЗрд╢рди рдорд┐рд▓рд╛' рдФрд░ 'рдПрдиреЛрдЯреЗрд╢рди iptables рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ'

рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬрд╝ рдЬреЛ da9a9a9
https://github.com/kubernetes/kubernetes/commit/da9a9a94d804c5bfdf3cc86ee76a2bc1a2742d16
1.1.4 рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдк рдЗрд╕рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реИрдВред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -171387997
.

@thockin , рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рдордХрд╛рдЬ рдЕрднреА рд╕рдВрднрд╡ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдореИрдВ рдЕрдкрдиреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рдХрджрдо рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ рдФрд░ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдорджрдж рдорд┐рд▓реЗрдЧреАред

рдирд╣реАрдВ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдиреАрдЪреЗ рдЖрддреА рд╣реИ
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдПрдХ рдЕрд▓рдЧ рдиреЛрдб рдкрд░ рдмреИрдХрдПрдВрдб рдЪреБрди рд╕рдХрддрд╛ рд╣реИред
рдореВрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ IP рдХреЗ рд╕рд╛рде рдЕрдЧреНрд░реЗрд╖рдг рдЯреНрд░реИрдлрд╝рд┐рдХ рдореЗрдВ рджреВрд╕рд░рд╛ рдиреЛрдб рд╣реЛрдЧрд╛
рд╕реАрдзреЗ рдЬрд╡рд╛рдм рджреЗрдВ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

"рдлрд┐рдХреНрд╕" _only_ рд╕реЗрд╡рд╛ рдПрд╕ рдХреЗ рд▓рд┐рдП рдЙрди рдиреЛрдбреНрд╕ рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рднреЗрдЬрдирд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рд╣реИ
S _and_ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо 1 рдмреИрдХрдПрдВрдб рдХрд┐рддрдиреЗ рдХреЗ рдЕрдиреБрдкрд╛рдд рдореЗрдВ рдЯреНрд░реИрдлрд╝рд┐рдХ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП
рдмреИрдХрдПрдВрдб рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рд╣реИред рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рддрдм рд╕реНрдерд╛рдиреАрдп рдмреИрдХрдПрдВрдб рдЪреБрди рд╕рдХрддрд╛ рд╣реИ
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗред

2 рдиреЛрдбреНрд╕ рдФрд░ 3 рдмреИрдХрдПрдВрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдПрдХ рдиреЛрдб рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ 2 . рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ
рдмреИрдХрдПрдВрдбред рдЬреЛ рднреА рдорд╛рд░реНрдЧ рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рдПрдХ рдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ 2x рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рднреЗрдЬрдирд╛ рд╣реИ
рджреВрд╕рд░реЗ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рд╣рдордиреЗ рдЕрднреА рддрдХ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ - рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ
рдХреНрд▓рд╛рдЙрдб рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд░ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рддрд░рд╣ рдХрд╛ рд╕рдЯреНрдЯрд╛ рд╣реИ рдФрд░
рдЗрд╕рд▓рд┐рдП рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЬреЛрдЦрд┐рдо рднрд░рд╛ рд╣реИред

рдмреБрдзрд╡рд╛рд░, 13 рдЬрдирд╡рд░реА, 2016 рджреЛрдкрд╣рд░ 12:17 рдмрдЬреЗ, рдЖрд╢реАрд╖ рд╡реНрдпрд╛рд╕ рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@thockin https://github.com/thockin , рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди
рдкрддрд╛ рдпрд╣ рдЕрднреА рд╕рдВрднрд╡ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдореИрдВ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ
рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдореЗрд░реЗ рдФрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рдХрджрдо рдорджрдж рдХрд░реЗрдВрдЧреЗред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -171420567
.

@mikedanese , рдореБрдЭреЗ gcr.io рдкрд░ 1.1.4 рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ:

$ sudo docker pull gcr.io/google_containers/ hyperkube:v1.1.4
рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдЦреАрдВрдЪрдирд╛ gcr.io/google_containers/hyperkube
рдЯреИрдЧ v1.1.4 рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА gcr.io/google_containers/hyperkube рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛
$ sudo docker pull gcr.io/google_containers/ hyperkube:v1.1.3
v1.1.3: google_containers/hyperkube . рд╕реЗ рдЦреАрдВрдЪрдирд╛
рдбрд╛рдЗрдЬреЗрд╕реНрдЯ: sha256:004dde049951a4004d99e12846e1fc7274fdc5855752d50288e3be4748778ca2
рд╕реНрдерд┐рддрд┐: gcr.io/google_containers/ hyperkube:v1.1.3 рдХреЗ рд▓рд┐рдП рдЪрд┐рддреНрд░ рдЕрдк рдЯреВ рдбреЗрдЯ рд╣реИ

@thockin рд▓рдВрдмреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдпрд╛рдЪрдирд╛, рдореИрдВ рдЙрди рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА рддрд╛рдХрд┐ рдЕрдиреНрдп рдЙрди рдЪреБрдиреМрддрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭ рд╕рдХреЗрдВ рдЬрд┐рдирдХрд╛ рд╣рдо рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдереЛрдбрд╝реА рд╕реА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓рд╛ рд╕реНрдорд╛рд░реНрдЯ рдбреАрдПрдирдПрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИ (рдпрд╛рдиреА рдЗрд╕реЗ рдпреВрдбреАрдкреА рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдкреНрд░рддрд┐ рдкреЙрдб рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 100k+ рдЕрдиреБрд░реЛрдз/рд╕реЗрдХрдВрдб рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ), рдФрд░ рдПрд╕рдПрдирдЖрдИ рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рд╣рд╛рдпрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрд┐рд╕реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЖрдИрдкреА тАЛтАЛрдПрдбреНрд░реЗрд╕ (рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╢реЛ рд╕реНрдЯреЙрдкрд░ рд╣реИ)ред рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкрджреНрдзрддрд┐ рдкрд░ рдорд╛рдирдХреАрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдФрд░ рд╣рдордиреЗ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдИрдкреАрд╡реАрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪреБрдирд╛ (рдкреНрд░рджрд░реНрд╢рди/рд╕реНрдерд┐рд░рддрд╛/рд▓рдЪреАрд▓рд╛рдкрди/рдЙрджреНрджреЗрд╢реНрдп рдПрд╕рдПрд▓рдмреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг) , рд▓реЗрдХрд┐рди рдЖрдк рд╢рд╛рдпрдж рдЗрдиреНрд╣реАрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд╛рде рдХреБрдЫ рд╣реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо vxlan (рддреЗрдЬрд╝, рдЖрд╕рд╛рди, рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрди рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ OVS рдХреЗ рд╕рд╛рде GRE/VXLAN рдХреЗ рд╕рд╛рде рдпрд╛ рдорд╛рдирдХ рд▓реЗрдпрд░ 2 рд╣реЛрд╕реНрдЯ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдХреЗ рд╣реЛрд╕реНрдЯ рд╕рднреА рдПрдХ рд╣реА L2 рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╣реИрдВ)ред

рд╣рдо рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдВрддрд┐рдо-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдПрдиреАрдХрд╛рд╕реНрдЯ рдФрд░ рдбреАрдПрдирдПрд╕ рдХреЗ рдорд┐рд╢реНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдлреЗрд▓рдУрд╡рд░ рдЧрддрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдпрд╛ рдЬреЛ рднреА рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рдиреЛрдбреНрд╕ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдПрдВрдб-рдпреВрдЬрд╝рд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рдХрд╛рдлреА рд╕рдорд╛рди рд╡рд┐рддрд░рдг рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдмрддрд╛рдпрд╛, рд╕рдорд╕реНрдпрд╛ рдкреЙрдб рд╕реНрдерд╛рди рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдкреЙрдбреНрд╕ рдореЗрдВ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рд╕рдорд╛рди рд╡рд┐рддрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реА рд╣реИред рджреВрд╕рд░рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛рдПрдВ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдВрддреБрд▓рд┐рдд рд╣реИрдВред

рд╣рдордиреЗ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдореЙрдбрд▓реЛрдВ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:

рд╣рдордиреЗ рдЬреЛ рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рдЖрдЬрдорд╛рдпрд╛ рд╡рд╣ рдерд╛ рд╡реАрдЖрдИрдкреА рдХреА 2 рдкрд░рддреЗрдВред рдмрд╛рд╣рд░реА рд╡реАрдЖрдИрдкреА (1 рдкреНрд░рддрд┐ рд╕реЗрд╡рд╛), рдЬреЛ рдиреЛрдбреНрд╕ рдореЗрдВ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдиреЛрдб рдкрд░ рдЙрд╕ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдкреЙрдб рдХрд╛рдЙрдВрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░), рдФрд░ рдлрд┐рд░ рдЖрдВрддрд░рд┐рдХ рд╡реАрдЖрдИрдкреА (рдЬреЛ рдкреЙрдбреНрд╕ рдХреЗ рд╕рд╛рде рдиреЛрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ), рдЬреЛ рдиреЛрдбреНрд╕ рдХреЗ рднреАрддрд░ рд▓реЛрдб рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЖрдорддреМрд░ рдкрд░) рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдлрд▓реА рдореЗрдВ)ред рдЗрд╕ рдореЙрдбрд▓ рдХреА рд╕реАрдорд╛ рдпрд╣ рдереА рдХрд┐ рдмрд╛рд╣рд░реА рд╡реАрдЖрдИрдкреА рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдХреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЗрдЯрд╡рд░реНрдХ рдиреЗрдорд╕реНрдкреЗрд╕ рдЪрд▓рд╛рдиреЗ рдпрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рднреМрддрд┐рдХ рдиреЛрдбреНрд╕ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдбреАрдПрд╕рдЖрд░ рдореЛрдб (рдбрд╛рдпрд░реЗрдХреНрдЯ рд╕рд░реНрд╡рд░ рд░рд┐рдЯрд░реНрди) рдореЛрдб рдореЗрдВ рдЖрдИрдкреАрд╡реАрдПрд╕ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд░рд┐рдЯрд░реНрди рдЯреНрд░реИрдлрд┐рдХ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдЯреНрд░реИрдлрд┐рдХ рдЬрд╛рддрд╛ рд╣реИ:

Consumer >> (over L3) >> External VIP node >> (1) >> Internal VIP node >> (2) >> Container >> (any which way you want) >> Consumer

(1) рдЖрдИрдкреАрд╡реАрдПрд╕ (рдбреАрдПрд╕рдЖрд░ рдореЛрдб рдореЗрдВ) рдПрдХ рдмрд╛рд╣рд░реА рд╡реАрдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдореЗрдЬрдмрд╛рди рдкрд░ рдПрдХ _node_ рдЪреБрдирддрд╛ рд╣реИ (рдЖрдИрдкреАрд╡реАрдПрд╕ рд╢рд░реНрддреЛрдВ рдореЗрдВ рдПрдХ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд░реНрд╡рд░"), рдФрд░ рдХреЗрд╡рд▓ рдкреИрдХреЗрдЯ рдХреЗ рдбреАрдПрд╕рдЯреА рдореИрдХ рдкрддреЗ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ (рдпрд╛рдиреА рдЖрдИрдкреА рдкреИрдХреЗрдЯ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЖрддрд╛ рд╣реИ k8s рдиреЛрдб)ред рдпрд╣ рдиреЛрдб рдкрд░ рдЙрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреЙрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдиреЛрдбреНрд╕ рдореЗрдВ рд╕рдВрддреБрд▓рди рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред
(2) рдЖрдИрдкреАрд╡реАрдПрд╕ (рдбреАрдПрд╕рдЖрд░ рдореЛрдб рдореЗрдВ рднреА) k8s рдиреЛрдб рд▓реЛрдб рдкрд░ рдкреЙрдбреНрд╕ рдореЗрдВ рдЯреНрд░реИрдлрд┐рдХ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ (рд╡реЗрде рд╕реЗ рдиреЛрдб рддрдХ)ред рдХрдВрдЯреЗрдирд░реЛрдВ (рдЯреАрд╕реАрдкреА рдФрд░ рдпреВрдбреАрдкреА) рд╕реЗ рдЙрддреНрддрд░ рд╕реАрдзреЗ рд╕реЗрд╡рд╛ рдХреЗ рдЙрдкрднреЛрдХреНрддрд╛ рдХреЗ рдкрд╛рд╕ рдЬрд╛рддреЗ рд╣реИрдВред

рдЗрд╕ рдореЙрдбрд▓ рдХрд╛ рдЙрд▓реНрдЯрд╛, рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рдирд╛ рдЖрд╕рд╛рди рдерд╛ рдФрд░ рдирд┐рдпрдо рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдерд╛ред рдЗрд╕ рдореЙрдбрд▓ рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╛рд╣рд░реА рд╡реАрдЖрдИрдкреА рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдиреЛрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдорд╛рд░реЗ рд╕рднреА рд╕реЗрд╡рд╛ рдЕрдиреБрд░реЛрдзреЛрдВ (рд▓реЗрдХрд┐рди рдЙрддреНрддрд░реЛрдВ рдХреЛ рдирд╣реАрдВ) рдХреЛ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ "рд╕рд╛рдЭрд╛-рдХреБрдЫ рдирд╣реАрдВ" рдкрд╕рдВрдж рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╕рдВрд╕реНрдХрд░рдг 2 рджрд░реНрдЬ рдХрд░реЗрдВ:

рджреВрд╕рд░рд╛ рдореЙрдбрд▓ рдЕрдм рдордиреЛрд░рдВрдЬрдХ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдХрд┐ рд╕реНрдорд╛рд░реНрдЯ рдЖрдИрдкреАрд╡реАрдПрд╕ рдФрд░ рдЖрдИрдкреАрдЯреЗрдмрд▓реНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╡реАрдЖрдИрдкреА рдХреА рдПрдХ рдкрд░рдд рд╣реИред

Consumer >> Any node/local node >> (1) >> Container >> (any which way you want) >> Consumer
рдпрд╛, рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдиреЛрдб рдкрд░ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
Consumer >> Any node/local node >> (1) >> Remote Node >> (2) >> Container >> (any which way you want) >> Consumer

(1) рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рд╛рдердорд┐рдХ рд╡реАрдЖрдИрдкреА рд╕реЗ рдЯрдХрд░рд╛рддрд╛ рд╣реИ, рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдореЗрдВ рд╕рдВрддреБрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред
(2) рдЯреНрд░реИрдлрд┐рдХ рд╕реЗрдХреЗрдВрдбрд░реА рд╡реАрдЖрдИрдкреА рд╕реЗ рдЯрдХрд░рд╛рддрд╛ рд╣реИ, рдЯреНрд░реИрдлрд┐рдХ рдХреЗрд╡рд▓ рд╕рднреА рд╕реНрдерд╛рдиреАрдп рдкреЙрдбреНрд╕ рдореЗрдВ рд╕рдВрддреБрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рджреНрд╡рд┐рддреАрдпрдХ рд╡реАрдЖрдИрдкреА рдХреЗрд╡рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЕрдиреНрдп рд╣реЛрд╕реНрдЯ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣ рдПрдХ FWMARK VIP рд╣реИ)ред рд╣рдо FWMARK=1234 рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдмрд╛рд╣рд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдирд┐рдпрдо рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд▓реВрдк рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред

рдкреНрд░рд╛рдердорд┐рдХ рд╡реАрдЖрдИрдкреА рдореЗрдВ рдкреЙрдбреНрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдкреЙрдбреНрд╕ рдФрд░ рд░рд┐рдореЛрдЯ рд╣реЛрд╕реНрдЯ рдХреА рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ (рд╡рдЬрди рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд╛рдиреАрдп рдкреЙрдб рдХреЗ рд▓рд┐рдП 100 рдФрд░ рд░рд┐рдореЛрдЯ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП 100 * рдкреЙрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде)ред рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдиреЛрдбрдП рдкрд░ 3 рдкреЙрдб рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдиреЛрдбрдмреА рдкрд░ рджреЛ рдкреЙрдб рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдиреЛрдбрдП рдкрд░ рдирд┐рдпрдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP service.ip.address:0 rr persistent 360
-> pod1.on.nodeA.ip:80 Route 100 0 0
-> pod2.on.nodeA.ip:80 Route 100 0 0
-> pod2.on.nodeA.ip:80 Route 100 0 0
-> interfaceip.of.nodeB:80 Route 200 0 0
FWM 1234 rr
-> pod1.on.nodeA.ip:80 Route 100 0 0
-> pod2.on.nodeA.ip:80 Route 100 0 0
-> pod3.on.nodeA.ip:80 Route 100 0 0

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдиреЛрдбрдмреА рдкрд░, рдЖрдИрдкреАрд╡реАрдПрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рд╕реНрдерд╛рдиреАрдп рдкреЙрдб рд╣реИрдВ, рдФрд░ рдиреЛрдбрдП рдкрд░ рддреАрди рд░рд┐рдореЛрдЯ рдкреЙрдб рд╣реИрдВ:

Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP service.ip.address:0 rr persistent 360
-> pod1.on.nodeB.ip:80 Route 100 0 0
-> pod2.on.nodeB.ip:80 Route 100 0 0
-> interfaceip.of.nodeA:80 Route 300 0 0
FWM 1234 rr
-> pod1.on.nodeB.ip:80 Route 100 0 0
-> pod2.on.nodeB.ip:80 Route 100 0 0

рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ FWMARK рдХреЛ рдЗрдзрд░-рдЙрдзрд░ рдХрд░реЗрдВ, рдФрд░ iptables рдХрд╛ рдЙрдкрдпреЛрдЧ FWMARK рдореЗрдВ veth+ рдЗрдВрдЯрд░рдлреЗрд╕ (рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдореИрдЪ) рдореЗрдВ рдХреБрдЫ рднреА рдХрд░реЗрдВ рдФрд░ FWMARK рдореИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рдХреЛрдИ NAT рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЬрдм рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ SVC_XXX_YYY IP рдХреЛ рд▓реВрдкрдмреИрдХ рдпрд╛ рдбрдореА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╕рдВрднрд╡рддрдГ IPVS VIP рдХреЛ рднреА DNAT рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдпрд╣ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рд╕рдмрд╕реЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рд╣реИ, рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг/рд░реВрдЯрд┐рдВрдЧ рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИред рдЖрдИрдкреАрд╡реАрдПрд╕ рдирд┐рдпрдо рдмрдирд╛рддреЗ рд╕рдордп рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдорд╛рд░реНрдЯ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рд╣рдо рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ (рдЧреЛрд▓рдВрдЧ) рдбреЗрдореЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ k8s рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдордп рд╣реЛ рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рд░реБрдЪрд┐ рд╣реЛред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рджреЗрд░ рд╕реЗ рдбреБрдмрдХреА рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рд╢рд╛рдпрдж рдкреВрд░реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ: рдЕрдЧрд░ рдореБрдЭреЗ рдКрдкрд░ @qoke рдХреА рдкреЛрд╕реНрдЯ рд╕рдордЭ рдореЗрдВ рдЖ

@lxpollitt рд╕рд╣реА,

рдореЗрд░реА рддрд░рдл, рдореЗрд░реЗ рдХрдВрдЯреЗрдирд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд▓рд╛рд▓реИрди (vxlan рдореЛрдб рдореЗрдВ) рдХреЗ рд╕рд╛рде, рдореИрдВ рдЕрдкрдиреЗ рд░реВрдЯрд┐рдВрдЧ рдиреЛрдбреНрд╕ рдкрд░ рдПрдХ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА (iptables рдореЛрдб рдореЗрдВ рдФрд░ рдорд╛рд╕реНрдХрд░реЗрдбрд┐рдВрдЧ рдирд╣реАрдВ) + рдлрд▓рд╛рд▓реИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдмрд╛рд╣рд░реА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ IPs рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП DNATed рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рд╕рдХреНрд░рд┐рдп/рд╕рдХреНрд░рд┐рдп рд░рд╛рдЙрдЯрд░ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реЗрдЯрдЕрдк рдореБрдЭреЗ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ "рд╕рдмрд╕реЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ" рдирд╣реАрдВ рд╣реИред

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд╛рд╣рд░ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рдЧреНрд░рд╛рд╣рдХ iptables-рдирд┐рдпрдо рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд┐рддрд┐ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЪрд▓ рд░рд╣реЗ рд╣реЛрд╕реНрдЯ рдХреЗ рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП DNAT VIP рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдпрд╣ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рдореЛрдб рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕реЗ... рдареАрдХ рд╣реИ.. рдореИрдВ рдирд╛рдореЛрдВ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реВрдВ... --proxy-mode=iptables-to-node-pods-onlyред

рд╡рд┐рд╕реНрддреГрдд рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдЦрд░реНрдЪ рдХрд┐рдпрд╛
рдЖрдЬ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рдордп рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЖрдкрдиреЗ
рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрдереЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
GCE рдЬреИрд╕реЗ рдХреНрд▓рд╛рдЙрдб рд░реВрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг IPVS рдЧреЗрдЯрд╡реЗрд┐рдВрдЧ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдиреЗрдЯрд╡рд░реНрдХред рднрд▓реЗ рд╣реА рдЧреЗрдЯрд╡реЗрд┐рдВрдЧ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реЛ, рдпрд╣ рдкреЛрд░реНрдЯ рд░реАрдореИрдкрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ,
рдЬреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ == рд▓рдХреНрд╖реНрдп
рдмрдВрджрд░рдЧрд╛рд╣ред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдореВрд▓ рдХреЗ рд╕рд╛рде рдЪреБрдиреМрддреА рдЕрдкрдиреЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдвреВрдВрдв рд░рд╣реА рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реНрдерд┐рддрд┐ рдХреА рддрд░рд╣ рдпрд╛ рдЕрдкрдиреЗ рд░рд╛рд╕реНрддреЗ рд╕реЗ рд╣рдЯрдиреЗ рдФрд░ рдЖрдкрдХреЛ рд╕рд╢рдХреНрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП
рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╕реЗрдЯ рдХрд░реЗрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо ipvs рдПрдирдХреИрдк рдореЛрдб рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░ рд╕рдХреЗрдВ,
рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХреЗ рдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред

рдЧреБрд░реБ, рдкрд░ 3:37 рдорд╣рд┐рд▓рд╛ 14 рдЬрдирд╡рд░реА, 2016 рдкрд░ qoke [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

@thockin https://github.com/thockin рд▓рдВрдмреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдпрд╛рдЪрдирд╛, рдореИрдВ
рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рд╣рдордиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рдЕрдиреНрдп рдХрд░ рд╕рдХреЗрдВ
рд╣рдо рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдЪреБрдиреМрддрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭреЗрдВред

рдереЛрдбрд╝реА рд╕реА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд╣реБрдд рд╣реА рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╣реИ
рд╕реНрдорд╛рд░реНрдЯ рдбреАрдПрдирдПрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо (рдпрд╛рдиреА рдЗрд╕реЗ рдпреВрдбреАрдкреА рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдХрдо рд╕реЗ рдХрдо 100k+ . рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ)
рдЕрдиреБрд░реЛрдз/рд╕реЗрдХрдВрдб рдкреНрд░рддрд┐ рдкреЙрдб), рдФрд░ рдПрд╕рдПрдирдЖрдИ рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рд╣рд╛рдпрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ
рдЬрд┐рд╕реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдИрдкреА рдкрддрд╛ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ (рдпрд╣ рдПрдХ рд╢реЛ рд╕реНрдЯреЙрдкрд░ рд╣реИ
рд╣рдо)ред рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ
рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкрджреНрдзрддрд┐ рдкрд░ рдорд╛рдирдХреАрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛
рд╕рднреА, рдФрд░ рд╣рдордиреЗ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдИрдкреАрд╡реАрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪреБрдирд╛
(рдкреНрд░рджрд░реНрд╢рди/рд╕реНрдерд┐рд░рддрд╛/рд▓рдЪреАрд▓рд╛рдкрди/рдЙрджреНрджреЗрд╢реНрдп SLB рдХрд╛ рдирд┐рд░реНрдорд╛рдг), рд▓реЗрдХрд┐рди рдЖрдк рдХрд░ рд╕рдХрддреЗ рдереЗ
рд╢рд╛рдпрдж рдЗрдиреНрд╣реАрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд╛рде рдХреБрдЫ рд╣реИрдХ рдХрд░реЗрдВ
рдмрд╣реБрддред рд╣рдо vxlan рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рддреЗрдЬрд╝, рдЖрд╕рд╛рди, рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рд▓реЗрдХрд┐рди рдпреЗ рджреЛрдиреЛрдВ
рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ GRE/VXLAN рдХреЗ рд╕рд╛рде OVS рдпрд╛ рдорд╛рдирдХ рдкрд░рдд 2 рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рд╣реЛрд╕реНрдЯ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рднреА (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдХреЗ рд╣реЛрд╕реНрдЯ рд╕рднреА рдПрдХ рд╣реА L2 рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╣реИрдВ)ред

рд╣рдо рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдВрддрд┐рдо-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд┐рд╢реНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░
DNS, рдлрд╝реЗрд▓рдУрд╡рд░ рдЧрддрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдЬреЛ рднреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реЗрд╡рд╛, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛ рд╡рд┐рддрд░рдг рдХрд╛рдлреА рд╕рдорд╛рди рд╣реИ
рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╣рдорд╛рд░реЗ рдиреЛрдбреНрд╕ рдореЗрдВ рдЖ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдмрддрд╛рдпрд╛,
рдлрд┐рд░ рдкреЙрдбреНрд╕ рдореЗрдВ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рд╕рдорд╛рди рд╡рд┐рддрд░рдг рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЪрд╛рд╣реЗ рдХреБрдЫ рднреА рд╣реЛ
рдлрд▓реА рд╕реНрдерд╛рдиред рджреВрд╕рд░рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛рдПрдВ рджреВрд╕рд░реЛрдВ рд╕реЗ рдмрд╛рдд рдХрд░ рд░рд╣реА рд╣реЛрдВ
рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдВрддреБрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдордиреЗ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдореЙрдбрд▓реЛрдВ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:

рд╣рдордиреЗ рдЬреЛ рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рдЖрдЬрдорд╛рдпрд╛ рд╡рд╣ рдерд╛ рд╡реАрдЖрдИрдкреА рдХреА 2 рдкрд░рддреЗрдВред рдмрд╛рд╣рд░реА рд╡реАрдЖрдИрдкреА (1 рдкреНрд░рддрд┐ .)
service), рдЬреЛ рдиреЛрдбреНрд╕ рдореЗрдВ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдкреЙрдб рдХрд╛рдЙрдВрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░
рдиреЛрдб рдкрд░ рд╡рд╣ рд╕реЗрд╡рд╛), рдФрд░ рдлрд┐рд░ рдЖрдВрддрд░рд┐рдХ рд╡реАрдЖрдИрдкреА (рдЬреЛ рдиреЛрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ)
рдкреЙрдбреНрд╕ рдХреЗ рд╕рд╛рде), рдЬреЛ рдиреЛрдбреНрд╕ рдХреЗ рднреАрддрд░ рд▓реЛрдб рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЖрдорддреМрд░ рдкрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ
рдкреЙрдбреНрд╕ рдХреЗ рдкрд╛рд░)ред рдЗрд╕ рдореЙрдбрд▓ рдХреА рд╕реАрдорд╛ рдпрд╣ рдереА рдХрд┐ рдиреЛрдбреНрд╕ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдереЗ
рд╡реАрдЖрдИрдкреА рдХреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЗрдЯрд╡рд░реНрдХ рдиреЗрдорд╕реНрдкреЗрд╕ рдЪрд▓рд╛рдиреЗ рдпрд╛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рднреМрддрд┐рдХ рдиреЛрдбреНрд╕ред рдбреАрдПрд╕рдЖрд░ рдореЛрдб рдореЗрдВ рдЖрдИрдкреАрд╡реАрдПрд╕ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рдмрд╛рдд (рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рд░реНрд╡рд░ рд╡рд╛рдкрд╕реА)
рдореЛрдб рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╡рд╛рдкрд╕реА рдпрд╛рддрд╛рдпрд╛рдд рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╛рддрд╛рдпрд╛рдд рдЬрд╛рддрд╛ рд╣реИ:

рдЙрдкрднреЛрдХреНрддрд╛ >> (L3 рд╕реЗ рдЕрдзрд┐рдХ) >> рдмрд╛рд╣рд░реА рд╡реАрдЖрдИрдкреА рдиреЛрдб >> (1) >> рдЖрдВрддрд░рд┐рдХ рд╡реАрдЖрдИрдкреА рдиреЛрдб >>
(2) >> рдХрдВрдЯреЗрдирд░ >> (рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ) >> рдЙрдкрднреЛрдХреНрддрд╛

(1) рдЖрдИрдкреАрд╡реАрдПрд╕ (рдбреАрдПрд╕рдЖрд░ рдореЛрдб рдореЗрдВ) рдПрдХ рдмрд╛рд╣рд░реА рд╡реАрдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдореЗрдЬрдмрд╛рди рдкрд░ рдПрдХ _node_ to . рдЪреБрдирддрд╛ рд╣реИ
(рдЖрдИрдкреАрд╡реАрдПрд╕ рд╢рд░реНрддреЛрдВ рдореЗрдВ рдПрдХ "рдЕрд╕рд▓реА рд╕рд░реНрд╡рд░") рдХреЛ рдЯреНрд░реИрдлрд╝рд┐рдХ рднреЗрдЬреЗрдВ, рдФрд░ рдХреЗрд╡рд▓ рдбреАрдПрд╕рдЯреА рдореИрдХ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ
рдкреИрдХреЗрдЯ рдХрд╛ рдкрддрд╛ (рдпрд╛рдиреА рдЖрдИрдкреА рдкреИрдХреЗрдЯ k8s рдиреЛрдб рдкрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЖрддрд╛ рд╣реИ)ред рдпрд╣ рд▓реЛрдб
рдЙрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреЙрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдиреЛрдбреНрд╕ рдореЗрдВ рд╕рдВрддреБрд▓рди
рдиреЛрдб.
(2) k8s рдиреЛрдб рд▓реЛрдб рдкрд░ IPVS (DSR рдореЛрдб рдореЗрдВ рднреА) рдЯреНрд░реИрдлрд┐рдХ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ
рдкреЙрдбреНрд╕ (рд╡реЗрде рд╕реЗ рдиреЛрдб рддрдХ)ред рдХрдВрдЯреЗрдирд░реЛрдВ рд╕реЗ рдЙрддреНрддрд░ (рдЯреАрд╕реАрдкреА рдФрд░ рдпреВрдбреАрдкреА) рдЬрд╛рдУ
рд╕реАрдзреЗ рд╕реЗрд╡рд╛ рдХреЗ рдЙрдкрднреЛрдХреНрддрд╛ рдХреЛ рд╡рд╛рдкрд╕ред

рдЗрд╕ рдореЙрдбрд▓ рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╕рд╛рди рдерд╛ рдФрд░ рдХреНрдпрд╛
рдирд┐рдпрдо рд╕реЗрдЯ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдерд╛ред рдЗрд╕ рдореЙрдбрд▓ рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣
рд╣рдорд╛рд░реЗ рд╕рднреА рд╕реЗрд╡рд╛ рдЕрдиреБрд░реЛрдзреЛрдВ (рд▓реЗрдХрд┐рди рдЙрддреНрддрд░реЛрдВ рдХреЛ рдирд╣реАрдВ) рдХреЛ a . рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ
рдмрд╛рд╣рд░реА рд╡реАрдЖрдИрдкреА рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ред рд╣рдореЗрдВ "рд╕рд╛рдЭрд╛-рдХреБрдЫ рдирд╣реАрдВ" рдкрд╕рдВрдж рд╣реИ, рдЗрд╕рд▓рд┐рдП,
рд╕рдВрд╕реНрдХрд░рдг 2 рджрд░реНрдЬ рдХрд░реЗрдВ:

рджреВрд╕рд░рд╛ рдореЙрдбрд▓ рдЕрдм рдордиреЛрд░рдВрдЬрди рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реАрдЖрдИрдкреА рдХреА рдПрдХ рдкрд░рдд рд╣реИ
рд╕реНрдорд╛рд░реНрдЯ IPVS рдФрд░ iptables рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред

рдЙрдкрднреЛрдХреНрддрд╛ >> рдХреЛрдИ рднреА рдиреЛрдб/рд╕реНрдерд╛рдиреАрдп рдиреЛрдб >> (1) >> рдХрдВрдЯреЗрдирд░ >> (рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЖрдк
рдЪрд╛рд╣рддреЗ рд╣реИрдВ) >> рдЙрдкрднреЛрдХреНрддрд╛
рдпрд╛, рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдиреЛрдб рдкрд░ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдЙрдкрднреЛрдХреНрддрд╛ >> рдХреЛрдИ рдиреЛрдб/рд╕реНрдерд╛рдиреАрдп рдиреЛрдб >> (1) >> рд░рд┐рдореЛрдЯ рдиреЛрдб >> (2) >> рдХрдВрдЯреЗрдирд░

(рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ) >> рдЙрдкрднреЛрдХреНрддрд╛

(1) рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рд╛рдердорд┐рдХ рд╡реАрдЖрдИрдкреА рд╕реЗ рдЯрдХрд░рд╛рддрд╛ рд╣реИ, рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕рднреА рдкреЙрдбреНрд╕ рдореЗрдВ рд╕рдВрддреБрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ
рдХреНрд▓рд╕реНрдЯрд░ред
(2) рдЯреНрд░реИрдлрд┐рдХ рд╕реЗрдХреЗрдВрдбрд░реА рд╡реАрдЖрдИрдкреА рд╕реЗ рдЯрдХрд░рд╛рддрд╛ рд╣реИ, рдЯреНрд░реИрдлрд┐рдХ рдХреЗрд╡рд▓ рд╕рднреА рдореЗрдВ рд╕рдВрддреБрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ
рд╕реНрдерд╛рдиреАрдп рдлрд▓реАред рдпрд╣ рджреНрд╡рд┐рддреАрдпрдХ рд╡реАрдЖрдИрдкреА рдХреЗрд╡рд▓ рдпрд╣рд╛рдВ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЕрдиреНрдп рд╣реЛрд╕реНрдЯ (рдЗрд╕рдХрд╛ рдПрдХ FWMARK VIP)ред рд╣рдо рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ
FWMARK=1234 рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рдмрд╛рд╣рд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдФрд░ рдЬреЛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИ
рдПрдХ рдЕрд▓рдЧ рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП, рдЬреЛ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд▓реВрдк рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред

рдкреНрд░рд╛рдердорд┐рдХ рд╡реАрдЖрдИрдкреА рдореЗрдВ рдкреЙрдбреНрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдкреЙрдбреНрд╕ рдФрд░ рд░рд┐рдореЛрдЯ рд╣реЛрд╕реНрдЯ рдХреА рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ (рд╕рд╛рде .)
рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд╛рдиреАрдп рдкреЙрдб рдХреЗ рд▓рд┐рдП рд╡рдЬрди 100 рд╣реИ, рдФрд░ 100 * рдкреЙрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛
рд░рд┐рдореЛрдЯ рдиреЛрдбреНрд╕)ред рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ 3 рдкреЙрдб рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдиреЛрдбрдП рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдФрд░
рдиреЛрдбрдмреА рдкрд░ рджреЛ рдкреЙрдб рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдиреЛрдбрдП рдкрд░ рдирд┐рдпрдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛
рдпрд╣:

рд╡рд┐рд░реЛрдз рд╕реНрдерд╛рдиреАрдп рдкрддрд╛: рдкреЛрд░реНрдЯ рдЕрдиреБрд╕реВрдЪрдХ рдзреНрд╡рдЬ
-> рд░рд┐рдореЛрдЯрдПрдбреНрд░реЗрд╕: тАЛтАЛрдкреЛрд░реНрдЯ рдлреЙрд░рд╡рд░реНрдб рд╡реЗрдЯ рдПрдХреНрдЯрд┐рд╡рдХреЙрди рдЗрдирдПрдХреНрдЯрдХреЙрди
TCP service.ip.address:0 rr рд▓рдЧрд╛рддрд╛рд░ 360
-> pod1.on.nodeA.ip:80 рд░реВрдЯ 100 0 0
-> pod2.on.nodeA.ip:80 рд░реВрдЯ 100 0 0
-> pod2.on.nodeA.ip:80 рд░реВрдЯ 100 0 0
-> interfaceip.of.nodeB:80 рд░реВрдЯ 200 0 0
рдПрдлрдбрдмреНрд▓реНрдпреВрдПрдо 1234 рдЖрд░рдЖрд░
-> pod1.on.nodeA.ip:80 рд░реВрдЯ 100 0 0
-> pod2.on.nodeA.ip:80 рд░реВрдЯ 100 0 0
-> pod3.on.nodeA.ip:80 рд░реВрдЯ 100 0 0

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдиреЛрдбрдмреА рдкрд░, рдЖрдИрдкреАрд╡реАрдПрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣
рдиреЛрдбрдП рдкрд░ рдХреЗрд╡рд▓ рджреЛ рд╕реНрдерд╛рдиреАрдп рдкреЙрдб рдФрд░ рддреАрди рд░рд┐рдореЛрдЯ рдкреЙрдб рд╣реИрдВ:

рд╡рд┐рд░реЛрдз рд╕реНрдерд╛рдиреАрдп рдкрддрд╛: рдкреЛрд░реНрдЯ рдЕрдиреБрд╕реВрдЪрдХ рдзреНрд╡рдЬ
-> рд░рд┐рдореЛрдЯрдПрдбреНрд░реЗрд╕: тАЛтАЛрдкреЛрд░реНрдЯ рдлреЙрд░рд╡рд░реНрдб рд╡реЗрдЯ рдПрдХреНрдЯрд┐рд╡рдХреЙрди рдЗрдирдПрдХреНрдЯрдХреЙрди
TCP service.ip.address:0 rr рд▓рдЧрд╛рддрд╛рд░ 360
-> pod1.on.nodeB.ip:80 рд░реВрдЯ 100 0 0
-> pod2.on.nodeB.ip:80 рд░реВрдЯ 100 0 0
-> interfaceip.of.nodeA:80 рд░реВрдЯ 300 0 0
рдПрдлрдбрдмреНрд▓реНрдпреВрдПрдо 1234 рдЖрд░рдЖрд░
-> pod1.on.nodeB.ip:80 рд░реВрдЯ 100 0 0
-> pod2.on.nodeB.ip:80 рд░реВрдЯ 100 0 0

рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ FWMARKs рдХреЛ рдЗрдзрд░-рдЙрдзрд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП
veth+ рдЗрдВрдЯрд░рдлреЗрд╕ (рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдореИрдЪ) рдореЗрдВ FWMARK рдХреБрдЫ рднреА рдФрд░ FWMARK
рдореИрдЪ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рд╕рдмрд╕реЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рд╣реИ, рдЬрд┐рд╕реЗ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг/рд░реВрдЯрд┐рдВрдЧ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕реНрдХреЗрд▓ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реЛред рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдХреБрдЫ рд╣реИ
IPVS рдирд┐рдпрдо рдмрдирд╛рддреЗ рд╕рдордп рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдорд╛рд░реНрдЯред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -171619663
.

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ iptables-to-node-pods-only рдореЛрдб рдХреЛ рдЖрдЬрдорд╛рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛,
рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рддрд░рдВрдЧ рд╣реИред рдЕрд╕рдВрддреБрд▓рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ рдФрд░
рдХрдо рд╕реЗ рдХрдо рд╕реЗрд╡рд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреИрд╕реЗ рдХрд░реЗрдВ
рдмрд╛рд╣рд░реА рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд░ред

рдЧреБрд░реБ, рдЬрдирд╡рд░реА 14, 2016 рдЕрдкрд░рд╛рд╣реНрди 3:59 рдмрдЬреЗ, рдорд┐рдХрд╛рдПрд▓ рдХреНрд▓реВрд╕реЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдореЗрд░реА рдУрд░ рд╕реЗ, рдореЗрд░реЗ рдХрдВрдЯреЗрдирд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд▓рд╛рд▓реИрди (vxlan рдореЛрдб рдореЗрдВ) рдХреЗ рд╕рд╛рде, I
рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА (iptables рдореЛрдб рдореЗрдВ рдФрд░ рдмрд╣рд╛рдирд╛ рдирд╣реАрдВ) + рдлрд▓рд╛рд▓реИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдореЗрд░реЗ рд░реВрдЯрд┐рдВрдЧ рдиреЛрдбреНрд╕ рдкрд░ рдиреЗрдорд╕реНрдкреЗрд╕ред рдмрд╛рд╣рд░реА рдЕрдиреБрд░реЛрдз рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП DNATed рд╣реИрдВ
рдЖрдИрдкреА тАЛтАЛрдФрд░ рдлрд┐рд░ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рдирд╣реАрдВ рдХрд┐рдпрд╛
рд╕рдХреНрд░рд┐рдп/рд╕рдХреНрд░рд┐рдп рд░рд╛рдЙрдЯрд░ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реЗрдЯрдЕрдк рдореБрдЭреЗ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдмрд╛рд╣рд░реА рдЖрдИ.рдкреА. рдореИрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ "рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ" рдирд╣реАрдВ рд╣реИ
рдкреНрд░рддреНрдпрдХреНрд╖ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ"ред

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдЧрд░ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди
рдЖрдкрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рддрдереНрдп рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд╛рд╣рд░ рд╣реИ, рдХреНрдпрд╛ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдХреЛрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛
iptables-рдирд┐рдпрдо рдкреНрд░рдмрдВрдзрдХ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд┐рддрд┐ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ
рдбреАрдПрдирдПрдЯреА рд╡реАрдЖрдИрдкреА рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдХреЗрд╡рд▓ рд░рдирд┐рдВрдЧ рд╣реЛрд╕реНрдЯ рдХреЗ рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП? рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рднреА рдПрдХ рдореЛрдб рд╣реЛ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреИрд╕реЗ... рдареАрдХ рд╣реИ .. рдореИрдВ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реВрдБ
рдирд╛рдо... --proxy-mode=iptables-to-node-pods-only.

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -171821603
.

@thockin рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 2 рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдПрдХ рд╣реА рдиреЛрдб рдкрд░ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ "рдмрд╛рд╣рд░реА рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдФрд░ рдмрд╛рд╣рд░реА рдПрд▓рдмреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╢рд╛рдпрдж "рд╕рд┐рдВрдЧрд▓ рдорд╛рд╕реНрдЯрд░" рдореЛрдб рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдореЛрдб "iptables-to-node-pods-only" рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдХреЗрд╡рд▓ 2 рдЪрд░рдгреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХрд▓ рдРрд╕рд╛ рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ: рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ "рдЖрдИрдкреАрдЯреЗрдмрд▓реНрд╕-рдЯреВ-рдиреЛрдб-рдкреЙрдбреНрд╕-рдУрдирд▓реА" рдореЛрдб, рд╕рд╛рде рд╣реА рдПрдХ рдХреЙрдиреНрдЯреНрд░рд┐рдм/рдЖрдИрдкреА-рд░реВрдЯ-рдПрд▓реНрдм рдЬреЛ рдкреНрд░рддрд┐ рд╕реЗрд╡рд╛ рдПрдХ рд░реВрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд▓рд┐рдирдХреНрд╕ рд░реВрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рдмрдирд╛рдП рд░рдЦреЗрдЧрд╛ , рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдХреЗ рдХрд┐рддрдиреЗ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╡рдЬрди рдХреЗ рд╕рд╛рдеред

@thockin рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ 2 рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдиреЛрдб рдкрд░ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдорд╛рдорд▓реЗ рдХреЛ "рдХрд╛рд░реНрдпрдХреНрд░рдо" рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ
рдмрд╛рд╣рд░реА рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд░" рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдФрд░ рдПрдХ рдмрд╛рд╣рд░реА рдПрд▓рдмреА рд╣реИ
рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╢рд╛рдпрдж "рд╕рд┐рдВрдЧрд▓ рдорд╛рд╕реНрдЯрд░" рдореЛрдб рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдореЛрдб "iptables-to-node-
рдкреЙрдбреНрд╕-рдУрдирд▓реА" 2 рдЪрд░рдгреЛрдВ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред

"рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА" рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЪрд░рдг 2 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪрд░рдг 1
рдХреЗрд╡рд▓ рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП 1 рдпрд╛ рдЕрдзрд┐рдХ рдмреИрдХрдПрдВрдб рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдПред рд╡рд╣ рдХрджрдо
рдЕрдХреЗрд▓рд╛ рд╕рдВрднрд╡рддрдГ рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдВрддрддрдГ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ,
рд╡реИрд╕реЗ рднреАред

рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдиреЛрдб-рдкреЛрд░реНрдЯ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдкрд╕рдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдмреИрдХрдПрдВрдб, рд▓реЗрдХрд┐рди рдЗрд╕ рдХрджрдо рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд╛рд╡рдзрд╛рдиреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╕реЛрдЪрд╛.. рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм _рд╣рдореЗрд╢рд╛_ (рдпрд╛рдиреА рдХрднреА рднреА рд░рд┐рдореЛрдЯ рди рдЪреБрдиреЗрдВ .)
рдмреИрдХрдПрдВрдб рдпрджрд┐ рдХреЛрдИ рд╕реНрдерд╛рдиреАрдп рдЙрдкрд▓рдмреНрдз рд╣реИ) рдпрд╛ рд╕рдВрднрд╛рд╡реНрдп? рдХреНрдпрд╛ рд╣рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдХрд┐ рдПрдХ рд╣реА рдиреЛрдб рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ (рд╡рд┐рднрд┐рдиреНрди рдиреЛрдбреНрд╕ рдмрд╣реБрдд рдорд┐рд▓реЗрдВрдЧреЗ
рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░) рдпрд╛ рдХреНрдпрд╛ рд╣рдо рдПрдХ рдЕрд▓рдЧ рдкреЛрд░реНрдЯ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЕрдЧрд░ рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ рдЗрд╕ рдиреЛрдб рдореЗрдВ 1 рдпрд╛ рдЕрдзрд┐рдХ рдмреИрдХрдПрдВрдб рд╣реИрдВ? рд╣рдо рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ
рдЕрд╕рдВрддреБрд▓рди рдХреА рд╕рдорд╕реНрдпрд╛?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХрд▓ рдХреА рддрд░рд╣ рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ: рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ "iptables-to-node-pods-only" рдореЛрдб,
рд╕рд╛рде рд╣реА рдПрдХ contrib/ip-route-elb рдЬреЛ рд╕рд╣реА рд╡рдЬрди рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐ рд╕реЗрд╡рд╛ рдПрдХ рдорд╛рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд▓рд┐рдирдХреНрд╕ рд░реВрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рдмрдирд╛рдП рд░рдЦреЗрдЧрд╛
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдХреЗ рдХрд┐рддрдиреЗ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣реИрдВ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдПред

рдЕрдЧрд░ рдИрдПрд▓рдмреА рд╡рдЬрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛
рдЬреАрд╕реАрдИ, рдЬреЛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рд╣реИ
рд╡рдЬрдиред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдпреЛрдЧрджрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ - рдпрд╣ рдПрдХ рд╕реБрдВрджрд░ рд╣реИ
рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдореМрд▓рд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ред

01/16/2016 05:19 AM рдкрд░, рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

"рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА" рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЪрд░рдг 2 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪрд░рдг 1
рдХреЗрд╡рд▓ рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП 1 рдпрд╛ рдЕрдзрд┐рдХ рдмреИрдХрдПрдВрдб рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдПред рд╡рд╣ рдХрджрдо
рдЕрдХреЗрд▓рд╛ рд╕рдВрднрд╡рддрдГ рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдВрддрддрдГ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ,
рд╡реИрд╕реЗ рднреАред

рдпрд╣ рд╕рдордЭ рдЖрддрд╛ рд╣реИред

рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, [...]

рддреЛ рдЪрд▓рд┐рдП рджреЗрдЦрддреЗ рд╣реИрдВ рдПрдХ рдмрд╛рд░ рдпрд╣ рд╣реЛ рдЧрдпрд╛ :-)

рдЕрдЧрд░ рдИрдПрд▓рдмреА рд╡рдЬрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛
рдЬреАрд╕реАрдИ, рдЬреЛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рд╣реИ
рд╡рдЬрдиред

рдЪреВрдВрдХрд┐ рдпрд╣ рдореИрдиреБрдЕрд▓ рд╕реЗ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╢рд╛рдпрдж 10x my . рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ
рдЗрд╕ рддрд░рд╣ рдХреА рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдореЗрдВ рдЕрдиреБрднрд╡, рдореБрдЭреЗ рдПрдХ рдХреИрдЪ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрди рдЖрдИрдкреА-рд░реВрдЯ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ:

           nexthop NEXTHOP
                  the nexthop of a multipath route.  NEXTHOP is a 

рд╢реАрд░реНрд╖ рд╕реНрддрд░ рддрд░реНрдХ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЬрдЯрд┐рд▓ рдорд╛рди:

                          via [ FAMILY ] ADDRESS - is the nexthop 

рд░рд╛рдЙрдЯрд░ред

                          dev NAME - is the output device.

                          weight NUMBER - is a weight for this 

рдПрдХ рдмрд╣реБрдкрде рдорд╛рд░реНрдЧ рдХрд╛ рддрддреНрд╡ рдЬреЛ рдЙрд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдмреИрдВрдбрд╡рд┐рдбреНрде рдпрд╛ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдпреЛрдЧрджрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ - рдпрд╣ рдПрдХ рд╕реБрдВрджрд░ рд╣реИ
рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдореМрд▓рд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ред

рдЪреВрдВрдХрд┐ "рдИ" рдХрд╛ рдЕрд░реНрде "рдмрд╛рд╣рд░реА" рд╣реИ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ,
рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╢реБрдХреНрд░, рдЬрдирд╡рд░реА 15, 2016 рдЕрдкрд░рд╛рд╣реНрди 2:55 рдмрдЬреЗ, рдорд┐рдХрд╛рдЗрд▓ рдХреНрд▓реВрд╕реЛ
рд╕реВрдЪрдирд╛рдПрдВ @

01/16/2016 05:19 AM рдкрд░, рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

"рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА" рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЪрд░рдг 2 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪрд░рдг 1
рдХреЗрд╡рд▓ рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП 1 рдпрд╛ рдЕрдзрд┐рдХ рдмреИрдХрдПрдВрдб рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдПред рд╡рд╣ рдХрджрдо
рдЕрдХреЗрд▓рд╛ рд╕рдВрднрд╡рддрдГ рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдВрддрддрдГ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ,
рд╡реИрд╕реЗ рднреАред

рдпрд╣ рд╕рдордЭ рдЖрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЖрдЬ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реЛрдЪрд╛, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдХрдард┐рди рд╣реЛрдЧрд╛ред
рдмрд╕ рдордзреНрдпрдо рдХрдард┐рдиред

рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, [...]

рддреЛ рдЪрд▓рд┐рдП рджреЗрдЦрддреЗ рд╣реИрдВ рдПрдХ рдмрд╛рд░ рдпрд╣ рд╣реЛ рдЧрдпрд╛ :-)

рдХрд╛рдлреА рдЙрдЪрд┐рдд, рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдХрд╣рд╛рдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИ :)

рдЕрдЧрд░ рдИрдПрд▓рдмреА рд╡рдЬрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛
рдЬреАрд╕реАрдИ, рдЬреЛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рд╣реИ
рд╡рдЬрдиред

рдЪреВрдВрдХрд┐ рдпрд╣ рдореИрдиреБрдЕрд▓ рд╕реЗ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╢рд╛рдпрдж 10x my . рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ
рдЗрд╕ рддрд░рд╣ рдХреА рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдореЗрдВ рдЕрдиреБрднрд╡, рдореБрдЭреЗ рдПрдХ рдХреИрдЪ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрди рдЖрдИрдкреА-рд░реВрдЯ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ:

рдиреЗрдХреНрд╕реНрдЯрд╣реЙрдк рдиреЗрдХреНрд╕реНрдЯрд╣реЛрдк
рдПрдХ рдмрд╣реБрдкрде рдорд╛рд░реНрдЧ рдХрд╛ рдЕрдЧрд▓рд╛ рдкрдбрд╝рд╛рд╡ред рдЕрдЧрд▓рд╛ рдПрдХ рд╣реИ
рд╢реАрд░реНрд╖ рд╕реНрддрд░ рддрд░реНрдХ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЬрдЯрд┐рд▓ рдорд╛рди:

[ рдкрд░рд┐рд╡рд╛рд░ ] рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрддрд╛ - рдЕрдЧрд▓рд╛ рд╕реНрдерд╛рди рд╣реИ
рд░рд╛рдЙрдЯрд░ред

рджреЗрд╡ рдирд╛рдо - рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИред

рд╡рдЬрди NUMBER - рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рднрд╛рд░ рд╣реИ
рдПрдХ рдмрд╣реБрдкрде рдорд╛рд░реНрдЧ рдХрд╛ рддрддреНрд╡ рдЬреЛ рдЙрд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдмреИрдВрдбрд╡рд┐рдбреНрде рдпрд╛ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рд┐рдирдХреНрд╕ рдХреА рдЖрдИрдкреА рд░реВрдЯрд┐рдВрдЧ рдХреА рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ
рдПрд▓рдмреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореИрдВ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВред GCE Google рдХреЗ рдХреНрд▓рд╛рдЙрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рдмреИрд▓реЗрдВрд╕рд░, рдЬрд┐рд╕рдореЗрдВ рд╡рдЬрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЕрдореЗрдЬрд╝рди рдИрдПрд▓рдмреА рд╣реИ
рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдпреЛрдЧрджрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ - рдпрд╣ рдПрдХ рд╕реБрдВрджрд░ рд╣реИ
рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдореМрд▓рд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ред

рдЪреВрдВрдХрд┐ "рдИ" рдХрд╛ рдЕрд░реНрде "рдмрд╛рд╣рд░реА" рд╣реИ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ,
рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЬрд╝рд░реВрд░, рд╣рдо рдпреЛрдЧрджрд╛рди рдореЗрдВ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)

рд╕рд╛рде рд╣реА, рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ 2 рдмрдЧ рдЦреЛрд▓рдиреА рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдХреБрдЫ:

1) рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд░ рдХреЛ рдХреЗрд╡рд▓ рдЙрди рдиреЛрдбреНрд╕ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ
рдЙрд╕ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреИрдХрдПрдВрдб рд╣реИ

2) рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдХреЛ рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд░ рдореЗрдВ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдЪрд╛рд╣рд┐рдП
рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рд╣рдореЗрд╢рд╛ рд╕реНрдерд╛рдиреАрдп рдмреИрдХрдПрдВрдб рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ (xref #1)

рдФрд░ рдлрд┐рд░ рдЗрд░рд╛рджрд╛ рдФрд░ рджрд┐рд╢рд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реЗрдВ

рд╢реБрдХреНрд░, 15 рдЬрдирд╡рд░реА, 2016 рдХреЛ рд╢рд╛рдо 5:11 рдмрдЬреЗ рдЯрд┐рдо рд╣реЛрдХрд┐рди [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

рд╢реБрдХреНрд░, рдЬрдирд╡рд░реА 15, 2016 рдЕрдкрд░рд╛рд╣реНрди 2:55 рдмрдЬреЗ, рдорд┐рдХрд╛рдЗрд▓ рдХреНрд▓реВрд╕реЛ
рд╕реВрдЪрдирд╛рдПрдВ @

01/16/2016 05:19 AM рдкрд░, рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

"рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА" рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЪрд░рдг 2 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪрд░рдг 1
рдХреЗрд╡рд▓ рд▓реЛрдб-рдмреИрд▓реЗрдВрд╕рд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП 1 рдпрд╛ рдЕрдзрд┐рдХ рдмреИрдХрдПрдВрдб рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдПред рд╡рд╣ рдХрджрдо
рдЕрдХреЗрд▓рд╛ рд╕рдВрднрд╡рддрдГ рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдВрддрддрдГ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ,
рд╡реИрд╕реЗ рднреАред

рдпрд╣ рд╕рдордЭ рдЖрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЖрдЬ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реЛрдЪрд╛, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдХрдард┐рди рд╣реЛрдЧрд╛ред
рдмрд╕ рдордзреНрдпрдо рдХрдард┐рдиред

рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, [...]

рддреЛ рдЪрд▓рд┐рдП рджреЗрдЦрддреЗ рд╣реИрдВ рдПрдХ рдмрд╛рд░ рдпрд╣ рд╣реЛ рдЧрдпрд╛ :-)

рдХрд╛рдлреА рдЙрдЪрд┐рдд, рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдХрд╣рд╛рдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИ :)

рдЕрдЧрд░ рдИрдПрд▓рдмреА рд╡рдЬрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛
рдЬреАрд╕реАрдИ, рдЬреЛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рд╣реИ
рд╡рдЬрдиред

рдЪреВрдВрдХрд┐ рдпрд╣ рдореИрдиреБрдЕрд▓ рд╕реЗ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╢рд╛рдпрдж 10x my . рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ
рдЗрд╕ рддрд░рд╣ рдХреА рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдореЗрдВ рдЕрдиреБрднрд╡, рдореБрдЭреЗ рдПрдХ рдХреИрдЪ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрди рдЖрдИрдкреА-рд░реВрдЯ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ:

рдиреЗрдХреНрд╕реНрдЯрд╣реЙрдк рдиреЗрдХреНрд╕реНрдЯрд╣реЛрдк
рдПрдХ рдмрд╣реБрдкрде рдорд╛рд░реНрдЧ рдХрд╛ рдЕрдЧрд▓рд╛ рдкрдбрд╝рд╛рд╡ред рдЕрдЧрд▓рд╛ рдПрдХ рд╣реИ
рд╢реАрд░реНрд╖ рд╕реНрддрд░ рддрд░реНрдХ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЬрдЯрд┐рд▓ рдорд╛рди:

[ рдкрд░рд┐рд╡рд╛рд░ ] рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрддрд╛ - рдЕрдЧрд▓рд╛ рд╕реНрдерд╛рди рд╣реИ
рд░рд╛рдЙрдЯрд░ред

рджреЗрд╡ рдирд╛рдо - рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИред

рд╡рдЬрди NUMBER - рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рднрд╛рд░ рд╣реИ
рдПрдХ рдмрд╣реБрдкрде рдорд╛рд░реНрдЧ рдХрд╛ рддрддреНрд╡ рдЬреЛ рдЙрд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдмреИрдВрдбрд╡рд┐рдбреНрде рдпрд╛ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рд┐рдирдХреНрд╕ рдХреА рдЖрдИрдкреА рд░реВрдЯрд┐рдВрдЧ рдХреА рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ
рдПрд▓рдмреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореИрдВ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВред GCE Google рдХреЗ рдХреНрд▓рд╛рдЙрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рдмреИрд▓реЗрдВрд╕рд░, рдЬрд┐рд╕рдореЗрдВ рд╡рдЬрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЕрдореЗрдЬрд╝рди рдИрдПрд▓рдмреА рд╣реИ
рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдпреЛрдЧрджрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ - рдпрд╣ рдПрдХ рд╕реБрдВрджрд░ рд╣реИ
рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдореМрд▓рд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ред

рдЪреВрдВрдХрд┐ "рдИ" рдХрд╛ рдЕрд░реНрде "рдмрд╛рд╣рд░реА" рд╣реИ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ,
рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЬрд╝рд░реВрд░, рд╣рдо рдпреЛрдЧрджрд╛рди рдореЗрдВ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)

рдмрд┐рдирд╛ рдбреЙрдХреНрд╕ рдХреЗ рдкреАрдЖрд░ рдХрд╛ рдЬреЛрдЦрд┐рдо рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЧрд▓рдд рджрд┐рд╢рд╛ рдореЗрдВ рд╣реИред рдпрд╣ рд╣реИ
рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдореИрдВ рдЖрдкрдХреЗ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдЧрд╛
рдкреАрдЖрд░ рдЬрдм рдореБрдЭреЗ рдореМрдХрд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд▓реНрдж рд╣реА рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИред
15 рдЬрдирд╡рд░реА 2016 рдХреЛ рд╢рд╛рдо 7:02 рдмрдЬреЗ, "рдорд┐рдХрд╛рд▓ рдХреНрд▓реВрд╕реЛ" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдХреНрдпрд╛ рдЗрд╕ рдирд╛рдо рд╕реЗ рд╕реАрдзреЗ (1) рдХреЗ рд▓рд┐рдП рдкреБрд▓-рдЕрдиреБрд░реЛрдз рдЦреЛрд▓рдирд╛ рдареАрдХ рд╣реИ рдФрд░ рдХреБрдЫ
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг?

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -172149777
.

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЖрдк рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЖ рдЧрдП рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрдереЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд░реВрдЯ рдХрд┐рдП рдЧрдП рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдХрд╛рд░рдг GCE рдЬреИрд╕реЗ рдХреНрд▓рд╛рдЙрдб IPVS рдЧреЗрдЯрд╡реЗрд┐рдВрдЧ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рднрд▓реЗ рд╣реА рдЧреЗрдЯрд╡реЗрд┐рдВрдЧ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реЛ, рдпрд╣ рдкреЛрд░реНрдЯ рд░реАрдореИрдкрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ == рд▓рдХреНрд╖реНрдп рдкреЛрд░реНрдЯред

рдЧреЗрдЯрд╡реЗ рдХреА рддрд░рдл, рдпрд╣ рд▓реЗрдпрд░ 3 рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рд╣рдо рдПрдХ рдУрд╡рд░рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ), рдФрд░ рднрд▓реЗ рд╣реА рд╣рдо рдУрд╡рд░рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдмрд┐рдирд╛ рджреВрд░ рд╣реЛ рд╕рдХрддреЗ рдереЗ, рд╣рдордиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рдЬрд┐рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЛ рдФрд░ рдХрд╛рдо рдХрд░реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдмрд╛рджрд▓реЛрдВ рдореЗрдВ (рдЬреИрд╕реЗ GCE)ред

рдбреАрдПрд╕рдЖрд░ рдореЛрдб рдХреЗ рд╕рд╛рде рд╕реАрдорд╛ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ == рд▓рдХреНрд╖реНрдп рдкреЛрд░реНрдЯ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдХрдВрдЯреЗрдирд░ рдореЗрдВ рджреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди _in рдПрдХ рд╣реА рдкреЛрд░реНрдЯ рдкрд░ рдЪрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ (рд╣рдордиреЗ рд╕реЛрдЪрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рдпрд╣, рдФрд░ "рдкреНрд░рддрд┐ рдХрдВрдЯреЗрдирд░ 1 рдЖрд╡реЗрджрди" рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдорд╛рдирддреЗ рд╣реБрдП, рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рднреА рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХреЗ)ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдХрдВрдЯреЗрдирд░ рд╣реИрдВ рдЬреЛ рд╕рднреА рдПрдХ рд╣реА рдиреЛрдбреНрд╕ рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдЙрди рд╕рднреА рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╣реА рдкреЛрд░реНрдЯ рдкрд░ рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ, рдФрд░ рд╕рднреА рд╕рдВрддреБрд▓рд┐рдд рдлрд╛рдЗрди рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ _really_ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдореИрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░рдгреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ), рддреЛ рдЖрдк "рд░реВрдЯ" рдореЛрдб рдХреЗ рдмрдЬрд╛рдп рдЖрдИрдкреАрд╡реАрдПрд╕ рдПрдирдПрдЯреА рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдореВрд▓ рдХреЗ рд╕рд╛рде рдЪреБрдиреМрддреА рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдЕрдкрдиреЗ рд░рд╛рд╕реНрддреЗ рд╕реЗ рд╣рдЯрдХрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╢рдХреНрдд рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо ipvs рдПрдирдХреИрдк рдореЛрдб рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░ рд╕рдХреЗрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕рдХреЗ рдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╣рдордиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдЙрддрдирд╛ рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдЬрд┐рддрдирд╛ рд╣рдо рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣рд╛рдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдореЗрдЬрд╝реЕрди рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдЬреАрд╕реАрдИ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрдм рд╣рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА), рдбреАрдПрд╕рдЖрд░ рдХреЗ рд╕рд╛рде рдПрдХрдорд╛рддреНрд░ рд╕реАрдорд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди рдкреЙрдб/рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХреЗ рд╕рдорд╛рди рдкреЛрд░реНрдЯ рдкрд░ рдЪрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реА рдЖрдВрддрд░рд┐рдХ рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рдж, рдХреЛрдИ рднреА рдРрд╕рд╛ рдкрд░рд┐рджреГрд╢реНрдп рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛рдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ E2E рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреИрдХ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ рд╕реАрдорд┐рдд рд╣реЛрдЧрд╛ред

рдЕрдм рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдпрджрд┐ рдЖрдк рд╕рдореАрдХрд░рдг рд╕реЗ рдбреАрдПрд╕рдЖрд░ (рдЖрдИрдкреАрд╡реАрдПрд╕ рд░реВрдЯ рдореЛрдб) рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдИрдкреАрд╡реАрдПрд╕ рдХреЗ "рдПрдирдПрдЯреА рдореЛрдб" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рд░реАрдореИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЕрднреА рднреА рдЖрдИрдкреАрд╡реАрдПрд╕ рд╕реБрд╡рд┐рдзрд╛рдПрдВ/рдкреНрд░рджрд░реНрд╢рди/рдЖрджрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд▓рд╛рдн рдорд┐рд▓рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдПрдирдПрдЯреА рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди (рдП) рдпрд╣ рдпреВрдбреАрдкреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ (рдмреА) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдВрддрд░рд┐рдХреНрд╖ рд╕рдорд╛рдзрд╛рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕рдХреА рдЕрднреА рднреА рдмрд┐рдЬрд▓реА рддреЗрдЬ рд╣реИред

@brendandburns @thockin рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдзрд╛рдЧреЗ рдореЗрдВ рдЖрдкрдиреЗ рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдЦреНрдпрд╛рдПрдВ рдорд╛рдВрдЧреА

https://docs.google.com/presentation/d/1vv5Zszt4HDGbuyVlvOe76unHskxPuZQseQnarNbhQVc

рдЕрдиреНрдп рджреЛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдЪрд┐рдд рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдЖрдИрдкреАрд╡реАрдПрд╕ рдкрд░ рдбреАрдПрдирдПрдЯреА рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ рд▓рдХреНрд╖реНрдп рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрднрд╛рд░ рдереЛрдбрд╝рд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкреНрд░рджрд░реНрд╢рди рд▓рдХреНрд╖реНрдп рд╢рд╛рдпрдж рджреВрд╕рд░реЛрдВ рд╕реЗ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реИрдВ (рдпрд╛рдиреА рдЖрдк рдЬреЛ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЛ рдирд┐рдЪреЛрдбрд╝реЗрдВ)ред

рдзрдиреНрдпрд╡рд╛рдж!

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдпреВрдбреАрдкреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - it
рдмрд┐рд▓реНрдХреБрд▓ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╛рдпрдж рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ (рдПрдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рдЖрддрд╛ рд╣реИ
рдбрд╛рдЙрди рдЯреВ рдЯрд╛рдЗрдордЖрдЙрдЯ)ред

рдпрд╣ iptables (рдирдпрд╛) рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдмрдирд╛рдо рдпреВрдЬрд░рд╕реНрдкреЗрд╕ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рднреА рд╣реИ
(рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЕрдВрджрд╛рдЬред

рдкрд░ 09:45 рд╢рдирд┐, 16 рдЬрдирд╡рд░реА, 2016 рдХреЛ, qoke [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

@thockin https://github.com/thockin рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдереНрд░реЗрдб рдореЗрдВ рдЖрдкрдиреЗ рдорд╛рдВрдЧрд╛ рдерд╛
рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдЦреНрдпрд╛ред рдореИрдВ рдЗрд╕реЗ рд╕рдмрд╕реЗ рд╡реНрдпрд╛рдкрдХ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ HTTP рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрднрд╛рд░ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ
рдХрдВрдЯреЗрдирд░, рдЗрд╕рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣рд╛рдВ рдХреБрдЫ рдЕрдкрд╛рдЪреЗ-рдмреЗрдВрдЪ рдирдВрдмрд░ рджрд┐рдП рдЧрдП рд╣реИрдВ:

https://docs.google.com/presentation/d/1vv5Zszt4HDGbuyVlvOe76unHskxPuZQseQnarNbhQVc

рдЕрдиреНрдп рджреЛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирд┐рд╖реНрдкрдХреНрд╖ рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП IPVS рдкрд░ DNAT рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
(рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ рдЯрд╛рд░рдЧреЗрдЯ рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рд╣рдорд╛рд░реА
рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рдХрд╛рд░реНрдпрднрд╛рд░ рдереЛрдбрд╝рд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рди рд▓рдХреНрд╖реНрдп
рд╢рд╛рдпрдж рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реИрдВ (рдпрд╛рдиреА рд╕рднреА рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдирд┐рдЪреЛрдбрд╝реЗрдВ
рдЖрдк рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -172293881
.

рдирдП рдмрдирд╛рдо рд▓реАрдЧреЗрд╕реА рдореЛрдб рдкрд░ рдЕрдЪреНрдЫреА рдХреЙрд▓ - рд╡рд┐рдЦреНрдпрд╛рдд рдФрд░ рдЕрджреНрдпрддрдиред

рдЪреАрдЬреЛрдВ рдХреЗ рдпреВрдбреАрдкреА рдкрдХреНрд╖ рдкрд░ рднреА, рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж; рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдпреВрдбреАрдкреА рдЕрдм рддрдХ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдерд╛ред рдЬрдм рд╣рдордиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдпреВрдбреАрдкреА рдХреЗ рд╕рд╛рде рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВрдЧ рдорд┐рд▓реЗред рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдмрдврд╝рд╛ рджрд┐рдпрд╛ рдФрд░ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛рдПрдБ рдереАрдВред рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рддреЗрдЬреА рд╕реЗ рдЦреЛрдЬрдирд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕реЗ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЖрдИрдкреАрд╡реАрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ред рдЙрд╕ рд╕рдордп рдпрд╣ рдХреЗрд╡рд▓ рдХрд╛рдлреА рдХрдо рдкреИрдХреЗрдЯ-рдкреНрд░рддрд┐-рд╕реЗрдХрдВрдб рд╡рд░реНрдХрд▓реЛрдб (1k рдкреАрдкреАрдПрд╕ рдХреЗ рддрд╣рдд) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреБрди: рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

iptables рдФрд░ рдХрд┐рд╕реА рднреА рдЙрдЪреНрдЪ-рджрд░ UDP рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рдореБрдЦ рдореБрджреНрджрд╛ рдиреЗрдЯрдлрд┐рд▓реНрдЯрд░ рдХреЙрдирдЯреНрд░реИрдХ рдЯреЗрдмрд▓ рднрд░рдирд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рдХреЙрдирдЯреНрд░реИрдХ рдЖрдХрд╛рд░ рдХреЛ 1 рдорд┐рд▓рд┐рдпрди рддрдХ рдмрдврд╝рд╛ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рдореИрд▓рд╡реЗрдпрд░-рд╕рдВрдХреНрд░рдорд┐рдд рдПрдВрдб-рдпреВрдЬрд╝рд░ рдбреАрдбреАрдУрдПрд╕ рдЖрдк рд╣реИрдВ рдпрд╛ рдбреАрдПрдирдПрд╕ рдПрдореНрдкрд▓реАрдлрд┐рдХреЗрд╢рди рдЕрдЯреИрдХ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЖрдкрдХреА рдХреЙрдиреНрдЯреНрд░реИрдХ рдЯреЗрдмрд▓ рдлрд┐рд░ рд╕реЗ рднрд░ рдЬрд╛рддреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, DNS рд╕рд░реНрд╡рд░реЛрдВ (рдпрд╛ рдХрд┐рд╕реА рднреА рдЙрдЪреНрдЪ-рджрд░ UDP рд╕реЗрд╡рд╛рдУрдВ) рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИ рдХреЙрдирдЯреНрд░реИрдХ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ (рдХрдЪреНрдЪреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ -j NOTRACK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛), рдФрд░ рдпрджрд┐ рдЖрдк рдХреЙрдирдЯреНрд░реИрдХ, iptables NAT рдФрд░ рд╕реНрдЯреЗрдЯрдлреБрд▓ рд╕реНрдЯрдл (-m рд╕реНрдЯреЗрдЯ) рдмреНрд░реЗрдХ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред

рдЬреАрдЖрдИрдЯреА рд░реЗрдкреЛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, "k8s.io/kubernetes/pkg/proxy/ipvs" рдореЙрдбреНрдпреВрд▓/рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдХрд╣рд╛рдВ рд╣реЛрдЧреА? рдпрд╛ рдпрд╣ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬреЛ рдХреЛрдб рдЖрдзрд╛рд░ рдХреЛ рдмреЗрд╣рддрд░ рдЬрд╛рдирддрд╛ рд╣реИ?

рд╕рд╛рде рд╣реА, рдпрджрд┐ рдЖрдк рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдФрд░ рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

01/17/2016 08:50 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, qoke рдиреЗ рд▓рд┐рдЦрд╛:

рдЬреАрдЖрдИрдЯреА рд░реЗрдкреЛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд╣рд▓реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдХрд╣рд╛рдВ рд╣реЛрдЧреА
"k8s.io/kubernetes/pkg/proxy/ipvs" рдореЙрдбреНрдпреВрд▓/рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдЖрдк рдпреЛрдЧрджрд╛рди рдореЗрдВ рднреА рд╢реБрд░реБрдЖрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ... рдореИрдВрдиреЗ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪреА рдШрдбрд╝рд┐рдпреЛрдВ рдФрд░ рдЕрдирдбреЗрд▓реНрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛
рдмрд┐рдирдп рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд░рд╣рд╛ рд╣реИ
https://github.com/kubernetes/kubernetes/pull/19755. рдЕрдЧрд░ рдЬрд╛рдирдХрд╛рд░реА
рдореЗрдВ
https://github.com/kubernetes/kubernetes/pull/19755/files#diff -0becc97ac222c3f2838fbfe8446d5375R26
рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдиреАрдЪреЗ рджреА рдЧрдИ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдХреЙрд▓ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛
(https://github.com/kubernetes/kubernetes/pull/19755/files#diff-0becc97ac222c3f2838fbfe8446d5375R44)ред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ рдЗрд╕ рдкреАрдУрд╕реА рдореЗрдВ рдХреЗрд╡рд▓ рдХреНрд▓рд╕реНрдЯрд░рдЖрдИрдкреА рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реВрдВред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЖрдк рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЖ рдЧрдП рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрдереЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд░реВрдЯ рдХрд┐рдП рдЧрдП рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдХрд╛рд░рдг GCE рдЬреИрд╕реЗ рдХреНрд▓рд╛рдЙрдб IPVS рдЧреЗрдЯрд╡реЗрд┐рдВрдЧ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рднрд▓реЗ рд╣реА рдЧреЗрдЯрд╡реЗ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реЛ, рдпрд╣ рдирд╣реАрдВ рд╣реИ
рд╕рдорд░реНрдерди рдкреЛрд░реНрдЯ рд░реАрдореИрдкрд┐рдВрдЧ, рдЬреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ == рд▓рдХреНрд╖реНрдп рдкреЛрд░реНрдЯред

рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░, рдпрд╣ рдкрд░рдд 3 рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рд╣рдо рдПрдХ рдУрд╡рд░рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ), рдФрд░ рднрд▓реЗ рд╣реА рд╣рдо рджреВрд░ рд╣реЛ рд╕рдХрддреЗ рдереЗ
рдУрд╡рд░рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдмрд┐рдирд╛, рд╣рдордиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдмрдирд╛рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рдЬрд┐рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЛ рдФрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдореЗрдВ рдХрд╛рдо рдХрд░реЗ
рдмрд╛рджрд▓ (рдЬреИрд╕реЗ GCE)ред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдорд╢реАрди-рд╕реНрддрд░реАрдп рд╕реНрдерд┐рд░ рдорд╛рд░реНрдЧ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ
рдЬреАрд╕реАрдИ рдореЗрдВред рд╢рд╛рдпрдж рдореБрдЭреЗ рдХреБрдЫ рддрдХрдиреАрдХ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ
рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдореИрдВ рдЗрд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ :)

рд╕реАрдорд╛ рдХреЛ рдареАрдХ рдХрд░реЗрдВ рдХрд┐ рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ == рд▓рдХреНрд╖реНрдп рдкреЛрд░реНрдЯ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рди рд╣реЛрдВ
рд╡рд╣реА рдХрдВрдЯреЗрдирд░ рдЬрд┐рд╕реЗ рдЙрд╕реА рдкреЛрд░реНрдЯ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╣рдордиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рдпрд╛, рдФрд░ "1 рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рдорд╛рдирдХрд░
рдкреНрд░рддрд┐ рдХрдВрдЯреЗрдирд░" рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рднреА рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдиреЛрдб рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдХрдВрдЯреЗрдирд░ рд╣реИрдВ
рдЙрди рд╕рднреА рдХреЗ рдЕрдВрджрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдмрдВрджрд░рдЧрд╛рд╣ рдкрд░, рдФрд░ рд╕рднреА рд╕рдВрддреБрд▓рд┐рдд рдЬреБрд░реНрдорд╛рдирд╛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣рдо рдЬрд┐рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдЖрдкрдХреЛ рд░реЛрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рдПрдХ рд╣реА рдиреЛрдб рдкрд░ рдПрдХ рд╣реА рдкреЛрд░реНрдЯ рдкрд░ рдХрдИ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗред

рдпрд╣ рддрдм рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдмреИрдХрдПрдВрдб рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ
etcd1 рдФрд░ etcd2 рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг) рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐ рдЬрд╣рд╛рдБ
рдмреИрдХрдПрдВрдб рдкреЛрд░реНрдЯ рдХреЛ рдмрд╕ рдЕрд▓рдЧ рд╣реЛрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЗрд╕реЗ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛ рдлрд┐рд░ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ EOL рдХрд░реЗрдВ рдЬреЛ
рдЕрд╕рдВрднрд╡ рд▓рдЧрддрд╛ рд╣реИ)ред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдореВрд▓ рдХреЗ рд╕рд╛рде рдЪреБрдиреМрддреА рдЖрдкрдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдпрд╛ рдЕрдкрдиреЗ рд░рд╛рд╕реНрддреЗ рд╕реЗ рд╣рдЯрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдвреВрдВрдв рд░рд╣реА рд╣реИ
рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╢рдХреНрдд рдмрдирд╛рддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо ipvs encap рдореЛрдб рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░ рд╕рдХреЗрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ perf . рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ
рдЗрд╕рдХреЗ рдирд┐рд╣рд┐рддрд╛рд░реНрдеред

рд╣рдордиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдЙрддрдирд╛ рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдЬрд┐рддрдирд╛ рд╣рдо рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣рд╛рдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдореЗрдЬрд╝реЕрди рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛
рдЬреАрд╕реАрдИ рдЬрдм рд╣рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ), рдХреЗрд╡рд▓ рдПрдХ рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рдкреЙрдб/рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рд╕рдорд╛рди рдкреЛрд░реНрдЯ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реА рдЖрдВрддрд░рд┐рдХ рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рдж, рдХреЛрдИ рднреА рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛рдпрд╛ рд╣реИред рдкрд░рд┐рджреГрд╢реНрдп рдЬрд╣рд╛рдВ
рдпрд╣ рдПрдХ E2E рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдЯреИрдХ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ рд╕реАрдорд┐рдд рд╣реЛрдЧрд╛ред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдФрд░ рдХрджрдо-рджрд░-рдХрджрдо рд╣реИ?

рдЪреАрдЬреЛрдВ рдХреЗ рдпреВрдбреАрдкреА рдкрдХреНрд╖ рдкрд░ рднреА, рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж; рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдпреВрдбреАрдкреА рдЕрдм рддрдХ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдерд╛ред
рдЬрдм рд╣рдордиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдпреВрдбреАрдкреА рдХреЗ рд╕рд╛рде рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВрдЧ рдорд┐рд▓реЗред рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдмрдврд╝рд╛ рджрд┐рдпрд╛ рдФрд░
рдЕрднреА рднреА рдореБрджреНрджреЗ рдереЗред рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рддреЗрдЬреА рд╕реЗ рдЦреЛрдЬрдирд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕реЗ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЖрдИрдкреАрд╡реАрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ред рдкрд░
рд╕рдордп рдпрд╣ рдХреЗрд╡рд▓ рдХрд╛рдлреА рдХрдо рдкреИрдХреЗрдЯ-рдкреНрд░рддрд┐-рд╕реЗрдХрдВрдб рд╡рд░реНрдХрд▓реЛрдб (1k рдкреАрдкреАрдПрд╕ рдХреЗ рддрд╣рдд) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

iptables рдФрд░ рдХрд┐рд╕реА рднреА рдЙрдЪреНрдЪ-рджрд░ UDP рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рдореБрдЦ рдореБрджреНрджрд╛ рдиреЗрдЯрдлрд┐рд▓реНрдЯрд░ рдХреЙрдирдЯреНрд░реИрдХ рдЯреЗрдмрд▓ рднрд░рдирд╛ рд╣реИред рднрд▓реЗ рд╣реА рдЖрдк рдмрдврд╝рд╛ рджреЗрдВ
рдЖрдХрд╛рд░ рдХреЛ 1 рдорд┐рд▓рд┐рдпрди рддрдХ рдмрдврд╝рд╛рдПрдВ, рдлрд┐рд░ рдХреБрдЫ рдореИрд▓рд╡реЗрдпрд░-рд╕рдВрдХреНрд░рдорд┐рдд рдЕрдВрддрд┐рдо-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ DDoS рдЖрдк рд╣реИрдВ рдпрд╛ DNS рдкреНрд░рд╡рд░реНрдзрди рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ
рд╣рдорд▓рд╛ рдФрд░ рдлрд┐рд░ рдЖрдкрдХреА рдХреЙрдирдЯреНрд░реИрдХ рдЯреЗрдмрд▓ рдлрд┐рд░ рд╕реЗ рднрд░ рдЬрд╛рддреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, DNS рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ (рдпрд╛ рдХреЛрдИ рдЙрдЪреНрдЪ рджрд░
UDP рд╕реЗрд╡рд╛рдПрдВ) рдХреЙрдирдЯреНрд░реИрдХ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╣реИ (рдХрдЪреНрдЪреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ -j NOTRACK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдФрд░ рдпрджрд┐ рдЖрдк рдХреЙрдирдЯреНрд░реИрдХ, iptables NAT рдФрд░ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ
рд╕реНрдЯреЗрдЯрдлреБрд▓ рд╕реНрдЯрдл (-рдПрдо рд╕реНрдЯреЗрдЯ) рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред

рд╣рд╛рдБ, рдпреВрдбреАрдкреА рдХреЗ рд▓рд┐рдП рдПрдирдПрдЯреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИред рдПрдХ рдЧреИрд░-рдХреЙрдиреНрдЯреНрд░реИрдХ рдвреВрдБрдврдирд╛
рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдпрд╛ рддреЛ рд╕рднреА рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рд╡рд╛рддрд╛рд╡рд░рдг рдпрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рджреНрд╡рд╛рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рд╣реЛрдирд╛ (рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрдард┐рди рд╣реИ
рд░рд╛рд╕реНрддрд╛)ред

GIT рд░реЗрдкреЛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, a рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдХрд╣рд╛рдБ рд╣реЛрдЧреА?
"k8s.io/kubernetes/pkg/proxy/ipvs" рдореЙрдбреНрдпреВрд▓/рдкреИрдХреЗрдЬ? рдпрд╛ рдпрд╣ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬреЛ рдХреЛрдб рдЖрдзрд╛рд░ рдХреЛ рдмреЗрд╣рддрд░ рдЬрд╛рдирддрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдЖрдИрдкреАрд╡реАрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЬреАрдердм рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдмрд╣рд╛рдирд╛ (рдПрдирдПрдЯреА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛
рдореЛрдб рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЬреАрд╕реАрдИ рдкрд░ (рдФрд░ рдХреЗ рдХрд╛рд░рдг) рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛
рдкреЛрд░реНрдЯ рд░реАрдореИрдкрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛)ред рдпрджрд┐ рдкреЛрд░реНрдЯ-рд░реАрдореИрдкрд┐рдВрдЧ рдиреЗ рдХрдо рдЖрджрд░реНрд╢ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛
рд╕рдВрддреБрд▓рди рдореЛрдб, рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рд╕рд╛рде рд░рд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдмрд╕ рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдЬреИрд╕реЗ рдХреАред

рд╣рдореЗрдВ рдЗрд╕ рдХреЙрдирд╡реЛ рдХреЛ рд╡рд╣рд╛рдВ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрд╣ рдпрд╣рд╛рдВ рдЦреЛ рдЬрд╛рдПрдЧрд╛ред

01/18/2016 рдХреЛ рджреЛрдкрд╣рд░ 12:34 рдмрдЬреЗ рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

рд╣рд╛рдБ, рдпреВрдбреАрдкреА рдХреЗ рд▓рд┐рдП рдПрдирдПрдЯреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИред рдПрдХ рдЧреИрд░-рдХреЙрдиреНрдЯреНрд░реИрдХ рдвреВрдБрдврдирд╛
рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдпрд╛ рддреЛ рд╕рднреА рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рд╡рд╛рддрд╛рд╡рд░рдг рдпрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рджреНрд╡рд╛рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рд╣реЛрдирд╛ (рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрдард┐рди рд╣реИ
рд░рд╛рд╕реНрддрд╛)ред

рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдПрдирдПрдЯреА рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ (рдкреЙрдб, рдкреЛрд░реНрдЯ) рдЬреЛрдбрд╝реЗ рдХреЗ рдкрд╛рд╕ рд╣реИ
рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдХ рд╕реЗрд╡рд╛ (рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рдлрд▓реА)?

рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

{рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ, рд╕реЗ: рдПрдХреНрд╕рдЯрд░реНрдирд▓рдЖрдИрдкреА: рдПрдХреНрд╕рдЯрд░реНрдирд▓рдкреЛрд░реНрдЯ} --- [рдкреНрд░реЙрдХреНрд╕реА рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреЙрдб рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ] ---> {рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ, рд╕реЗ: рдкреЙрдбрдЖрдИрдкреА: рдЯрд╛рд░рдЧреЗрдЯрдкреЛрд░реНрдЯ} ---> [рд╕рд╣реА рд╣реЛрд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ ...]

рд░рд╛рд╕реНрддреЗ рдореЗрдВ, рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдореЗрдВ рдПрдХ рдкреИрдХреЗрдЯ {from:
podIP:targetPort , to: any} рдХреЛ {from:
e xternalIP:externalPort , рд╕реЗ: рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд}ред

рдЗрд╕реЗ iptables рдмреЛрд▓реА рдореЗрдВ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП:

iptables -t nat -N stateless-svc-in

iptables -t nat -N stateless-svc-out

iptables -t nat -A stateless-svc-in  -j DNAT -s 1.2.3.4  -p udp --dport 53 --to-destination 10.1.0.1 -m statistic --mode random --probability 0.3333

iptables -t nat -A stateless-svc-in  -j DNAT -s 1.2.3.4  -p udp --dport 53 --to-destination 10.2.0.1 -m statistic --mode random --probability 0.5

iptables -t nat -A stateless-svc-in  -j DNAT -s 1.2.3.4  -p udp --dport 53 --to-destination 10.2.0.2 -m statistic --mode random --probability 1

iptables -t nat -A stateless-svc-out -j SNAT -s 10.1.0.1 -p udp --sport 53 --to-source 1.2.3.4

iptables -t nat -A stateless-svc-out -j SNAT -s 10.2.0.1 -p udp --sport 53 --to-source 1.2.3.4

iptables -t nat -A stateless-svc-out -j SNAT -s 10.2.0.2 -p udp --sport 53 --to-source 1.2.3.4

рдЬрдм рдкреИрдХреЗрдЯ рдмрд╛рд╣рд░ рд╕реЗ рдЖрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдБ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рдХреНрд▓рд╕реНрдЯрд░ред

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣ рдПрдХ рдПрдХрд▓ рдкреЙрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рдордиреЗ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ - рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреНрдпрд╛
SNAT рдХреЛ.

рд╕реВрд░реНрдп, 17 рдЬрдирд╡рд░реА 2016 рдХреЛ рд╢рд╛рдо 6:13 рдмрдЬреЗ, рдорд┐рдХрд╛рдПрд▓ рдХреНрд▓реВрд╕реЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

01/18/2016 рдХреЛ рджреЛрдкрд╣рд░ 12:34 рдмрдЬреЗ рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

рд╣рд╛рдБ, рдпреВрдбреАрдкреА рдХреЗ рд▓рд┐рдП рдПрдирдПрдЯреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИред рдПрдХ рдЧреИрд░-рдХреЙрдиреНрдЯреНрд░реИрдХ рдвреВрдБрдврдирд╛
рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдпрд╛ рддреЛ рд╕рднреА рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рд╡рд╛рддрд╛рд╡рд░рдг рдпрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рджреНрд╡рд╛рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рд╣реЛрдирд╛ (рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрдард┐рди рд╣реИ
рд░рд╛рд╕реНрддрд╛)ред

рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдПрдирдПрдЯреА рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ (рдкреЙрдб, рдкреЛрд░реНрдЯ) рдЬреЛрдбрд╝реЗ рдХреЗ рдкрд╛рд╕ рд╣реИ
рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдХ рд╕реЗрд╡рд╛ (рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рдлрд▓реА)?

рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

{рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ, рдЯреВ: рдПрдХреНрд╕рдЯрд░реНрдирд▓рдЖрдИрдкреА: рдПрдХреНрд╕рдЯрд░реНрдирд▓рдкреЛрд░реНрдЯ} --- [рдкреНрд░реЙрдХреНрд╕реА рдЪрдпрди
рдПрдХ рд░реИрдВрдбрдо рдкреЙрдб] ---> {рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ, рд╕реЗ: рдкреЙрдбрдЖрдИрдкреА: рдЯрд╛рд░рдЧреЗрдЯрдкреЛрд░реНрдЯ} --->
[рд╕рд╣реА рдореЗрдЬрдмрд╛рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛ ...]

рд░рд╛рд╕реНрддреЗ рдореЗрдВ, рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдореЗрдВ рдПрдХ рдкреИрдХреЗрдЯ {from:
podIP:targetPort , to: any} рдХреЛ {from:
e xternalIP:externalPort , рд╕реЗ: рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд}ред

рдЗрд╕реЗ iptables рдмреЛрд▓реА рдореЗрдВ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП:

iptables -t nat -N stateless-svc-in

iptables -t nat -N stateless-svc-out

iptables -t nat -A stateless-svc-in -j DNAT -s 1.2.3.4 -p udp --dport 53
--to-destination 10.1.0.1 -m statistic --mode random --probability 0.3333

iptables -t nat -A stateless-svc-in -j DNAT -s 1.2.3.4 -p udp --dport 53
--to-destination 10.2.0.1 -m statistic --mode random --probability 0.5

iptables -t nat -A stateless-svc-in -j DNAT -s 1.2.3.4 -p udp --dport 53
--to-destination 10.2.0.2 -m statistic --mode random --probability 1

iptables -t nat -A stateless-svc-out -j SNAT -s 10.1.0.1 -p udp --sport 53
--to-source 1.2.3.4

iptables -t nat -A stateless-svc-out -j SNAT -s 10.2.0.1 -p udp --sport 53
--to-source 1.2.3.4

iptables -t nat -A stateless-svc-out -j SNAT -s 10.2.0.2 -p udp --sport 53
--to-source 1.2.3.4

рдЬрдм рдкреИрдХреЗрдЯ рдмрд╛рд╣рд░ рд╕реЗ рдЖрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдБ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рдХреНрд▓рд╕реНрдЯрд░ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -172408290
.

01/18/2016 03:31 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣ рдПрдХ рдПрдХрд▓ рдкреЙрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛
рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рдордиреЗ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ - рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ
рдХреНрдпрд╛
SNAT рдХреЛ.

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдорд╛рдорд▓реЗ рдХреЛ рдХрдИ-рд╕реЗ-рдПрдХ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ (рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╡рд╛рдХреНрдп :-))ред
рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рд░реЗрдЦрд╛ рдЦреАрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдХрд╛рдо рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд╛рдзрд╛рди :(

рд░рд╡рд┐рд╡рд╛рд░, 17 рдЬрдирд╡рд░реА 2016 рдХреЛ рд░рд╛рдд 8:34 рдмрдЬреЗ, рдорд┐рдХрд╛рдПрд▓ рдХреНрд▓реВрд╕реЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

01/18/2016 03:31 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣ рдПрдХ рдПрдХрд▓ рдкреЙрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛
рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рдордиреЗ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ - рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ
рдХреНрдпрд╛
SNAT рдХреЛ.

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдорд╛рдорд▓реЗ рдХреЛ рдХрдИ-рд╕реЗ-рдПрдХ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ (рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╡рд╛рдХреНрдп :-))ред
рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рд░реЗрдЦрд╛ рдЦреАрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -172421828
.

01/18/2016 03:46 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдХрд╛рдо рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд╛рдзрд╛рди :(

рд╣рд╛рдБ... рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рд╣реИрдВред рд╣рдо рдпрд╣ рднреА рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╣реАрдВ, "рдЕрдЧрд░ рд▓реЗрди (рд╕реЗрд╡рд╛)
== 1 {рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд▓рд╛рдЧреВ рдХрд░реЗрдВ} рдФрд░ {рд╕реНрдЯреЗрдЯрдлреБрд▓ рд▓рд╛рдЧреВ рдХрд░реЗрдВ}"ред рд▓реЗрдХрд┐рди рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдиреМрд╕рд┐рдЦрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рдХреА рддрд░рд╣ рджреЗрдЦреЛред рдореИрдВ рдПрдХ рдпреЛрдЧрджрд╛рди/рдПрд▓реНрдмреНрд╕/рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ ...

рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рднреА рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВ (рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛ
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкреЙрдб рдХреЗ рд╕рд╛рдордиреЗ)ред рд╣рдо рдХрд░ рд╕рдХрддреЗ рдереЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реВрдВ (рднрд▓реЗ рд╣реА рдпрд╣)
рдЖрд▓рд╛ рд▓рдЧрддрд╛ рд╣реИ)ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓рд╛рд╡ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ
рдХрдИ рдЪреЗрддрд╛рд╡рдиреАред рдореИрдВ рдЕрднреА рднреА рдмреЗрд╣рддрд░ рдЙрддреНрддрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рд╕реВрд░реНрдп, 17 рдЬрдирд╡рд░реА 2016 рдХреЛ рд░рд╛рдд 8:51 рдмрдЬреЗ, рдорд┐рдХрд╛рдПрд▓ рдХреНрд▓реВрд╕реЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

01/18/2016 03:46 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдХрд╛рдо рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд╛рдзрд╛рди :(

рд╣рд╛рдБ... рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рд╣реИрдВред рд╣рдо рдпрд╣ рднреА рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╣реАрдВ, "рдЕрдЧрд░ рд▓реЗрди (рд╕реЗрд╡рд╛)
== 1 {рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд▓рд╛рдЧреВ рдХрд░реЗрдВ} рдФрд░ {рд╕реНрдЯреЗрдЯрдлреБрд▓ рд▓рд╛рдЧреВ рдХрд░реЗрдВ}"ред рд▓реЗрдХрд┐рди рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдиреМрд╕рд┐рдЦрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рдХреА рддрд░рд╣ рджреЗрдЦреЛред рдореИрдВ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдБ
рдпреЛрдЧрджрд╛рди/рдПрд▓реНрдмреНрд╕/рдХреБрдЫ...

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -172425404
.

01/18/2016 04:07 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рднреА рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВ (рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛ
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкреЙрдб рдХреЗ рд╕рд╛рдордиреЗ)ред рд╣рдо рдХрд░ рд╕рдХрддреЗ рдереЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реВрдВ (рднрд▓реЗ рд╣реА рдпрд╣)
рдЖрд▓рд╛ рд▓рдЧрддрд╛ рд╣реИ)ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓рд╛рд╡ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ
рдХрдИ рдЪреЗрддрд╛рд╡рдиреАред рдореИрдВ рдЕрднреА рднреА рдмреЗрд╣рддрд░ рдЙрддреНрддрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмреЗрд╣рддрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ :-(

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдПрд╕рдбреАрдПрди рдХреЛ рдХреБрдЫ рдРрд╕рд╛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рд╢рд╛рдпрдж
рдПрдордкреАрдПрд▓рдПрд╕ рдЬреИрд╕реЗ рд▓реЗрдмрд▓-рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди ..?

01/18/2016 рдХреЛ 04:18 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, рдорд┐рдХреЗрд▓ рдХреНрд▓реВрд╕реЛ рдиреЗ рд▓рд┐рдЦрд╛:

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдПрд╕рдбреАрдПрди рдХреЛ рдХреБрдЫ рдРрд╕рд╛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред
рд╢рд╛рдпрдж рдПрдордкреАрдПрд▓рдПрд╕ рдЬреИрд╕реЗ рд▓реЗрдмрд▓-рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди ..?

рдЪреАрдЬреЛрдВ рдХреЛ рд▓реЗрдмрд▓ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ... рдпрджрд┐ рд╣рдо рдкреНрд░рддрд┐ рд╕реЗрд╡рд╛ рдПрдХ рдЖрдИрдкреА + рдПрдХ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ
рдЖрдИрдкреА тАЛтАЛрдкреНрд░рддрд┐ рдПрдВрдбрдкреЙрдЗрдВрдЯ (рд╕реЗрд╡рд╛ + рдкреЙрдб рдпреБрдЧрд▓), рдФрд░ рдЗрди рдПрдВрдбрдкреЙрдЗрдВрдЯ рдЖрдИрдкреА рдХреЛ рдЬреЛрдбрд╝реЗрдВ
рдкреЙрдбреНрд╕, рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

``````

  • рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА: {рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ, рд╕реЗ: рдмрд╛рд╣рд░реА рдЖрдИрдкреА: рд╕рд░реНрд╡рд┐рд╕рдкреЛрд░реНрдЯ} ----- [рдИрдПрд▓рдмреА
    рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ] ---------> {рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ, рд╕реЗ:
    endpointServiceIP:podPort} -> рдореЗрдЬрдмрд╛рди рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ
  • рдкреЙрдб рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░реЗрдВ: {рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ, рдЯреВ: рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕рд░реНрд╡рд┐рд╕рдЖрдИрдкреА: рдкреЙрдбрдкреЛрд░реНрдЯ} - [рдорд╛рдирдХ
    рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд░реВрдЯрд┐рдВрдЧ] -> {рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ , рд╕реЗ:
    рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕рд░реНрд╡рд┐рд╕рдЖрдИрдкреА:рдкреЙрдбрдкреЛрд░реНрдЯ }

  • рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЙрдб: {рд╕реЗ: рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕рд░реНрд╡рд┐рд╕рдЖрдИрдкреА: рдкреЙрдбрдкреЛрд░реНрдЯ, рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ}
    -------- [рд░рд╛рдЙрдЯрд░ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд░реВрдЯрд┐рдВрдЧ]-----> {рд╕реЗ:
    рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕рд░реНрд╡рд┐рд╕рдЖрдИрдкреА: рдкреЙрдбрдкреЛрд░реНрдЯ, рдЯреВ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ} - рд╣реЛрд╕реНрдЯ рдЯреВ рдПрдХреНрд╕рдЯрд░реНрдирд▓: {рд╕реЗ: рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕рд░реНрд╡рд┐рд╕рдЖрдИрдкреА: рдкреЙрдбрдкреЛрд░реНрдЯ, рдЯреВ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ} -------- [рдИрдПрд▓рдмреА
    SNATs рд╡рд╛рдкрд╕]------------------> {рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ , рд╕реЗ:
    рдИ xternalIP:servicePort } ```

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдпрд╣ рдХрд╛рдо рдХреНрд▓рд╕реНрдЯрд░рдЖрдИрдкреА рдХреЗ рд▓рд┐рдП рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
``````

рдореИрдВ рдЬреАрд╕реАрдИ рдкрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдФрд░ рдореБрдЭреЗ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ - рдПрдХ рд╣реИ
рдЙрдкрд▓рдмреНрдз рд╕реНрдерд┐рд░ рдорд╛рд░реНрдЧреЛрдВ рдХреА рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╣реА рдореЗрдВ 2 рдЖрдИрдкреА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдкрд┐рдЧреНрдЧреАрдмреИрдХ рдХрд░рдХреЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдорд╛рд░реНрдЧред рдпрд╣ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЖрдИрдкреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдпреВрдбреАрдкреА рдХреЗ рд▓рд┐рдП рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред
рдореБрдЭреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИред
рдЖрдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╣рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдЖрдИрдкреА рдЬреЛрдбрд╝рдирд╛/рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛
рдФрд░ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХрд╛рдо рдореЗрдВ "рдЕрддрд┐рд░рд┐рдХреНрдд" рдЖрдИрдкреА рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛ (рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рдерд╛
рдкрд┐рдВрдЧ рд▓реЗрдХрд┐рди рдЯреАрд╕реАрдкреА рдпрд╛ рдпреВрдбреАрдкреА рдирд╣реАрдВ, рдпрдХреАрди рдирд╣реАрдВ рдХреНрдпреЛрдВ)ред

рдореБрдЭреЗ рдлрд┐рд░ рдХрднреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рд╣реЛрдЧреАред

рд╕реВрд░реНрдп, 17 рдЬрдирд╡рд░реА 2016 рдХреЛ рд░рд╛рдд 10:22 рдмрдЬреЗ, рдорд┐рдХрд╛рдПрд▓ рдХреНрд▓реВрд╕реЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

01/18/2016 рдХреЛ 04:18 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, рдорд┐рдХреЗрд▓ рдХреНрд▓реВрд╕реЛ рдиреЗ рд▓рд┐рдЦрд╛:

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдПрд╕рдбреАрдПрди рдХреЛ рдХреБрдЫ рдРрд╕рд╛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред
рд╢рд╛рдпрдж рдПрдордкреАрдПрд▓рдПрд╕ рдЬреИрд╕реЗ рд▓реЗрдмрд▓-рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди ..?

рдЪреАрдЬреЛрдВ рдХреЛ рд▓реЗрдмрд▓ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ... рдпрджрд┐ рд╣рдо рдкреНрд░рддрд┐ рд╕реЗрд╡рд╛ рдПрдХ рдЖрдИрдкреА + рдПрдХ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ
рдЖрдИрдкреА тАЛтАЛрдкреНрд░рддрд┐ рдПрдВрдбрдкреЙрдЗрдВрдЯ (рд╕реЗрд╡рд╛ + рдкреЙрдб рдпреБрдЧрд▓), рдФрд░ рдЗрди рдПрдВрдбрдкреЙрдЗрдВрдЯ рдЖрдИрдкреА рдХреЛ рдЬреЛрдбрд╝реЗрдВ
рдкреЙрдбреНрд╕, рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

``````

  • рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА: {рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ, рд╕реЗ: рдмрд╛рд╣рд░реА рдЖрдИрдкреА: рд╕рд░реНрд╡рд┐рд╕рдкреЛрд░реНрдЯ}
    -----[рдИрдПрд▓рдмреА
    рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ] ---------> {рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ, рд╕реЗ:
    endpointServiceIP:podPort} -> рдореЗрдЬрдмрд╛рди рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ
  • рдкреЙрдб рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░реЗрдВ: {рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ, рд╕реЗ: рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕рд░реНрд╡рд┐рд╕рдЖрдИрдкреА: рдкреЙрдбрдкреЛрд░реНрдЯ}
    --[рдорд╛рдирдХ
    рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд░реВрдЯрд┐рдВрдЧ] -> {рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ , рд╕реЗ:
    рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕рд░реНрд╡рд┐рд╕рдЖрдИрдкреА:рдкреЙрдбрдкреЛрд░реНрдЯ }

  • рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЙрдб: {рд╕реЗ: рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕рд░реНрд╡рд┐рд╕рдЖрдИрдкреА: рдкреЙрдбрдкреЛрд░реНрдЯ, рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ}
    -------- [рд░рд╛рдЙрдЯрд░ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд░реВрдЯрд┐рдВрдЧ]-----> {рд╕реЗ:
    рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕рд░реНрд╡рд┐рд╕рдЖрдИрдкреА:рдкреЙрдбрдкреЛрд░реНрдЯ, рдЯреВ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА:рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ} - рд╣реЛрд╕реНрдЯ рдЯреВ
    рдмрд╛рд╣рд░реА: {рд╕реЗ: рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕рд░реНрд╡рд┐рд╕рдЖрдИрдкреА: рдкреЙрдбрдкреЛрд░реНрдЯ, рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ}
    --------[рдИрдПрд▓рдмреА
    SNATs рд╡рд╛рдкрд╕]------------------> {рд╕реЗ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдкреА: рдХреНрд▓рд╛рдЗрдВрдЯрдкреЛрд░реНрдЯ , рд╕реЗ:
    рдИ xternalIP:servicePort } ```

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдпрд╣ рдХрд╛рдо рдХреНрд▓рд╕реНрдЯрд░рдЖрдИрдкреА рдХреЗ рд▓рд┐рдП рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment-172438133
.

``````

рдореИрдВ рдХреБрдЫ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рддрд░рдл рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рд╣реЛрд╕реНрдЯ рдкрд░ рд╢реБрджреНрдз рдиреЗрдЯрдиреНрд╕ рдХреЗ рд╕рд╛рде)
рдЕрднреА рдХреЗ рд▓рд┐рдП)ред

рдореИрдВ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдореИрдВ рд╕реЗрд╡рд╛ рдЖрдИрдкреА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ
рд░реВрдЯрд┐рдВрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░реЗрдВ:

рдХреНрд▓реА -- рдПрд▓реНрдм -- h1 -- c1

| `--- c2

`--- h2 -- c2

h1_ep_ip_ranges=( 10.1.1.0/24 10.1.2.0/24 )
h2_ep_ip_ranges=( 10.1.3.0/24 )

рдХреЛрдИ рдкрд┐рдВрдЧ рдПрдЯреАрдПрдо рдирд╣реАрдВ (рдкреИрдХреЗрдЯ рдЬреЛ PREROUTING рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░ рд░рд╣реЗ рд╣реИрдВ...), рдФрд░
рд╕реЛрдиреЗ рдХреА рдЬрд░реВрд░рддред рдЗрд╕ рдкрд░ рдХрд▓;)

01/18/2016 06:28 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

рдореИрдВ рдЬреАрд╕реАрдИ рдкрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдФрд░ рдореБрдЭреЗ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ - рдПрдХ рд╣реИ
рдЙрдкрд▓рдмреНрдз рд╕реНрдерд┐рд░ рдорд╛рд░реНрдЧреЛрдВ рдХреА рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╣реА рдореЗрдВ 2 рдЖрдИрдкреА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдкрд┐рдЧреНрдЧреАрдмреИрдХ рдХрд░рдХреЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдорд╛рд░реНрдЧред рдпрд╣ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЖрдИрдкреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдпреВрдбреАрдкреА рдХреЗ рд▓рд┐рдП рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред
рдореБрдЭреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИред
рдЖрдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╣рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдЖрдИрдкреА рдЬреЛрдбрд╝рдирд╛/рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛
рдФрд░ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХрд╛рдо рдореЗрдВ "рдЕрддрд┐рд░рд┐рдХреНрдд" рдЖрдИрдкреА рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛ (рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рдерд╛
рдкрд┐рдВрдЧ рд▓реЗрдХрд┐рди рдЯреАрд╕реАрдкреА рдпрд╛ рдпреВрдбреАрдкреА рдирд╣реАрдВ, рдпрдХреАрди рдирд╣реАрдВ рдХреНрдпреЛрдВ)ред

рдореБрдЭреЗ рдлрд┐рд░ рдХрднреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рд╣реЛрдЧреАред

рдореИрдВ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдРрд╕рд╛ рд╣реБрдЖ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдереАред

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдореБрдЦреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ 10.244.2.8/25 рдФрд░ 10.244.2.250/25 рдХреЗ рд╕рд╛рде рдПрдХ рдкреЙрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛
рдЗрд╕рдХреЗ "рдЗрди-рдП-рд╕рд░реНрд╡рд┐рд╕" рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВред рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдореИрдВ рдпреВрдбреАрдкреА рднреЗрдЬ рд╕рдХрддрд╛ рд╣реВрдВ
.250 рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ, рдЙрдиреНрд╣реЗрдВ SNAT рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХ рд╣реИ
рдЙрд╕реА рдореЗрдВ рдирд╣реАрдВ /25 (рдЬреЛ рдпрд╣ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рд░реНрдЧ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ
.8 рдкрддреЗ рд╕реЗ рдЖрддрд╛ рд╣реИред tcpdump рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ .8 . рд╕реЗ рдЖрддреА рд╣реИрдВ
рдпреВрдбреАрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордпред

рдореИрдВ рдлрд┐рд░ рд╕реЗ рдПрдХ рдРрд╕реА рдЬрдЧрд╣ рдкрд░ рд╣реВрдВ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рд╕реЛрдЪреЗрдВрдЧреЗ
рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХред

рд╕реЛрдо, 18 рдЬрдирд╡рд░реА, 2016 рдХреЛ рджреЛрдкрд╣рд░ 2:59 рдмрдЬреЗ, рдорд┐рдХрд╛рдПрд▓ рдХреНрд▓реВрд╕реЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдореИрдВ рдХреБрдЫ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рддрд░рдл рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рд╣реЛрд╕реНрдЯ рдкрд░ рд╢реБрджреНрдз рдиреЗрдЯрдиреНрд╕ рдХреЗ рд╕рд╛рде)
рдЕрднреА рдХреЗ рд▓рд┐рдП)ред

рдореИрдВ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдореИрдВ рд╕реЗрд╡рд╛ рдЖрдИрдкреА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ
рд░реВрдЯрд┐рдВрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░реЗрдВ:

рдХреНрд▓реА -- рдПрд▓реНрдм -- h1 -- c1

| `--- c2

`--- h2 -- c2

h1_ep_ip_ranges=( 10.1.1.0/24 10.1.2.0/24 )
h2_ep_ip_ranges=( 10.1.3.0/24 )

рдХреЛрдИ рдкрд┐рдВрдЧ рдПрдЯреАрдПрдо рдирд╣реАрдВ (рдкреИрдХреЗрдЯ рдЬреЛ PREROUTING рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░ рд░рд╣реЗ рд╣реИрдВ...), рдФрд░
рд╕реЛрдиреЗ рдХреА рдЬрд░реВрд░рддред рдЗрд╕ рдкрд░ рдХрд▓;)

01/18/2016 06:28 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

рдореИрдВ рдЬреАрд╕реАрдИ рдкрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдФрд░ рдореБрдЭреЗ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ - рдПрдХ рд╣реИ
рдЙрдкрд▓рдмреНрдз рд╕реНрдерд┐рд░ рдорд╛рд░реНрдЧреЛрдВ рдХреА рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ 2 рдЖрдИрдкреА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдкрд┐рдЧреНрдЧреАрдмреИрдХ рдХрд░рдХреЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдПрдХ
рдорд╛рд░реНрдЧред рдпрд╣ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЖрдИрдкреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдпреВрдбреАрдкреА рдХреЗ рд▓рд┐рдП рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред
рдореБрдЭреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ
рдХреБрдЫред
рдЖрдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╣рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдЖрдИрдкреА рдЬреЛрдбрд╝рдирд╛/рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛
рдФрд░ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХрд╛рдо рдореЗрдВ "рдЕрддрд┐рд░рд┐рдХреНрдд" рдЖрдИрдкреА рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛ (рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рдерд╛
рдкрд┐рдВрдЧ рд▓реЗрдХрд┐рди рдЯреАрд╕реАрдкреА рдпрд╛ рдпреВрдбреАрдкреА рдирд╣реАрдВ, рдпрдХреАрди рдирд╣реАрдВ рдХреНрдпреЛрдВ)ред

рдореБрдЭреЗ рдлрд┐рд░ рдХрднреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рд╣реЛрдЧреАред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -172497456
.

рдпрд╣ рдореБрдЭ рдкрд░ (рдЕрднрд┐рд╖реЗрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдЖрддрд╛ рд╣реИ рдХрд┐ рднрд▓реЗ рд╣реА рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реЛ, рд╣рдореЗрдВ рдЕрднреА рднреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдЯреНрд░реИрдХ рдХрд╣реАрдВ рдмрд╣рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдВрдд рдореЗрдВ рд╡реИрд╕реЗ рднреА рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдирд╣реАрдВ рд╣реИред

рд╕реЛрдо, 18 рдЬрдирд╡рд░реА, 2016 рдХреЛ рд░рд╛рдд 9:50 рдмрдЬреЗ, рдЯрд┐рдо рд╣реЛрдХрд┐рди [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

рдореИрдВ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдРрд╕рд╛ рд╣реБрдЖ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдереАред

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдореБрдЦреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ 10.244.2.8/25 рдХреЗ рд╕рд╛рде рдПрдХ рдкреЙрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдФрд░
10.244.2.250/25 рдЗрд╕рдХреЗ "рдЗрди-рдП-рд╕рд░реНрд╡рд┐рд╕" рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВред рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдореИрдВ
рдпреВрдбреАрдкреА рдХреЛ .250 рдкрд░ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдПрд╕рдПрдирдПрдЯреА рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ,
рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХ рдЙрд╕реА /25 рдореЗрдВ рдирд╣реАрдВ рд╣реИ (рдЬреЛ рдпрд╣ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛) рдбрд┐рдлрд╝реЙрд▓реНрдЯ
рдорд╛рд░реНрдЧ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ .8 рдкрддреЗ рд╕реЗ рдЖрддрд╛ рд╣реИред tcpdump рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐
рдпреВрдбреАрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ .8 рд╕реЗ рдЖрддреА рд╣реИрдВред

рдореИрдВ рдлрд┐рд░ рд╕реЗ рдПрдХ рдРрд╕реА рдЬрдЧрд╣ рдкрд░ рд╣реВрдВ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рд╕реЛрдЪреЗрдВрдЧреЗ
рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХред

рд╕реЛрдо, 18 рдЬрдирд╡рд░реА, 2016 рдХреЛ рджреЛрдкрд╣рд░ 2:59 рдмрдЬреЗ, рдорд┐рдХрд╛рдПрд▓ рдХреНрд▓реВрд╕реЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдореИрдВ рдХреБрдЫ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рддрд░рдл рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рд╣реЛрд╕реНрдЯ рдкрд░ рд╢реБрджреНрдз рдиреЗрдЯрдиреНрд╕ рдХреЗ рд╕рд╛рде)
рдЕрднреА рдХреЗ рд▓рд┐рдП)ред

рдореИрдВ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдореИрдВ рд╕реЗрд╡рд╛ рдЖрдИрдкреА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ
рд░реВрдЯрд┐рдВрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░реЗрдВ:

рдХреНрд▓реА -- рдПрд▓реНрдм -- h1 -- c1

| `--- c2

`--- h2 -- c2

h1_ep_ip_ranges=( 10.1.1.0/24 10.1.2.0/24 )
h2_ep_ip_ranges=( 10.1.3.0/24 )

рдХреЛрдИ рдкрд┐рдВрдЧ рдПрдЯреАрдПрдо рдирд╣реАрдВ (рдкреИрдХреЗрдЯ рдЬреЛ PREROUTING рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░ рд░рд╣реЗ рд╣реИрдВ...), рдФрд░
рд╕реЛрдиреЗ рдХреА рдЬрд░реВрд░рддред рдЗрд╕ рдкрд░ рдХрд▓;)

01/18/2016 06:28 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, рдЯрд┐рдо рд╣реЛрдХрд┐рди рдиреЗ рд▓рд┐рдЦрд╛:

рдореИрдВ рдЬреАрд╕реАрдИ рдкрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдФрд░ рдореБрдЭреЗ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ - рдПрдХ рд╣реИ
рдЙрдкрд▓рдмреНрдз рд╕реНрдерд┐рд░ рдорд╛рд░реНрдЧреЛрдВ рдХреА рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ 2 рдЖрдИрдкреА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдкрд┐рдЧреНрдЧреАрдмреИрдХ рдХрд░рдХреЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдПрдХ
рдорд╛рд░реНрдЧред рдпрд╣ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЖрдИрдкреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдпреВрдбреАрдкреА рдХреЗ рд▓рд┐рдП рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред
рдореБрдЭреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ
рдХреБрдЫред
рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╣рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдЖрдИрдкреА рдЬреЛрдбрд╝рдирд╛/рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛
рдЖрдЧрд╛рдореА
рдФрд░ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХрд╛рдо рдореЗрдВ "рдЕрддрд┐рд░рд┐рдХреНрдд" рдЖрдИрдкреА рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛ (it
рд╕рдХрддрд╛ рд╣реИ
рдкрд┐рдВрдЧ рд▓реЗрдХрд┐рди рдЯреАрд╕реАрдкреА рдпрд╛ рдпреВрдбреАрдкреА рдирд╣реАрдВ, рдпрдХреАрди рдирд╣реАрдВ рдХреНрдпреЛрдВ)ред

рдореБрдЭреЗ рдлрд┐рд░ рдХрднреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рд╣реЛрдЧреАред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -172497456
.

рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ :-( рдпрдХреАрди рдирд╣реАрдВ рдХреНрдпреЛрдВ рд╡реИрд╕реЗред рдореИрдВ рдПрдордкреАрдПрд▓рдПрд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдореИрдВ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП 2 рдмреИрдХрдПрдВрдб рд╣реИрдВ рдФрд░ рдЖрдк рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдкреИрдХреЗрдЯ, рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣реИ рдирд╛? рдпрд╛ рдЖрдк рд╣реИрдВ
рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреИрдХрдПрдВрдб рдкрд░ рдкреИрдХреЗрдЯ рд╕реНрдкреНрд░реЗ рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ?

рдмреБрдз, 20 рдЬрдирд╡рд░реА 2016 рдХреЛ рджреЛрдкрд╣рд░ 12:24 рдмрдЬреЗ, рдорд┐рдХрд╛рдПрд▓ рдХреНрд▓реВрд╕реЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ :-( рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВред рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛
рдПрдордкреАрдПрд▓рдПрд╕ рддреЛ, рдореИрдВ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -173348973
.

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреВрдбреАрдкреА рд╡рд░реНрдХрд▓реЛрдб рдХреЗ рд▓рд┐рдП, рд╣рд╛рдБред рдпреВрдбреАрдкреА рдХреЗ рд▓рд┐рдП рднреА рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдЬрд╛рдирд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред @qoke рдЗрд╕ рдкрд░ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА?

рд╕рд╛рде рд╣реА, рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рд╣реИрд╢рд┐рдВрдЧ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдмрдХрд┐ рдЕрднреА рднреА рд╕рдВрддреБрд▓рд┐рдд рд╣реИ (рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╣рдо рдЗрд╕реЗ "рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЯреНрд░реИрдХрд┐рдВрдЧ" :-) рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ)ред

@MikaelCluseau рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ

рдпреВрдбреАрдкреА рдбреЗрдЯрд╛рдЧреНрд░рд╛рдо рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдИрдкреАрд╡реАрдПрд╕ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдпреВрдбреАрдкреА рдбреЗрдЯрд╛рдЧреНрд░рд╛рдо рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдпреВрдбреАрдкреА рдЯрд╛рдЗрдордЖрдЙрдЯ 300 рд╕реЗрдХрдВрдб рд╣реИред рдпреВрдбреАрдкреА рдХрдиреЗрдХреНрд╢рди рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╣реА рд╕реЙрдХреЗрдЯ (рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдФрд░ рдкреЛрд░реНрдЯ) рд╕реЗ рд╕рднреА рдпреВрдбреАрдкреА рдбреЗрдЯрд╛рдЧреНрд░рд╛рдо рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

-- http://kb.linuxvirtualserver.org/wiki/IPVS . рд╕реЗ рдЙрджреНрдзрд░рд┐рдд

рдмреЗрд╢рдХ, рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕реЗрд╡рд╛ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реЛрдВ, рдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрд░реЛрдд рдкреЛрд░реНрдЯ рд╡рд╛рд▓реЗ рдПрдХрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реЛрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдЙрдЪреНрдЪ-рдорд╛рддреНрд░рд╛ рд╡рд╛рд▓рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИ, рд╕рднреА рдПрдХ рд╣реА рд╕реНрд░реЛрдд рдкреЛрд░реНрдЯ рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдЗрд╕реЗ рдХрдИ рдмреИрдХрдПрдВрдб рдкрд░ рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрдЯреЗрдЯрд▓реЗрд╕/рд╕реНрдкреНрд░реЗ-рдПрдВрдб-рдкреНрд░рд╛рд░реНрдердирд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдмрд╣реБрдд рд╕рд╛рд░реЗ DNS рдФрд░ RADIUS рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ - DNS рдЖрдорддреМрд░ рдкрд░ рдкрд╣рд▓реА рд╢реНрд░реЗрдгреА рдореЗрдВ рдЖрддрд╛ рд╣реИ (рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреНрд▓рд╛рдЗрдВрдЯ, рдпрд╛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реЛрд░реНрд╕ рдкреЛрд░реНрдЯ рд╡рд╛рд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ), рдФрд░ RADIUS рдЖрдорддреМрд░ рдкрд░ рдмрд╛рдж рдХреА рд╢реНрд░реЗрдгреА рдореЗрдВ рдЖрддрд╛ рд╣реИ (рдХреБрдЫ рдХреНрд▓рд╛рдЗрдВрдЯ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреИрдХреЗрдЯ рд╕рднреА рд╕реЗ рдПрдХ рд╣реА рдЖрдИрдкреА/рдкреЛрд░реНрдЯ)ред RADIUS рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╣рдордиреЗ рдПрдХ рд╕рдорд╛рди рдкреНрд░рд╕рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдкреЛрд░реНрдЯ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рдкреВрд░реЗ рдзрд╛рдЧреЗ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдореИрдВ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рдХрд┐ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП iptables рдореЛрдб рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рд╕реЗ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдХреЗ рдЫрд┐рдкреЗ рд╣реЛрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ (#10921) рдареАрдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдордиреЗ v1.1 рдХреЗ рд╕рд╛рде iptables рдореЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣рдо рдЕрднреА рднреА рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдЖрдИрдкреА рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╣реАрдВред

рд╣рдорд╛рд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ GCE рдореЗрдВ рд╣реИ рдФрд░ рд▓рд╛рдЗрд╡ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдХреЗрд╡рд▓ HTTPS рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЬреАрд╕реАрдИ v.1.2 рдЕрд▓реНрдлрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдирдП рдЗрдирдЧреНрд░реЗрдб (рдЬреЛ AFAIK HTTPS рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░реНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╣реА рд╣рдорд╛рд░рд╛ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдИрдкреА рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдмрд┐рдирд╛ рд▓рд╛рдЗрд╡ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред

рдЗрд╕ рдкрд░ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП HTTPS рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рдХрд╛рдлреА рд╕рдордп рд╕реЗ iptables рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдЕрднреА рднреА рдЫрд┐рдкреЗ рд╣реБрдП рд╣реИрдВ/рдХреНрд▓рд╕реНрдЯрд░ рдЖрдИрдкреА рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред

рд╣рдордиреЗ рд╣реЛрд╕реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдореЛрдб рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣рдорд╛рд░реЗ рдлреНрд░рдВрдЯрдПрдВрдб HTTP/HTTPS рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдЪрд▓рд╛рдХрд░ рдЕрдм рддрдХ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрд░реЛрдд рдЖрдИрдкреА рдкрддрд╛ рджреЗрдЦ рд╕рдХреЗред

@maclof рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдХрд╛рдордХрд╛рдЬ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рд╣реЛрд╕реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдЖрдкрдХреЗ HTTP/HTTPS рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ?

@javiercr рд╣рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреЙрдб рд╕реНрдкреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ: http://pastie.org/private/zpdelblsob654zif7xus5g

рд╣реЛрд╕реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреЙрдб рдХреНрд▓рд╕реНрдЯрд░ IP рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рд╣рдорд╛рд░рд╛ nginx рд╕рд░реНрд╡рд░ 80/443 рдкреЛрд░реНрдЯ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ рддреЛ рд╡рд╣ рд╣реЛрд╕реНрдЯ рдЖрдИрдкреА рдкрд░ рд╕реБрдиреЗрдЧрд╛ рдФрд░ рд╕реНрд░реЛрдд рдЖрдИрдкреА рдкрддреЗ рджреЗрдЦреЗрдЧрд╛ред

рдореИрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.1, /opt/bin/kube-proxy ... --proxy-mode=iptables --masquerade-all=false рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╡рд╛рд▓реЗ рд╣реЛрд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓реВрд╕рд░ рдЖрдИрдкреА рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд░реВрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕ рд╕реЗрдЯрдЕрдк рдореЗрдВ, рдореЗрд░реА рд╕реЗрд╡рд╛рдПрдВ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рджреЗрдЦ рд░рд╣реА рд╣реИрдВред рдореИрдВ рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рдЙрдкрд▓рдмреНрдз рдиреЗрдЯрд╡рд░реНрдХ рдиреЗрдорд╕реНрдкреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдФрд░ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рд╣реИ:

I0221 01:20:32.695440       1 main.go:224] <A6GSXEKN> Connection from 202.22.xxx.yyy:51954 closed.

рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкрдврд╝рдХрд░ рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдЦрд╛ рд╣реИ!

рдПрдлрд╡рд╛рдИрдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдИрдПрд▓рдмреА рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ http/https рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/how-elb-works.html# рдЕрдиреБрд░реЛрдз - рд░реВрдЯрд┐рдВрдЧ

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдХреЗрд╡рд▓ рдкреЙрдб рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдкреЙрдбреНрд╕ рдХреА рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрдЪреНрдЫрд╛ рдкрдХреНрд╖ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рдХрдо рдиреЛрдб-рдЯреВ-рдиреЛрдб рдЯреНрд░реИрдлрд╝рд┐рдХ рд╣реЛрдЧрд╛ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛ рд╕реЗ рдкреЙрдб рддрдХ рд╣рдореЗрд╢рд╛ рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдиреАрдп рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ рд╡рд┐рд▓рдВрдмрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИ (рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдиреЛрдбреНрд╕ рд╣реИрдВ рддреЛ рдФрд░ рднреА рдЕрдзрд┐рдХ рд▓рд╛рдн рд╣реЛрддрд╛ рд╣реИ рдореЗрдВ рдПрдХ рд╣реА рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░)ред

рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреЛ рднрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдПрдХ рдиреЛрдб рдкрд░ рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреЙрдбреНрд╕ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдХреЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрджрд┐ рдкреНрд░рддрд┐ рдиреЛрдб 1 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ) рдФрд░ рдлрд┐рд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рдЙрдиреНрд╣реЗрдВ, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдорддрд▓рдм рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдиреЛрдб рд╕реЗ рдкреЙрдбреНрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛ рдФрд░ рдХреЗрд╡рд▓ рдХреБрдЫ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреА рдЧрдгрдирд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╕реЗ рдЬреБрдбрд╝реА рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде 4 рдиреЛрдб рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рдкреЙрдб рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рдПрдХрдорд╛рддреНрд░ рд╕рдВрдЦреНрдпрд╛ 1,2,3,4,6,8,9,12,16,20, рдЖрджрд┐ рд╣реЛрдЧреАред

рд╣рдо рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдпрд╛рддрд╛рдпрд╛рдд рдХреЗ рд▓рд┐рдП рднреА рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣ рд░рд╣реЗ рд╣реИрдВред рдЬрдм рдиреЛрдбрдкреЛрд░реНрдЯ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдиреЛрдбрдкреЛрд░реНрдЯ рдкрд░ рдиреЛрдб рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдореИрдВ рдареАрдХ рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдЯреАрд╕реАрдкреА рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЙрди рдиреЛрдбреНрд╕ рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХреЗрдЧреАред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдЗрд╕рдХреЗ iptables\kube-proxy рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рдЬрдм рдкреЙрдбреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рдВрддреБрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреЗ рдирд┐рд╣рд┐рддрд╛рд░реНрде рдХреНрдпрд╛ рд╣реЛрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб w/рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╡рдЬрди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░реНрд╕ рдкрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред

рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреНрдп рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ w/рдЗрд╕ рдХрд╛ рд╕реМрджрд╛ рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рде рд╣реА, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдИ рдЬрд╛ рд░рд╣реА рд╕реЗрд╡рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рдХрд░ рд░рд╣реА рд╣реИ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 2x рдпрд╛рддрд╛рдпрд╛рдд рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдПрдХ рдиреЛрдб рдкрд░ 2 рдкреЙрдб рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реАрдорд╛рдПрдБ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рдпрджрд┐ рдкреЙрдбрдиреЛрдб рдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдЕрдзрд┐рдХрддрдо рд╕реНрддрд░ рддрдХ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рддреЛ рдпрд╣ рднреА рдЦреЗрд▓ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдмрд╛рд╣рд░реА рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдкрд░ рд╕рд╣реА рд╡рдЬрди рд╕реЗрдЯрд┐рдВрдЧ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдПрдХ рдФрд░ рдкрд░рдд рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдореИрдВ рдХрд╣реВрдВрдЧрд╛, рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдЙрд╕ рд╕реНрддрд░ рд╕реЗ рджреВрд░ рд░рд╣реЗрдВ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╡рдЬрди рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗрдВред

@yoshiwaan рдХреНрдпрд╛ рдореИрдВ рдЗрдВрдЯрд░-рдиреЛрдб рдЯреНрд░реИрдлрд┐рдХ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЕрдм рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд╣рд▓рд╛ рдХрджрдо рд╣реЛрдЧрд╛ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рдиреЛрдб рдкрд░ _if_ рдПрдХ рдкреЙрдб рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рд╕реНрдерд╛рдиреАрдп рдкреЙрдб рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рддрдм рдЖрдк рдЕрдкрдиреЗ рдЖрд░рд╕реА рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ рдкреЙрдб рд╣реЛрдВред

@justinsb +1, рд╣рдо рднреА рдЕрдм рдПрдХ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реИред

рдпрд╣ рдмрд╣реБрдд рднреЛрд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдлрд┐рд░ рднреА рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпреВрдЬрд░рд╕реНрдкреЗрд╕ рдореЛрдб рдФрд░ iptables рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ? рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реЗ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ред

рдпреВрдЬрд░рд▓реИрдВрдб рдореЛрдб рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЙрдХреЗрдЯ рдЦреЛрд▓рдХрд░ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЬреЛ (1) рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реАрдкреАрдпреВ рдФрд░ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ (2) рдкреЛрд░реНрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдЦреБрд▓рд╛ (<65k)ред iptables рдореЛрдб рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХрдиреЗрдХреНрд╢рди рдЯреНрд░реИрдХрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╣рд▓реНрдХрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ*ред

(рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ) (*) рдЬрдм рддрдХ рдЖрдк SNAT рдкреИрдХреЗрдЯ рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯрдЕрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрдХреАрди рд╣реИ рдХрд┐ рдкреИрдХреЗрдЯ рдЙрдирдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдХрдиреЗрдХреНрд╢рди рдЯреНрд░реИрдХрд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░ рдЬрд╛рдПрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реВрдЯреЗрдб рдПрдХреНрд╕реЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк SNAT рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛ рдХрд╛ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ IP рджреЗрдЦреЗрдЧрд╛ред

@MikaelCluseau
рдЕрд░реНрде рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗрд╡рд▓ iptables рдирд┐рдпрдореЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдФрд░ рдЕрдм рд╣рдореЗрдВ iptables рдореЛрдб рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реНрдерд╛рдиреАрдп рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рд╣реИ рдирд╛?

04/19/2016 рдХреЛ 10:51 рдЕрдкрд░рд╛рд╣реНрди, рдПрдореНрдорд╛ рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рд┐рдЦрд╛:

рдЕрд░реНрде рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗрд╡рд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ
iptables рдФрд░ рдЕрдм рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реНрдерд╛рдиреАрдп рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ
iptables рдореЛрдб, рд╣реИ рдирд╛?

рд╣рд╛рдВред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдмрд┐рд▓реНрдХреБрд▓ рдЪреВрдХ рдЧрдпрд╛ рдерд╛ред

(рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ) (*) рдЬрдм рддрдХ рдЖрдк SNAT рдкреИрдХреЗрдЯ рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯрдЕрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрдХреАрди рд╣реИ рдХрд┐ рдкреИрдХреЗрдЯ рдЙрдирдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдХрдиреЗрдХреНрд╢рди рдЯреНрд░реИрдХрд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░ рдЬрд╛рдПрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реВрдЯреЗрдб рдПрдХреНрд╕реЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк SNAT рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛ рдХрд╛ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ IP рджреЗрдЦреЗрдЧрд╛ред

@MikaelCluseau рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ iptables SNAT рдФрд░ DNAT рдХреЛ рдЕрдкрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рдЕрдиреБрд╕рд╛рд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

04/20/2016 рдХреЛ 01:59 рдЕрдкрд░рд╛рд╣реНрди, рдПрдореНрдорд╛ рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рд┐рдЦрд╛:

@MikaelCluseau https://github.com/MikaelCluseau рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛
iptables SNAT рдФрд░ DNAT рдХреЛ рдЕрдкрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рдЕрдиреБрд╕рд╛рд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

(1) рд╕реЗрд╡рд╛/рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдПрдирдПрдЯреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
(2) рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЙрддреНрддрд░ рдкреИрдХреЗрдЯ рдЙрд╕реА рдХреЙрдиреНрдЯреНрд░реИрдХ рд╕реЗ рдЧреБрдЬрд░реЗрдВрдЧреЗ
рдирд┐рдпрдо (рдпрд╛рдиреА, рдПрдХ рд╣реА рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреИрдХ рдпрд╛ рдПрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЙрдирдЯреНрд░реИрдХ рдЯреЗрдмрд▓), рдЖрдк
SNAT рднрд╛рдЧ (рдпрд╛рдиреА, MASQUERADE рдирд┐рдпрдо) рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд░реВрдЯреЗрдб рдПрдХреНрд╕реЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ (2) рдХреА рд╕реНрдерд┐рддрд┐ рдЖрдорддреМрд░ рдкрд░ рдареАрдХ рд╣реЛрддреА рд╣реИ
(рдЬреЛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдбрд┐рдЬрд╛рдЗрди рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ)ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджрд┐рдпрд╛ рдЧрдпрд╛

  • рдПрдХ рдЧреНрд░рд╛рд╣рдХ 1.0.1.1,
  • рдПрдХ рд╕реЗрд╡рд╛ 1.0.2.1,
  • 1.0.3.1 рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдкреЙрдбред

рдлрд┐рд░,

  1. рдЖрдкрдХрд╛ рд░рд╛рдЙрдЯрд░/рдлрд╝рд╛рдпрд░рд╡реЙрд▓/рд▓реЛрдбрдмреИрд▓реЗрдВрд╕рд░/рд╣реЛрд╕реНрдЯ/рдЬреЛ рднреА рдПрдХ рдкреИрдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ
    рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рддреЛ рдпрд╣ рдПрдХ рдкреИрдХреЗрдЯ "1.0.1.1 -> 1.0.2.1" рджреЗрдЦрддрд╛ рд╣реИ;
  2. рдпрд╣ рдЗрд╕реЗ рдПрдВрдбрдкреЙрдЗрдВрдЯ (рдкреЙрдб) рдкрд░ рдбреАрдПрдирдП рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдкреИрдХреЗрдЯ "1.0.1.1 -> . рд╣реЛрдЧрд╛
    1.0.3.1" рдХреНрд▓рд╕реНрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ;
  3. рдкреЙрдб "1.0.3.1 -> 1.0.1.1" рдкреИрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ;
  4. рдкреИрдХреЗрдЯ рд░рд╛рдЙрдЯрд░/рдлрд╝рд╛рдпрд░рд╡реЙрд▓/рд▓реЛрдбрдмреИрд▓реЗрдВрд╕рд░/рд╣реЛрд╕реНрдЯ/рдЬреЛ рдХреБрдЫ рднреА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
    рдХреЙрдирдЯреНрд░реИрдХ рдирд┐рдпрдо рд╣реЛрдиреЗ рдкрд░, рдХреЙрдирдЯреНрд░реИрдХ рд╕рд┐рд╕реНрдЯрдо рдкреИрдХреЗрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИ
    рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╡рд╛рдкрд╕ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ "1.0.2.1 -> 1.0.1.1" рдкрд░ред

рдпрджрд┐ (2) рдХреА рд╢рд░реНрдд рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ SNAT/MASQUERADING . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреИрдХреЗрдЯ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдЧрд╛
рд░рд╛рдЙрдЯрд░/рдлрд╝рд╛рдпрд░рд╡реЙрд▓/рд▓реЛрдбрдмреИрд▓реЗрдВрд╕рд░/рд╣реЛрд╕реНрдЯ/рдЬреЛ рднреА рдХреЙрдиреНрдЯреНрд░реИрдХ рд╣реИред

@MikaelCluseau - google.com рдкрд░ рдореЗрд░реЗ
рдХреБрдЫ рддреБрдореНрд╣рд╛рд░реЗ рд▓рд┐рдпреЗ

рдордВрдЧрд▓рд╡рд╛рд░, 19 рдЕрдкреНрд░реИрд▓, 2016 рдХреЛ рд░рд╛рдд 8:20 рдмрдЬреЗ, рдорд┐рдХрд╛рдПрд▓ рдХреНрд▓реВрд╕реЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

04/20/2016 рдХреЛ 01:59 рдЕрдкрд░рд╛рд╣реНрди, рдПрдореНрдорд╛ рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рд┐рдЦрд╛:

@MikaelCluseau https://github.com/MikaelCluseau рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛
iptables SNAT рдФрд░ DNAT рдХреЛ рдЕрдкрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рдЕрдиреБрд╕рд╛рд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

(1) рд╕реЗрд╡рд╛/рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдПрдирдПрдЯреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
(2) рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЙрддреНрддрд░ рдкреИрдХреЗрдЯ рдЙрд╕реА рдХреЙрдиреНрдЯреНрд░реИрдХ рд╕реЗ рдЧреБрдЬрд░реЗрдВрдЧреЗ
рдирд┐рдпрдо (рдпрд╛рдиреА, рдПрдХ рд╣реА рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреИрдХ рдпрд╛ рдПрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЙрдирдЯреНрд░реИрдХ рдЯреЗрдмрд▓), рдЖрдк
SNAT рднрд╛рдЧ (рдпрд╛рдиреА, MASQUERADE рдирд┐рдпрдо) рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд░реВрдЯреЗрдб рдПрдХреНрд╕реЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ (2) рдХреА рд╕реНрдерд┐рддрд┐ рдЖрдорддреМрд░ рдкрд░ рдареАрдХ рд╣реЛрддреА рд╣реИ
(рдЬреЛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдбрд┐рдЬрд╛рдЗрди рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ)ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджрд┐рдпрд╛ рдЧрдпрд╛

  • рдПрдХ рдЧреНрд░рд╛рд╣рдХ 1.0.1.1,
  • рдПрдХ рд╕реЗрд╡рд╛ 1.0.2.1,
  • 1.0.3.1 рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдкреЙрдбред

рдлрд┐рд░,

  1. рдЖрдкрдХрд╛ рд░рд╛рдЙрдЯрд░/рдлрд╝рд╛рдпрд░рд╡реЙрд▓/рд▓реЛрдбрдмреИрд▓реЗрдВрд╕рд░/рд╣реЛрд╕реНрдЯ/рдЬреЛ рднреА рдПрдХ рдкреИрдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ
    рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рддреЛ рдпрд╣ рдПрдХ рдкреИрдХреЗрдЯ "1.0.1.1 -> 1.0.2.1" рджреЗрдЦрддрд╛ рд╣реИ;
  2. рдпрд╣ рдЗрд╕реЗ рдПрдВрдбрдкреЙрдЗрдВрдЯ (рдкреЙрдб) рдкрд░ рдбреАрдПрдирдП рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдкреИрдХреЗрдЯ "1.0.1.1 -> . рд╣реЛрдЧрд╛
    1.0.3.1" рдХреНрд▓рд╕реНрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ;
  3. рдкреЙрдб "1.0.3.1 -> 1.0.1.1" рдкреИрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ;
  4. рдкреИрдХреЗрдЯ рд░рд╛рдЙрдЯрд░/рдлрд╝рд╛рдпрд░рд╡реЙрд▓/рд▓реЛрдбрдмреИрд▓реЗрдВрд╕рд░/рд╣реЛрд╕реНрдЯ/рдЬреЛ рдХреБрдЫ рднреА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
    рдХреЙрдирдЯреНрд░реИрдХ рдирд┐рдпрдо рд╣реЛрдиреЗ рдкрд░, рдХреЙрдирдЯреНрд░реИрдХ рд╕рд┐рд╕реНрдЯрдо рдкреИрдХреЗрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИ
    рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╡рд╛рдкрд╕ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ "1.0.2.1 -> 1.0.1.1" рдкрд░ред

рдпрджрд┐ (2) рдХреА рд╢рд░реНрдд рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ SNAT/MASQUERADING . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреИрдХреЗрдЯ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдЧрд╛
рд░рд╛рдЙрдЯрд░/рдлрд╝рд╛рдпрд░рд╡реЙрд▓/рд▓реЛрдбрдмреИрд▓реЗрдВрд╕рд░/рд╣реЛрд╕реНрдЯ/рдЬреЛ рднреА рдХреЙрдиреНрдЯреНрд░реИрдХ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/3760#issuecomment -212230959

@justinsb @yoshiwaan рдХреНрдпрд╛ рдХрднреА рдХрд┐рд╕реА рдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореБрджреНрджрд╛ рдмрдирд╛рдпрд╛? рдореЗрд░реА рдЦреЛрдЬ рдлреВ рдореБрдЭреЗ рд╡рд┐рдлрд▓ рдХрд░ рд░рд╣реА рд╣реИ, рдФрд░ рдореБрдЭреЗ рднреА рдЗрд╕реА рддрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдореИрдВ рдЗрдВрдЯрд░-рдиреЛрдб рдЯреНрд░реИрдлрд┐рдХ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЕрдм рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд╣рд▓рд╛ рдХрджрдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрджрд┐ рд╕реНрдерд╛рдиреАрдп рдиреЛрдб рдкрд░ рдХреЛрдИ рдкреЙрдб рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╣рдо рд╕реНрдерд╛рдиреАрдп рдкреЙрдб рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рддрдм рдЖрдк рдЕрдкрдиреЗ рдЖрд░рд╕реА рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ рдкреЙрдб рд╣реЛрдВред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЦреБрдж рдирд╣реАрдВ рдмрдврд╝рд╛рдпрд╛

рдЖрд╣, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╛рдпрд╛, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛/рдлрд┐рдХреНрд╕ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ: https://github.com/kubernetes/features/issues/27

1.5.x рдХреЗ рд░реВрдк рдореЗрдВ рдмреАрдЯрд╛ рд▓рдЧрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jason-riddle picture jason-riddle  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

errordeveloper picture errordeveloper  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ttripp picture ttripp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sjenning picture sjenning  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ddysher picture ddysher  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ