á€áá±á¬ááºážáá«ážááẠKubernetes ááœáẠload áá»áááºááœááºáá»áŸá¬á¡áá¯ááºáá¯ááºáá¯á¶á áá±ááŸááºáá»áááºáááºááŸá¯áá»á¬ážááᯠáá»á²á·ááœááºáá±á¬á¡áá« áá¬ááŒá
áºááœá¬ážááááºážá HTTP/2á gRPCá RSocketsá AMQP ááá¯á·ááá¯áẠá¡ááŒá¬ážáááºáááºážááŒá¬ááŸááºáá±á¬ áááá¯ááá¯áá±á¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«á client-side áá»áááºááœááºáá»áŸá¬ááᯠá¡áááºááŒá±á¬áá·áºá
ááºážá
á¬ážááá·áºááááºážá .
Kubernetes ááœáẠáá¬ááºá¡ááœá¬ážá¡áá¬ááᯠááŒááºáááºááŒáá·áºáá±áá¯á¶á¡ááŒá±á¬ááºáž á¡áááºážáááº
Kubernetes ááẠá¡ááá®áá±ážááŸááºážáá»á¬áž ááŒáá·áºáá»ááºááŒááºážá¡ááœáẠá¡áááºááŒá±áá±á¬ abstraction ááŸá áºáá¯ááᯠáá¶á·ááá¯ážáá±ážáááº- áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº ááŒáá·áºáá»ááºááŸá¯áá»á¬ážá
ááŒáá·áºáá»ááºááŸá¯áá»á¬ážááẠáááºááŸááºá¡áá»áááºá¡ááœááºáž ááá·áºá¡ááºááºáá®áá±ážááŸááºážá áááºáá»áŸááŸáá·áº áááºáá»áŸáááºáááºááá·áºáááºááᯠáá±á¬áºááŒáááºá á¡ááá®áá±ážááŸááºážáá áºáá¯á á®ááᯠPod áá áºáá¯á¡ááŒá Ạá¡áá¯á¶ážááŒá¯áá¬ážááŒá®áž IP ááááºá á¬áá áºáᯠáááºááŸááºáá±ážáá¬ážáááºá
áááºáá±á¬ááºááŸá¯áá»á¬ážááẠLoad Balancer ááŸáá·áº áááºáá°áááºá áááºážááá¯á·ááẠpods á¡áá»á¬ážá¡ááŒá¬ážááœáẠtraffic ááá¯ááŒáá·áºáá±áááºáá®ááá¯ááºážááŒá¯áá¯ááºáá¬ážáááºá
áááºááá¯áá¯á¶á á¶áá²ááá¯áᬠááŒáá·áºááá¯ááºáá¡á±á¬ááº.
- á¡á±á¬ááºáá±á¬áºááŒáá« áá¯á¶ááœáẠáá°áá®áá±á¬ á¡ááá®áá±ážááŸááºážáá¯á¶ážáá¯ááŸáá·áº load balancer ááᯠáááºááœá±á·ááŒááºááá¯ááºáááº-
- load balancer ááᯠService áá¯áá±á«áºááŒá®áž IP ááááºá á¬áá áºáᯠáááºááŸááºáá±ážáá«áááºá á¡áááºáá±á¬ááºážááá¯ááŸá¯ááŸááºááá»áŸááᯠpods áá»á¬ážáá²á០áá áºáá¯ááá¯á· ááŒááºááœáŸááºážáááº-
- á¡áá¯á¶ážáá»ááŸá¯á¡ááŒá±á¡áá±ááẠá¡ááá®áá±ážááŸááºážá ááŒá áºáááºá¡áá±á¡ááœááºááᯠáá¯á¶ážááŒááºáá±ážáááºá áááºááẠá¡á±á¬ááºáá« á¡á±á¬ááºááœáẠááá¯ááºááá¯áẠáá»á²á·ááœááºááẠáááºáá±á¬á·á០áááá¯á¡ááºáá±á¬á·áá«á
- pod áá áºáá¯á á®ááᯠáááºážá IP ááááºá á¬ááᯠáááºááŸááºáá±ážáá¬ážáááº-
áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠIP ááááºá á¬áá»á¬áž á á¯á ááºážááŸá¯á¡ááŒá Ạááœá±ážáá±á¬ááŒááºážááẠá¡áá¯á¶ážáááºáááºá áááºáá±á¬ááºááŸá¯ááᯠáááºáááºáá±á¬ááºááá·áºá¡áá«ááá¯ááºážá á á¬áááºážáá²á០IP ááááºá á¬áá»á¬ážááᯠááœá±ážáá»ááºááŒá®áž áŠážáááºáá¬ááááºá á¬á¡ááŒá Ạá¡áá¯á¶ážááŒá¯áááºá
áá®áá¯á¶áá«áá²á.
- áááºáá±á¬ááºááŸá¯á¡ááœáẠcurl 10.96.45.152 áá±á¬ááºážááá¯áá»ááºááᯠáááºáá¶áááŸááááº-
- áááºáá±á¬ááºááŸá¯ááẠáŠážáááºáá¬á¡ááŒá Ạpod ááááºá á¬áá¯á¶ážáá¯áá²á០áá áºáá¯ááᯠááœá±ážáá»ááºáááº-
- Traffic ááᯠáá®ážááŒá¬áž pod áá áºáá¯ááá¯á· ááŒááºááœáŸááºážáááº-
ááá·áºá¡ááá®áá±ážááŸááºážááœáẠfrontend ááŸáá·áº backend áá«áááºáá«áá áá áºáá¯á á®á¡ááœáẠservice áá áºáá¯ááŸáá·áº deployment ááŸá áºáá¯áá¯á¶ážááŸááááºááŒá áºáááºá
Frontend ááẠbackend ááá¯á· áá±á¬ááºážááá¯áá±á¬á¡áá«á backend ááẠpods áááºáá»áŸááᯠáá±á¬ááºááœááºáá±ážáááºááᯠá¡ááá¡áá» ááááŸáááẠáááá¯á¡ááºáá«- áá áºáá¯á áááºáᯠááá¯á·ááá¯áẠáá áºáᬠááŒá áºááá¯ááºáááºá
ááá¯á·á¡ááŒááºá ááŸá±á·áááºážááẠáá±á¬ááºááœááºá០áááºáá±á¬ááºááŸá¯áá±ážááá·áº á¡ááºáá»á¬ážáááááºá á¬áá»á¬ážá¡ááŒá±á¬ááºáž áá¬ááŸááááá«á
Frontend ááẠbackend ááá¯á· áá±á¬ááºážááá¯áá±á¬á¡áá«á áááºážááẠááŒá±á¬ááºážáá²ááŒááºážáááŸáááá·áº backend áááºáá±á¬ááºááŸá¯á IP ááááºá á¬ááᯠá¡áá¯á¶ážááŒá¯áááºá
áá«ááá¯á¶áá«áá².
- 1 á¡á±á¬ááºááœáẠá¡ááœááºážááá¯ááºáž áá±á¬ááºáá¶á¡á áááºá¡ááá¯ááºážááᯠáá±á¬ááºážááá¯áá«áááºá Backend á¡ááœáẠáá®ážááŒá¬ážáá áºáá¯ááᯠááœá±ážááá·áºá¡á á¬ážá áááºážááẠáááºáá±á¬ááºááŸá¯á¡ááœáẠáá±á¬ááºážááá¯áá»ááºáá áºáᯠááŒá¯áá¯ááºáááº-
- áááºáá±á¬ááºááŸá¯ááẠáŠážáááºáá¬ááááºá á¬á¡ááŒá Ạbackend pods áá»á¬ážáá²á០áá áºáá¯ááᯠááœá±ážáá»ááºáááº-
- áááºáá±á¬ááºááŸá¯ááŸááœá±ážáá»ááºáá¬ážáá±á¬ Pod 1 á០Pod 5 ááá¯á· áááºážááŒá±á¬ááºážááœá¬ážáááº-
- 1 ááŸá áºá¡á±á¬áẠáááºáá±á¬ááºááŸá¯áá±á¬ááºááœááºááœáẠ5 ááŸá áºá¡á±á¬ááºáá²á·ááá¯á· pod áááºáá»áŸááŸááááºááᯠá¡ááá¡áá»áááááá«á
ááá¯á·áá±á¬áº áááºáá±á¬ááºááŸá¯ááẠáá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáááºáá²á·ááá¯á· á¡ááá¡áá»ááŒáá·áºáá±ááááºážá round-robin áá»áááºááœááºáá»áŸá¬ááᯠá¡áá¯á¶ážááŒá¯áá¬ážáá¯á¶ááááºá á¡ááŒá±ááŸá¬ááŒáá·áºáá¡á±á¬ááºá
Kubernetes áááºáá±á¬ááºááŸá¯áá»á¬ážááœáẠáááºáá»ááºáá®ááŒááºážá
Kubernetes áááºáá±á¬ááºááŸá¯áá»á¬áž áááŸááá«á IP ááááºá á¬ááŸáá·áº ááá¯á·ááºááᯠáááºááŸááºáá±ážáá¬ážááá·áº áááºáá±á¬ááºááŸá¯á¡ááœáẠáá¯ááºáááºážá ááºáááŸááá«á
á¡á á¯á¡áá±ážááŸá áááºááá·áº node ááá¯á·áááᯠáááºáá±á¬ááºááŒá®áž netstat -ntlp á¡áááá·áºááᯠáá¯ááºáá±á¬ááºááŒááºážááŒáá·áº áááºážááᯠá¡áááºááŒá¯ááá¯ááºáááºá
áááºáá±á¬ááºááŸá¯á¡ááœáẠááœá²áá±áá±ážáá¬ážááá·áº IP ááááºá á¬ááá¯ááẠáááºááŸá¬ááœá±á·ááá¯ááºááẠááá¯ááºáá«á
áááºáá±á¬ááºááŸá¯á IP ááááºá
á¬ááẠááááºážáá»á¯ááºááŸá¯á¡ááœáŸá¬á ááááºážáá»á¯ááºáááááá¬ááœáẠáááºááŸáááŒá®áž áá±áá¬áá±á·á
áºááœáẠááŸááºáááºážáááºáá¬ážááẠ- etcdá áá°áá®áá±á¬ááááºá
á¬ááᯠá¡ááŒá¬ážá¡á
áááºá¡ááá¯ááºáž - kube-proxy á០á¡áá¯á¶ážááŒá¯áá«áááºá
Kube-proxy ááẠáááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážá¡ááœáẠIP ááááºá
á¬áá»á¬ážá
á¬áááºážááᯠáááºáá¶áááŸáááŒá®áž á¡á
á¯á¡áá±ážááŸá node áá
áºáá¯á
á®ááŸá iptables á
ááºážáá»ááºážáá»á¬ážááᯠáá¯ááºáá±ážáá«áááºá
á€á ááºážáá»ááºážáá»á¬ážá "áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯á IP ááááºá á¬ááᯠááŒááºáá«áá áá±á¬ááºážááá¯áá»ááºá áŠážáááºáá¬ááááºá á¬ááᯠááŒá¯ááŒááºááŒá®áž pods áá áºáá¯ááá¯á· áá±ážááá¯á·ááẠááá¯á¡ááºáá«áááºá"
áááºáá±á¬ááºááŸá¯ IP ááááºá á¬ááᯠáááºááœáá·áºá¡ááŸááºá¡ááŒá áºáᬠá¡áá¯á¶ážááŒá¯ááŒá®áž áááºáž IP ááááºá á¬ááŸáá·áº ááá¯á·ááºááᯠáá¬ážáá±á¬ááºááá·áº áááºááá·áºáá¯ááºáááºážá ááºá០áá±á¬ááºááœááºáá±ážáááºááá¯ááºáá«á
áá«ááá¯ááŒáá·áºáá¡á±á¬ááº.
- node áá¯á¶ážáá¯áá¡á á¯á¡áá±ážáá áºáá¯ááᯠáá¯á¶ážáááºááŒáá·áºáá«á node áá áºáá¯á á®ááœáẠpods áá»á¬ážááŸááááº-
- á¡áá«áá¯áá±á¬ááºááŒááºáá¬ážáá±á¬ áá»ááºááŒáá¯ážáá»á¬ážááẠáááºáá±á¬ááºááŸá¯á áá áºá áááºáá áºááá¯ááºážááŒá áºáááºá áááºáá±á¬ááºááŸá¯ááẠáá¯ááºáááºážá ááºáá áºáá¯á¡ááŒá ẠááááºááŸááá±á¬ááŒá±á¬áá·áºá áááºážááᯠáá®ážááá¯ážáá±á¬ááºááŒáá·áº ááŒááá¬ážáááº-
- ááá pod ááẠáááºáá±á¬ááºááŸá¯áá áºáá¯áá±á¬ááºážááá¯ááŒá®áž áááºááá¯ááºáᬠpods áá»á¬ážáá²á០áá áºáá¯ááᯠááœá¬ážááá«áááºá
- ááá¯á·áá±á¬áº áááºáá±á¬ááºááŸá¯áááŸááá«á áá¯ááºáááºážá ááºáááŸááá«á áá«ááááºááá¯áá»áá¯ážá¡áá¯ááºáá¯ááºááá²?
- áá±á¬ááºážááá¯áá»ááºááẠnode ááŸáááœááºááœá¬áá®á áááºážááẠiptables á ááºážáá»ááºážáá»á¬ážááŸáááá·áºáá¯ááºáá±á¬ááºáááº-
- iptables á ááºážáá»ááºážáá»á¬ážááẠáááºáá±á¬ááºááŸá¯áááŸááááºááᯠááááŸáááŒá®áž áááºážáááºáá±á¬ááºááŸá¯ááŸáá·áº áááºá ááºáá±áá±á¬ pods áá»á¬ážá IP ááááºá á¬áá»á¬ážáá²á០áá áºáá¯ááŒáá·áº áááºážá IP ááááºá á¬ááᯠá¡á á¬ážááá¯ážáá«-
- áá±á¬ááºážááá¯áá»ááºááẠáŠážáááºáá¬ááááºá á¬á¡ááŒá Ạááá¬ážááẠIP ááááºá á¬ááᯠáááºáá¶áááŸáááŒá®áž áá¯á¶ááŸááºá¡ááá¯ááºáž áá¯ááºáá±á¬ááºáá±áááº-
- ááœááºááẠtopology áá±á«áºáá°áááºá áá±á¬ááºážááá¯áá»ááºááẠáá±á¬ááºáá¯á¶ážááœáẠpod ááá¯á·áá±á¬ááºááŸááááº-
iptables ááẠáááºáá»ááºááœá±ááᯠáááºááá¯ááºáá«ááá¬ážá
ááá¯ááºáá«á iptables áá»á¬ážááᯠá á áºáá¯ááºáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯áá¬ážááŒá®áž áááºáá»ááºáá®áááºá¡ááœáẠáá®ááá¯ááºážáá¯ááºáá¬ážááŒááºážáááŸááá«á
ááá¯á·áá±á¬áº áááºážáá²á·ááá¯á· áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ á
ááºážáá»ááºážáá»á¬ážááᯠáá±ážááá¯ááºáááºá
á€áááºááŸá¬ Kubernetes ááœáẠá¡ááá¡áá» á¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ážáááºá
ááá·áºááœáẠpod áá¯á¶ážáá¯ááŸááá«á kube-proxy ááẠá¡á±á¬ááºáá«á ááºážáá»ááºážáá»á¬ážááᯠáá±ážáá±ážáááá·áºáááº-
- ááŒá áºááá¯ááºááŒá± 33% ááŒáá·áº áááá¡ááœá²ááᯠááœá±ážáá« ááá¯á·ááá¯áẠáá±á¬ááºá ááºážáá»ááºážááá¯á·ááœá¬ážáá«á
- ááŒá áºááá¯ááºááŒá± 50% ááŸááá±á¬ áá¯ááááá áºáá¯ááᯠááœá±ážáá« ááá¯á·ááá¯áẠáá±á¬ááºá ááºážáá»ááºážááá¯á·ááœá¬ážáá«á
- á¡á±á¬ááºááŸá¬ ááááááᯠááœá±ážáá«á
á€á áá áºááẠpod áá áºáá¯á á®ááᯠááŒá áºááá¯ááºááŒá± 33% ááŒáá·áº ááœá±ážáá»ááºáá¶ááá«áááºá
ááá¯á·á¡ááŒáẠPod 2 ááŒá®ážáá±á¬áẠPod 1 ááᯠáá±á¬ááºáá áºááŒáááºááœá±ážáá»ááºáááºáᯠá¡á¬ááá¶áá»ááºáááŸááá«á
ááœá±á¬ááá¯: iptables ááẠáá»áááºážááŒáá·áºáá±ááŸá¯ááŸáá·áºá¡áá° ááááºážááááºážá¡áá»ááºá¡áááºááᯠá¡áá¯á¶ážááŒá¯áááºá ááá¯á·ááŒá±á¬áá·áº áááºáá»ááºáá®áá±á¬ á¡ááºáááá¯áá®áááºááẠáá»áááºážááœá±ážáá»ááºááŸá¯á¡áá±á«áº á¡ááŒá±áá¶áááºá
áááºáá±á¬ááºááŸá¯áá»á¬áž áááºááá¯á·á¡áá¯ááºáá¯ááºáááºááᯠááᯠáááºáá¬ážáááºááŒá®ážá ááá¯ááá¯á áááºáááºá á¬ážá áá¬áá±á¬ááºážáá±á¬ áááºáá±á¬ááºááŸá¯á¡ááŒá±á¡áá±áá»á¬ážááᯠááŒáá·áºááŒáá«á áá¯á·á
Kubernetes ááœáẠááŒá¬ááŸááºá áœá¬ áá»áááºáááºááŸá¯áá»á¬ážááẠáá°áááºážá¡ááá¯ááºáž á¡ááá·áºááááºááŸááºáá«á
ááŸá±á·áááºážá០áá±á¬ááºááœááºááá¯á· HTTP áá±á¬ááºážááá¯ááŸá¯áá áºáá¯á á®ááᯠá¡ááœáá·áºá¡ááááºáá¯ááºááá·áº áá®ážááŒá¬áž TCP áá»áááºáááºááŸá¯ááŒáá·áº áá¯ááºáá±á¬ááºáááºá
ááŸá±á·áááºážá០áá±á¬ááºááœááºááá¯á· áá áºá áá¹ááá·áºáá»áŸáẠáá±á¬ááºážááá¯áá»áẠ100 ááá¯á·áá«áá ááá°áá®áá±á¬ TCP áá»áááºáááºááŸá¯ 100 ááᯠááœáá·áºááŒá®áž ááááºáááºá
TCP áá»áááºáááºááŸá¯áá áºáá¯ááœáá·áºááŒá®áž áá±á¬ááºáááºááœá² HTTP áá±á¬ááºážááá¯ááŸá¯á¡á¬ážáá¯á¶ážá¡ááœáẠáááºážááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº áá±á¬ááºážááá¯áá»ááºáá¯ááºáá±á¬ááºáá»áááºááŸáá·áº load ááᯠáá»áŸá±á¬á·áá»ááá¯ááºáááºá
HTTP áááá¯ááá¯áá±á¬ááœáẠHTTP Keep-alive ááá¯á·ááá¯áẠáá»áááºáááºááŸá¯ááᯠááŒááºáááºá¡áá¯á¶ážááŒá¯ááŒááºážáá¯áá±á«áºááá·áº á¡ááºá¹áá«áááºáá áºáᯠáá«ááŸááááºá á€ááá á¹á ááœááºá HTTP áá±á¬ááºážááá¯áá»ááºáá»á¬ážááŸáá·áº áá¯á¶á·ááŒááºááŸá¯áá»á¬ážá áœá¬ááᯠáá±ážááá¯á·áááºáá¶ááẠTCP áá áºáá¯áááºážáá»áááºáááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áááº-
á€á¡ááºá¹áá«áááºááᯠáá¯á¶áá±á¡á¬ážááŒáá·áº ááœáá·áºááá¬ážáá«- áá¬áá¬ááŸáá·áº áááá¯ááºážááá·áº ááŸá áºáá¯áá¯á¶ážááᯠááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá¡á±á¬áẠá á®á ááºáá±ážááá«áááºá
á áá áºááá·áºááœááºážááŸá¯ááá¯ááºááá¯ááºá ááá¯ážááŸááºážááŒá®áž áááá¯ááááºážáááºážáá¬áá¬á áá¬ážáá»á¬ážááŸáá·áº áááºáááºážáá»ááºá¡áá»á¬ážá á¯á¡ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
á€áááºááŸá¬ áá¬áá¬á áá¬ážá¡áá»áá¯ážáá»áá¯ážááŒáá·áº ááá°áá¬áá»á¬ážááá¯á· ááá·áºááºá¡áá»áá¯á·ááŸááá«áááºá
Node.js ááœáẠáááºáááºááŸááºáááºáá«á Spring boot ááŸá¬ ááŸááºáááºáá«á Python ááœáẠáááºáááºááŸááºáááºáá«á .NET ááœáẠáááºáááºááŸááºáááºáá«á
Kubernetes áááºáá±á¬ááºááŸá¯ááœáẠáá»áœááºá¯ááºááá¯á·ááẠáááºáááºááŸááºáááºáá±áá«á áááºááá¯á·ááŒá
áºáááºáááºážá
Frontend ááŸáá·áº Backend ááŸá
áºáá¯á
áá¯á¶ážááẠáááºáááºááŸááºáááºáá±áááºáᯠáá°áááŒáá«á
áá¯á·á
áá»áœááºá¯ááºááá¯á·ááœáẠááŸá±á·áááºážááááá¹áá°áá áºá¡á¯ááºááŸáá·áº áá±á¬ááºááœááºááœáẠáááá¹áá°áá¯á¶ážá¡á¯ááºááŸááááºá Frontend ááẠááááá¯á¶ážáá±á¬ááºážááá¯ááŸá¯ááᯠááŒá¯áá¯ááºááŒá®áž áá±á¬ááºááœááºááá¯á· TCP áá»áááºáááºááŸá¯ááᯠááœáá·áºáá±ážáááºá áá±á¬ááºážááá¯áá»ááºááẠáááºáá±á¬ááºááŸá¯ááá¯á·áá±á¬ááºááŸáááœá¬ážááŒá®ážá áá±á¬ááºáá¶á¡áá±á«ááºáá»á¬ážáá²á០áá áºáá¯ááᯠáŠážáááºáá¬ááááºá á¬á¡ááŒá Ạááœá±ážáá»ááºáá¬ážáááºá áá±á¬ááºááœááºá០áá¯á¶á·ááŒááºááŸá¯áá áºáᯠáá±ážááá¯á·ááŒá®áž ááŸá±á·áááºážá០áááºáá¶áááºá
áá¯á¶á·ááŒááºááŸá¯áááŸáááŒá®ážáá±á¬áẠTCP áá»áááºáááºááŸá¯ááᯠááááºáá¬ážááá·áº áá¯á¶ááŸááºá¡ááŒá±á¡áá±ááŸáá·áº ááá°áá²á áááºážááẠáá±á¬ááºááẠHTTP áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáááºáááºááœáá·áºáá¬ážáááºá
ááŸá±á·áááºážá០áá±á¬ááºááœááºááá¯á· áá±á¬ááºááẠáá±á¬ááºážááá¯ááŸá¯áá»á¬áž ááá¯á·áá«á áá¬ááŒá áºááá¯ááºáááºáááºážá
á€áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáááºááá·áºáá±ážááá¯á·áááºá ááœáá·áºáááºážáá±á¬ TCP áá»áááºáááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áááºááŒá áºááŒá®ážá áá±á¬ááºážááá¯áá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááẠááááá±á¬ááºážááá¯áá»ááºááœá¬ážáá²á·ááá·áº áá°áá®áá±á¬áá±á¬ááºáá¶ááá¯á· áá±á¬ááºááœá¬ážáááºááŒá áºáááºá
iptables ááẠá¡ááœá¬ážá¡áá¬ááᯠááŒááºáááºááŒáá·áºáá±ááŒááºážáááŒá¯ááá·áºáá«á
áá®ááá á¹á ááŸá¬ ááá¯ááºáá«áá°ážá
TCP áá»áááºáááºááŸá¯ááᯠáááºáá®ážáá±á¬á¡áá«á áááºážááẠá¡ááœá¬ážá¡áá¬áá»á¬ážááœá¬ážááá·áº áááá»áá±á¬ áá±á¬ááºááœááºááŸáá áºáá¯ááᯠááœá±ážáá»ááºáá±ážááá·áº iptables á ááºážáá»ááºážáá»á¬ážááŸáá áºááá·áº áá¯ááºáá±á¬ááºáááºá
áá±á¬ááºáááºááœá²áá±á¬ááºážááá¯ááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááẠááœáá·áºááŒá®ážáá¬áž TCP áá»áááºáááºááŸá¯ááœáẠááŸááá±áá±á¬ááŒá±á¬áá·áº iptables á ááºážáá»ááºážáá»á¬ážááᯠááá±á«áºáá±á¬á·áá«á
áááºááá¯áá¯á¶á á¶áá²ááá¯áᬠááŒáá·áºááá¯ááºáá¡á±á¬ááº.
- ááá pod ááẠáááºáá±á¬ááºááŸá¯áá¶ááá¯á· áá±á¬ááºážááá¯áá»ááºáá áºáᯠáá±ážááá¯á·áááº-
- áá±á¬ááºáá¬áááºááŒá áºáááºááá¯áᬠááááŒá®ážáá¬ážáá«á áááºáá±á¬ááºááŸá¯áááŸááá±á¬áºáááºáž áá±á¬ááºážááá¯áá»ááºááᯠáá¯ááºáá±á¬ááºáá±ážááá·áº iptables á ááºážáá»ááºážáá»á¬áž ááŸááá«áááºá
- Backend pods áá»á¬ážáá²á០áá áºáá¯ááᯠáŠážáááºáá¬ááááºá á¬á¡ááŒá Ạááœá±ážáá»ááºáá«áááº-
- áá±á¬ááºážááá¯áá»ááºá á áá«ážáááºážáá² áá±á¬ááºááœá¬ážáááºá á€á¡áá»áááºááœáẠpods ááŸá áºáá¯ááŒá¬ážááœáẠá¡ááŒá²ááŸááá±áá±á¬ TCP áá»áááºáááºááŸá¯ááᯠáááºáá±á¬ááºáá«áááº-
- ááá pod ááŸáá±á¬ááºáááºááœá²áá±á¬ááºážááá¯ááŸá¯ááŸááºááá»áŸááẠáááºááŸááºááŒá®ážáá¬ážáá»áááºáááºááŸá¯ááŸáááá·áºááœá¬ážáá«áááº-
ááááºááẠáá¯á¶á·ááŒááºáá»áááºááá¯ááŒááºááŒá®áž ááŒáá·áºáá¬ážáá±á¬ááœááºááŸáááŸá¯ááᯠáááŸáááá¯ááºáá±á¬áºáááºáž áá±á¬ááºáá¶ááá¯ááºááᯠá áá±ážáá»ááá¯ááºá áœááºáž áá¯á¶ážááŸá¯á¶ážááœá¬ážáá«áááºá
ááá·áºááœáẠá¡áá»áááºá¡áááºáááŒááºáá±á¬ áá»áááºáááºááŸá¯ááŒáá·áº áá±á«á·ááºááŸá áºáá¯áá«áá»áŸááºááẠáááºážááá¯á·á¡áááºá០áá áºáá¯ááá¯á· á¡ááœá¬ážá¡áᬠá¡ááŒá²ááŸááá±áá«áááºá
áá«ááá¯ááŒááºááá¯ááºááá¬ážá
Kubernetes ááẠá¡ááŒá²áááŒááºáá»áááºáááºááŸá¯áá»á¬ážááᯠáááºáá»ááºáá®á¡á±á¬áẠáááºááá¯á·ááááºážááááºááᯠááááá±á¬ááŒá±á¬áá·áºá á€áá¬áááºááẠááá·áºá¡ááœááºááŒá áºáááºá
áááºáá±á¬ááºááŸá¯áá»á¬ážááẠendpoints áá¯áá±á«áºáá±á¬ IP ááááºá á¬áá»á¬ážááŸáá·áº port áá»á¬ážá á¯á ááºážááŸá¯ááŒá áºáááºá
ááá·áºá¡ááá®áá±ážááŸááºážááẠáááºáá±á¬ááºááŸá¯á០á¡áá¯á¶ážááŸááºáá»á¬ážá á¬áááºážááᯠááá°ááá¯ááºááŒá®áž áááºážááá¯á·á¡ááŒá¬áž áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáááºááá¯á·ááŒáá·áºáá±ááááºááᯠáá¯á¶ážááŒááºááá¯ááºáááºá á¡ááá¯ááºáž-áá±á¬áºáááºááᯠá¡áá¯á¶ážááŒá¯á á€áá»áááºáááºááŸá¯áá»á¬ážááŒá¬ážááŸá áá»áááºááœááºáá»áŸá¬áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá±á«á·ááºáá áºáá¯á á®ááá¯á· áááºááá¯ááºáá»áááºáááºááŸá¯ááᯠáááºááœáá·áºááá¯ááºáááºá
ááá¯á·ááá¯áẠááá¯ááá¯áá»áŸá±á¬ááºáá¬ážáá«á
áááºáá»ááºáá®ááŸá¯á¡ááœáẠáá¬áááºááŸááá±á¬ client-side code ááẠá€áá¯áá¹áááá±áááŸáá·áº ááá¯ááºáá®ááá·áºáááº-
- áááºáá±á¬ááºááŸá¯á០á¡áá¯á¶ážááŸááºáá»á¬ážá á¬áááºážááᯠááá°áá«á
- á¡áá¯á¶ážááŸááºáá áºáá¯á á®á¡ááœáẠá¡ááŒá²áááŒááºáá»áááºáááºááŸá¯ááᯠááœáá·áºáá«á
- áá±á¬ááºážááá¯ááŸá¯áá áºáá¯ááŒá¯áá¯ááºáááºááá¯á¡ááºááá·áºá¡áá«ááœáẠááœáá·áºáá¬ážáá±á¬áá»áááºáááºááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«á
- á¡áá¯á¶ážááŸááºáá»á¬ážá á¬áááºážááᯠáá¯á¶ááŸááºááœááºážáá¶áá«á á¡áá áºáá»á¬ážáááºáá®ážáá« ááá¯á·ááá¯áẠá á¬áááºážááŒá±á¬ááºážáá²áá«á áááºááá¯ááºáá»áááºáááºááŸá¯áá±á¬ááºážáá»á¬ážááᯠááááºáá«á
áá«á áááºááá¯áá¯á¶á á¶áá«áááá·áº.
- áááºáá±á¬ááºááŸá¯áᶠáá±á¬ááºážááá¯áá»ááºááᯠááááá¯á¶áž pod áá±ážááá¯á·ááá·áºá¡á á¬ážá áááºááẠáá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáá±á¬ááºáááºáááºá០áá»áááºááœááºáá»áŸá¬ááŸáááá¯ááºáááº-
- áááºááá·áº pods áá»á¬ážááẠáááºáá±á¬ááºááŸá¯á á¡á áááºá¡ááá¯ááºážááŒá áºááááºážáᯠáá±ážáá±á¬ áá¯ááºááᯠáá±ážááẠááá¯á¡ááºáááº-
- ááá·áºááœááºá á¬áááºážááŸááááºááŸáá·áºáá áºááŒáá¯ááºáááºá áááºážááᯠclient áááºááœááºááááºážáááºážááŒá®áž pods áá»á¬ážááŸáá·áºáá»áááºáááºáááºáááºážááá¯á¡áá¯á¶ážááŒá¯áá«á
- Load Balancing algorithm á¡ááœáẠáááºááẠáá¬áááºááŸááááº-
ááá¯áá±ážááœááºážáá±á«áºáá¬áááº- á€ááŒá¿áá¬ááẠHTTP Keep-alive ááŸáá·áºáá¬áááºááá¯ááºáá«ááá¬ážá
Client-side load balancing
HTTP ááẠá¡ááŒá²áááºáž TCP áá»áááºáááºááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº áá áºáá¯áááºážáá±á¬ áááá¯ááá¯áá±á¬ááá¯ááºáá«á
á¡áááºá ááá·áºá¡ááá®áá±ážááŸááºážááẠáá±áá¬áá±á·á áºááᯠá¡áá¯á¶ážááŒá¯áá«áá áááºáá±á¬ááºážááá¯ááŸá¯ááŒá¯áá¯ááºááẠááá¯á·ááá¯áẠáá±áá¬áá±á·á áºá០á á¬ááœááºá á¬áááºážááᯠááá°ááá¯ááá·áºá¡áá«ááá¯ááºáž TCP áá»áááºáááºááŸá¯ááᯠááœáá·áºáááºááá¯ááºáá«á
áááºážá¡á á¬ážá áá±áá¬áá±á·á áºááá¯á· ááŒá²ááŒá¶áá±á¬ TCP áá»áááºáááºááŸá¯ááᯠááœáá·áºááŒá®áž á¡áá¯á¶ážááŒá¯áááºá
á¡áááºá ááá·áºáá±áá¬áá±á·á áºááᯠKubernetes ááœáẠááŒáá·áºáá»ááºáá¬ážááŒá®áž áááºáá±á¬ááºááŸá¯áá áºáá¯á¡áá±ááŒáá·áº áááºáá±á¬ááºá¡áá¯á¶ážááŒá¯áá«áá áááºááẠááááºá¡ááá¯ááºážááœááºáá±á¬áºááŒáá¬ážááá·áº á¡áá¬ážáá°ááŒá¿áá¬áá»á¬ážááᯠááŒá¯á¶ááœá±á·ááááºááŒá áºáááºá
áá±áá¬áá±á·á áºáá¯á¶áá°áá áºáá¯ááẠá¡ááŒá¬ážá¡áá¬áá»á¬ážááẠááá¯ááá¯áááºáá±á¬ááºáááºááŒá áºáááºá Kube-proxy ááŸáá·áº Kubernetes ááá¯á·ááẠáá»áááºáááºááŸá¯áá»á¬ážááᯠáááºáá»ááºáá®á¡á±á¬áẠáá°áá®áá±ážáááºááá¯ááºáá«á ááá·áºáá±áá¬áá±á·á áºááœáẠáá±ážááŒááºážáá»ááºáá»á¬ážááᯠáááºáá»ááºáá®á á±ááẠááá¯á áá¯ááºááááºá
áá±áá¬áá±á·á áºááá¯á· áá»áááºáááºááẠáááºá¡áá¯á¶ážááŒá¯ááá·áº á á¬ááŒáá·áºááá¯ááºá¡áá±á«áºáá°áááºá á€ááŒá¿áá¬ááᯠááŒá±ááŸááºážááẠááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬ ááœá±ážáá»ááºá áá¬áá»á¬áž ááŸáááá¯ááºáá«áááºá
á¡á±á¬ááºááœáẠNode.js á០MySQL database á¡á á¯á¡áá±ážááᯠáááºáá±á¬ááºááŒááºážá á¥ááá¬áá áºáá¯ááŒá áºáááºá
var mysql = require('mysql');
var poolCluster = mysql.createPoolCluster();
var endpoints = /* retrieve endpoints from the Service */
for (var [index, endpoint] of endpoints) {
poolCluster.add(`mysql-replica-${index}`, endpoint);
}
// Make queries to the clustered MySQL database
áááºááá¯áẠTCP áá»áááºáááºááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá·áº á¡ááŒá¬ážáá±á¬ áááá¯ááá¯áá±á¬áá»á¬ážá áœá¬ ááŸááá«áááºá
- WebSockets ááŸáá·áº áá¯á¶ááŒá¯á¶áá±á¬ WebSockets
- ááẠHTTP / 2
- gRPC
- RSockets áá»á¬áž
- AMQP
áááºááẠá€áááá¯ááá¯áá±á¬á¡áá»á¬ážá á¯ááŸáá·áº áááºážááŸá®ážááŒá®ážáá¬ážááŒá áºááá·áºáááºá
ááá¯á·áá±á¬áº á€áááá¯ááá¯áá±á¬áá»á¬ážááẠá¡ááœááºáá±áááºážá á¬ážáá«áá á¡áááºááŒá±á¬áá·áº á á¶áá»áááºá á¶ááœáŸááºážáá»áááºááœááºáá»áŸá¬ááŸáááŒá±ááŸááºážáá»ááºáááŸáááááºážá client logic ááᯠáá¬ááŒá±á¬áá·áº ááŒá±á¬ááºážáá²ááá¯á· ááá¯á¡ááºáá¬áá²á áá°áááºáž Kubernetes ááŒá±ááŸááºážáá»áẠááŸááá«ááá¬ážá
Kubernetes ááœáẠá¡áá¯á¶ážááŒá¯áá±á¬á¡áá«ááœáẠá¡áá¯á¶ážáá»á¬ážáá±á¬ á¡áá¯á¶ážá¡áá»á¬ážáá¯á¶ážááá á¹á áá»á¬ážááᯠáá¬ááá á±ááẠKube-proxy ááŸáá·áº iptables áá»á¬ážááᯠáá®ááá¯ááºážáá¯ááºáá¬ážáá«áááºá áá«á á¡áááºááŒá±ááá¯á·áá«á
á¡áááºá áááºááẠREST API ááᯠáá±á¬áºáá¯ááºááá·áº áááºáááºáá±á¬ááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áá±áá«á áááºááẠáá¶áá±á¬ááºážááŒááºážááŒá áºááẠ- á€á¡ááŒá±á¡áá±ááœááºá áááºááá¯áẠTCP áá»áááºáááºááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážáááŒá¯áá«á áááºááá·áº Kubernetes áááºáá±á¬ááºááŸá¯ááá¯áááᯠáááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
ááá¯á·áá±á¬áº áááºááẠá¡ááŒá²áá á± TCP áá»áááºáááºááŸá¯áá»á¬ážááᯠá áááºá¡áá¯á¶ážááŒá¯áááºááŸáá·áº áááŒáá¯ááºáááºá backends áá áºáá»áŸá±á¬áẠáááºááᯠá¡áá®á¡áá»áŸ ááŒáá·áºáá±áááºážááᯠáááºááŸá¬ááœá±ááááºááŒá áºáá«áááºá Kubernetes ááœáẠá€ááá á¹á á¡ááœáẠá¡áááºááá·áºáá¯ááºáá¬ážáá±á¬ ááŒá±ááŸááºážáá»ááºáá»á¬áž ááá«áááºáá«á
ááá¯á·áá±á¬áºá áá°áá®áá±ážááá¯ááºááá·áº ááœá±ážáá»ááºá áá¬áá»á¬áž áá±áá»á¬áá±á«ááºááŸááá«áááºá
Kubernetes ááŸá áá±ááŸááºáá»áááºáááºááŸá¯áá»á¬ážááᯠáááºáá»ááºáá®á á±ááŒááºážá
Kubernetes ááœáẠáááºáá±á¬ááºááŸá¯ áá±ážáá»áá¯áž ááŸááá«áááºá
- ClusterIP
- NodePort
- LoadBalancer
- áá±á«ááºážá ááº
ááááááºáá±á¬ááºááŸá¯áá¯á¶ážáá¯ááẠiptables á ááºážáá»ááºážáá»á¬ážáááºáá±á¬ááºáááºá¡ááœáẠkube-proxy ááŸá¡áá¯á¶ážááŒá¯ááá·áº virtual IP ááááºá á¬ááá¯á¡ááŒá±áá¶á áá¯ááºáá±á¬ááºáááºá áá«áá±ááá·áº áááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážáá²á· á¡ááŒá±áá¶ááá±á¬á· áá±á«ááºážááá«áá²á· áááºáá±á¬ááºááŸá¯áá áºáá¯áá«áá²á
headless áááºáá±á¬ááºááŸá¯ááœáẠáááºážááŸáá·áº áááºá ááºáá±ááá·áº áááºááá·áº IP ááááºá á¬áá»áŸ ááá«ááŸááá² áááºážááŸáá·áº áááºá ááºáá±ááá·áº pods (endpoints) áá»á¬ážá IP ááááºá á¬áá»á¬ážá á¬áááºážááŸáá·áº ports áá»á¬ážááᯠááŒááºáááºááá°áááºá¡ááœáẠááá¹ááá¬ážáá áºáá¯áᬠáá¶á·ááá¯ážáá±ážáá«áááºá
áááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážááẠheadless áááºáá±á¬ááºááŸá¯á¡áá±á«áºá¡ááŒá±áá¶áááºá
ClusterIP áááºáá±á¬ááºááŸá¯ááẠá¡áá»áá¯á·áá±á¬ á¡ááá¯áá±á¬ááºážááŸá¯áá»á¬ážáá«ááŸááá±á¬ áá±á«ááºážááá«áá±á¬ áááºáá±á¬ááºááŸá¯áá áºáá¯ááŒá áºáááºá
- á á®áá¶ááá·áºááœá²ááŸá¯á¡ááœáŸá¬ááẠáááºážá¡á¬áž IP ááááºá á¬áá áºáá¯áááºááŸááºáá±ážáááºá
- Kube-proxy ááẠááá¯á¡ááºáá±á¬ iptables á ááºážáá»ááºážáá»á¬ážááᯠáá¯ááºáá±ážáááºá
á€áááºážááŒáá·áº áááºááẠkube-proxy ááᯠáá»á áºáá»á°ááŸá¯ááŒá®áž ááá·áºá¡ááá®áá±ážááŸááºážáááºáá»ááºááœá±ááá¯ááá°ááẠheadless áááºáá±á¬ááºááŸá¯ááŸáááŸááá±á¬ á¡áá¯á¶ážááŸááºáá»á¬ážá á¬áááºážááᯠááá¯ááºááá¯ááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
ááá¯á·áá±á¬áº á¡á á¯á¡áá±ážááœáẠááá·áºááœááºážáá¬ážáá±á¬ á¡ááá®áá±ážááŸááºážáá»á¬ážá¡á¬ážáá¯á¶ážááœáẠáááºáá°áá±á¬áá¯áá¹ááááᯠáá»áœááºá¯ááºááá¯á· áááºááá¯á·ááá·áºááá¯ááºáááºáááºážá
áááºá á¡ááºááºáá®áá±ážááŸááºážááᯠá¡áá¯á¶ážááŒá¯ááŒá®ážááŒá áºáá«áá á€áá¯ááºáá±á¬ááºá áá¬ááẠáááŒá áºááá¯ááºáᯠáááºááá±áááºá ááá¯á·áá±á¬áºá á¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá áºáá¯ááŸááááºá
Service Mesh á ááá·áºááᯠáá°áá®áá«áááá·áºáááºá
client-side load balancing strategy ááẠá¡áá±á¬áºáá±áž standard ááŒá áºáááºááᯠááẠáááááŒá¯ááááŒá®ážáá¬áž ááŒá áºáá±á¬ááºážááŒá áºááá¯ááºáá«áááºá
áá»áŸá±á¬ááºááœáŸá¬á áááºáá±á¬á¡áá«á
- áááºáá±á¬ááºááŸá¯á០IP ááááºá á¬áá»á¬ážá á¬áááºážááᯠááá°áá«á
- áá»áááºáááºááŸá¯áá±áááºááᯠááœáá·áºááŒá®áž ááááºážááááºážáá¬ážáááºá
- á¡áá¯á¶ážááŸááºáá»á¬ážááᯠáá±á«ááºážááá·áºááŒááºáž ááá¯á·ááá¯áẠáááºááŸá¬ážááŒááºážááŒáá·áº áá±áá°ážáááºááᯠá¡áá«á¡á¬ážáá»á±á¬áºá áœá¬ á¡ááºááááºáá¯ááºáá«á
á¡ááá®áá±ážááŸááºážááẠáá±á¬ááºážááá¯áá»ááºáá áºáá¯ááŒá¯áá¯ááºááá¯áá«áá
- áá¯áá¹áááá±áá¡áá»áá¯á· (á¥ááá¬- round-robin) ááᯠá¡áá¯á¶ážááŒá¯á áááá¯ááºáá±á¬áá»áááºáááºááŸá¯áá áºáá¯ááᯠááœá±ážáá«á
- áá±á¬ááºážááá¯áá»ááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºá
á€á¡ááá·áºáá»á¬ážááẠWebSocketsá gRPC ááŸáá·áº AMQP áá»áááºáááºááŸá¯áá»á¬áž ááŸá áºáá¯áá¯á¶ážá¡ááœáẠá¡áá¯ááºáá¯ááºáá«áááºá
áááºááẠá€áá¯áá¹ááááᯠáá®ážááŒá¬ážá á¬ááŒáá·áºááá¯ááºáá áºáá¯á¡ááŒá Ạááœá²ááŒá¬ážááá¯ááºááŒá®áž áááºáá¡ááºááºáá®áá±ážááŸááºážáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
ááá¯á·áá±á¬áº Istio ááá¯á·ááá¯áẠLinkerd áá²á·ááá¯á·áá±á¬ áááºáá±á¬ááºááŸá¯ meshes áá»á¬ážááᯠáááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
Service Mesh ááẠááá·áºáá»áŸá±á¬ááºááœáŸá¬ááᯠááŒáŸáá·áºáááºáá±ážááá·áº áá¯ááºáááºážá ááºáá áºáá¯ááŒá áºáááº-
- áááºáá±á¬ááºááŸá¯ IP ááááºá á¬áá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬áẠááŸá¬ááœá±áááºá
- WebSockets ááŸáá·áº gRPC áá²á·ááá¯á·áá±á¬ áá»áááºáááºááŸá¯áá»á¬ážááᯠá ááºážáááºáááºá
- ááŸááºáááºáá±á¬ áááá¯ááá¯áá±á¬ááᯠá¡áá¯á¶ážááŒá¯á áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá»áááºááœááºáá»áŸá¬ááŸááá±ážáááºá
Service Mesh ááẠá¡á á¯á¡áá±ážá¡ááœááºáž á¡ááœá¬ážá¡áá¬ááᯠá á®áá¶ááá·áºááœá²áá¬ááœáẠáá°áá®áá±ážáááºá ááá¯á·áá±á¬áº áááºážááẠá¡áááºážá¡ááŒá áº-á¡áá¯á¶ážáá»á¬ážáááºá á¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá»á¬ážááŸá¬ Netflix Ribbon áá²á·ááá¯á·áá±á¬ ááŒááºáá¡ááœá²á·á¡á ááºáž á á¬ááŒáá·áºááá¯ááºáá»á¬áž ááá¯á·ááá¯áẠEnvoy áá²á·ááá¯á· áááá¯ááááºáá¯ááºááá¯ááºáá±á¬ áááá¯á á®áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«áááºá
áá®áá»áŸááŒááºážááŒá¿áá¬áá»á¬ážááᯠáá»á áºáá»á°ááŸá¯áá«á áááºááá¯á·ááŒá áºáááºáááºážá
load áá»áááºááœááºáá»áŸá¬ááᯠá¡áá¯á¶ážáááŒá¯ááẠáááºááœá±ážáá»ááºááá¯ááºááŒá®áž áááºááá·áºááŒá±á¬ááºážáá²ááŸá¯ááá¯áá»áŸ áááááá¬ážáááá±ážáá«á á¡áá¯ááºá¡ááŒá±á¡áá±á¡áá»áá¯á·ááᯠááŒáá·áºááŒáá«á áá¯á·á
ááá·áºááœáẠáá¬áá¬áá»á¬ážááẠáá±á¬ááºáááºáá»á¬áž ááá¯áá»á¬ážáá±áá«áá á€áá»áŸ ááŒá®ážáá¬ážáá±á¬ ááŒá¿áᬠááá¯ááºáá«á
áá¬áá¬ááŸá áºáá¯ááá¯á·áá»áááºáááºáá±á¬ client áá«ážáá¯ááŸááááºááá¯ááŒáá«á áá¯á·á áááºáá»ááºáá®ááŒááºáž áááŸááá±á¬áºáááºážá áá¬áá¬ááŸá áºáá¯áá¯á¶ážááᯠá¡áá¯á¶ážááŒá¯áá«áááº-
áá»áááºáááºááŸá¯áá»á¬ážááᯠá¡áá®á¡áá»áŸ ááŒáá·áºáá±ááá¯ááºáááºááá¯ááºáá«- áá°áá®áá±á¬áá¬áá¬ááá¯á· áá»áááºáááºáá¬ážáá±á¬ client áá±ážáá¯ááŒá áºáá±á¬ááºážááŒá áºááá¯ááºáá±á¬áºáááºáž áá¬áá¬ááŸá áºáá¯áá¯á¶ážááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááœáá·áºá¡áááºážáá±á¬ááºážááŸááá«áááºá
ááá¯á ááŒá¿áá¬ááŸá¬ ááá·áºáá»ááºááẠááŒááºááœááºážááŒá áºáááºá
ááá·áºááœáẠáá¯á¶ážá áœá²áá°áááºážáá«ážááŒá®áž áá¬áá¬áá»á¬ážáá»á¬ážááŸááá«áá ááá·áºá¡áááºážá¡ááŒá áºáá»á¬ážááᯠá¡áá¯á¶ážáá»ááŸá¯áááºážááœá¬ážáááºááŒá áºááŒá®áž ááŒá áºááá¯ááºááŒá±ááŸááá±á¬ ááááºááá¯á·ááŸá¯áá»á¬áž áá±á«áºáá¬áááºááŒá áºáááºá
client ááŸá áºáá¯ááŸáá·áº server áá«ážáá¯ááŸááááºááá¯áá«á áá¯á·á á¡áá±á¬ááºážáá¯á¶ážá¡ááŒá±á¡áá±ááœááºá áá«ážáá¯ááœáẠáá¬áá¬ááŸá áºáá¯ááá¯á· á¡ááŒá²áááºážáá»áááºáááºááŸá¯ááŸá áºáá¯ááŸááááºááŒá áºáááºá
áá»ááºáá¬áá¬áá»á¬ážááẠidle ááŒá áºáá±áááá·áºáááº-
á¡áááºá á€áá¬áá¬ááŸá áºáá¯ááẠáááá¯ááºážááá·áºáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáááá¯ááºááœááºááá¯ááºáá«áá á¡áá»á¬ážááá¯áẠá¡ááá¯ááºážá¡áá¬ááŒáá·áº áá°áá®áááºááá¯ááºáá«á
áá±á¬ááºáá»ááº
Kubernetes áááºáá±á¬ááºááŸá¯áá»á¬ážááẠáá¯á¶ááŸááºáááºá¡ááºááá®áá±ážááŸááºážá¡ááŒá±á¡áá±á¡áá»á¬ážá á¯ááœáẠá¡áá¯ááºáá¯ááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážáááºá
ááá¯á·áá±á¬áºá áá±áá¬áá±á·á áºáá»á¬ážá gRPC ááá¯á·ááá¯áẠWebSockets áá»á¬ážáá²á·ááá¯á· áááºááá¯áẠTCP áá»áááºáááºááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá·áº á¡ááá®áá±ážááŸááºážáááá¯ááá¯áá±á¬áá»á¬ážááŸáá·áº á áááºáá¯ááºáá±á¬ááºáá±á¬á¡áá«á áááºáá±á¬ááºááŸá¯áá»á¬ážááẠááá·áºáá»á±á¬áºáá±á¬á·áááºááá¯ááºáá«á Kubernetes ááẠá¡ááŒá²áááŒáẠTCP áá»áááºáááºááŸá¯áá»á¬ážááᯠáá»áááºááœááºáá»áŸá¬ááŸááááºá¡ááœáẠá¡ááœááºážááá¯ááºážááá¹ááá¬ážáá»á¬ážááᯠáá¶á·ááá¯ážááá±ážáá±á
ááá¯ááá¯áááºááŸá¬ áááºááẠclient-side balancing ááá¯á áááºáá²ááŸáá¡ááá®áá±ážááŸááºážáá»á¬ážáá±ážáá¬ážááááºáá¯ááá¯ááá¯áááºá
áá¬áá¬ááŒááºá¡ááœá²á·á០ááŒááºáááºáááºá
áá±á¬ááºááẠáá¬á¡ááŒá±á¬ááºážá¡áá¬ááœá± áááºáááºáááá²:
Kubernetes ááœáẠá¡á±á¬áºááá¯á áá±ážáá»á²á·ááŒááºáž á¡ááá·áºáá¯á¶ážááá·áºááŸáá·áº áááºážááá¯á·ááᯠáááá±á¬ááºá áœá¬ á¡áá¯á¶ážááŒá¯áááºáž .á¡áá±á¬ááºá¡áááºáá±á¬áºáááºá¡ááœáẠááá°áá¬áá¯á¶á á¶ááŒáá·áº ááá¯ážáá°ážááŸá¯ááá±á¬ááŒáá·áº Kubernetes .áá áºáá»á áºáááºá¡ááœááºááŒá±á¬ááºážááŒááºážá¡ááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·á Telegram áá»ááºááẠ.
source: www.habr.com