แƒ“แƒ”แƒกแƒžแƒแƒœแƒ˜. 1. แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

แƒกแƒแƒšแƒแƒ›แƒ˜! แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒ™แƒšแƒ” แƒกแƒขแƒแƒขแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒžแƒแƒกแƒฃแƒฎแƒแƒ‘แƒก แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒก: "แƒ แƒ แƒแƒ แƒ˜แƒก แƒ“แƒ”แƒกแƒžแƒแƒœแƒ˜?", "แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ?" แƒ“แƒ "แƒกแƒแƒ“ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ—?".

แƒ แƒ แƒแƒ แƒ˜แƒก แƒ”แƒก?

Envoy แƒแƒ แƒ˜แƒก L4-L7 แƒ‘แƒแƒšแƒแƒœแƒกแƒ”แƒ แƒ˜ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ C++-แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ แƒ˜แƒ”แƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒฆแƒแƒš แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ–แƒ” แƒ“แƒ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒแƒ‘แƒแƒ–แƒ”. แƒ”แƒ แƒ—แƒ˜แƒก แƒ›แƒฎแƒ แƒ˜แƒ•, แƒ”แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒฌแƒ˜แƒšแƒแƒ“ แƒแƒ แƒ˜แƒก nginx-แƒ˜แƒกแƒ แƒ“แƒ แƒฐแƒแƒžแƒ แƒแƒฅแƒกแƒ˜แƒ˜แƒก แƒแƒœแƒแƒšแƒแƒ’แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒ—แƒ—แƒแƒœ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒ”แƒแƒ แƒ”แƒก แƒ›แƒฎแƒ แƒ˜แƒ•, แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒแƒ“ แƒแƒ แƒ˜แƒก แƒแƒ แƒ˜แƒ”แƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ–แƒ” แƒ“แƒ แƒแƒฅแƒ•แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ แƒแƒ แƒ แƒฃแƒแƒ แƒ”แƒกแƒ˜ แƒ•แƒ˜แƒ“แƒ แƒ” java and go แƒ‘แƒแƒšแƒแƒœแƒกแƒ”แƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ zuul แƒแƒœ traefik.

แƒฐแƒแƒžแƒ แƒแƒฅแƒกแƒ˜แƒก/แƒœแƒ’แƒ˜แƒœแƒฅแƒกแƒ˜แƒก/แƒ“แƒ”แƒกแƒžแƒแƒœแƒ˜แƒก แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜, แƒ˜แƒก แƒแƒ  แƒแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒก แƒแƒ‘แƒกแƒแƒšแƒฃแƒขแƒฃแƒ  แƒกแƒ˜แƒ›แƒแƒ แƒ—แƒšแƒ”แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ–แƒแƒ’แƒแƒ“ แƒกแƒฃแƒ แƒแƒ—แƒก.

nginx
แƒฐแƒแƒžแƒ แƒแƒฅแƒกแƒ˜แƒ
แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜
แƒขแƒ แƒ”แƒคแƒ˜แƒ™แƒ˜

แƒ•แƒแƒ แƒกแƒ™แƒ•แƒšแƒแƒ•แƒ”แƒ‘แƒ˜ github-แƒ–แƒ”
11.2k/แƒกแƒแƒ แƒ™แƒ”
1.1k/แƒกแƒแƒ แƒ™แƒ”
12.4k
27.6k

แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜
C
C
C + +
go

API
แƒแƒ แƒแƒ แƒ˜แƒก
แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒแƒ™แƒ”แƒขแƒ˜/แƒ‘แƒ˜แƒซแƒ’แƒ˜
แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ—แƒ•แƒ˜แƒ—แƒ›แƒคแƒ แƒ˜แƒœแƒแƒ•แƒ˜/แƒ’แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒแƒ‘แƒ
แƒ’แƒแƒ˜แƒงแƒ•แƒแƒœแƒแƒก

แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒฏแƒแƒœแƒ›แƒ แƒ—แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ
แƒแƒ แƒแƒ แƒ˜แƒก
แƒ“แƒ˜แƒแƒฎ
แƒ“แƒ˜แƒแƒฎ
แƒ“แƒ˜แƒแƒฎ

แƒฆแƒ˜แƒ แƒ›แƒ˜แƒ™แƒ•แƒšแƒ”แƒ•แƒ
แƒ’แƒแƒ แƒ” แƒ›แƒแƒ“แƒฃแƒšแƒ˜
แƒแƒ แƒแƒ แƒ˜แƒก
แƒ“แƒ˜แƒแƒฎ
แƒ“แƒ˜แƒแƒฎ

J.W.T.
แƒ’แƒแƒ แƒ” แƒ›แƒแƒ“แƒฃแƒšแƒ˜
แƒแƒ แƒแƒ แƒ˜แƒก
แƒ“แƒ˜แƒแƒฎ
แƒแƒ แƒแƒ แƒ˜แƒก

แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ
แƒšแƒฃแƒ/แƒ™
แƒšแƒฃแƒ/แƒ™
แƒšแƒฃแƒ/C++
แƒแƒ แƒแƒ แƒ˜แƒก

แƒ แƒ แƒแƒ แƒ˜แƒก

แƒ”แƒก แƒแƒฎแƒแƒšแƒ’แƒแƒ–แƒ แƒ“แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒ, แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ แƒแƒ› แƒแƒ™แƒšแƒ˜แƒ, แƒ–แƒแƒ’แƒ˜ แƒแƒ“แƒ แƒ”แƒฃแƒš แƒแƒšแƒคแƒแƒจแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜, แƒแƒกแƒ”แƒ•แƒ” แƒแƒฎแƒแƒšแƒ’แƒแƒ–แƒ แƒ“แƒแƒ‘แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”, แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ•แƒ˜แƒ—แƒแƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒฃแƒ™แƒ•แƒ” แƒแƒฅแƒ•แƒก แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ: แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ, แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ›แƒ–แƒ แƒคแƒ˜แƒšแƒขแƒ แƒ˜, แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒคแƒ˜แƒšแƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“.
แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒคแƒ”แƒ แƒแƒ”แƒ‘แƒ˜ แƒแƒฅแƒ”แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”แƒแƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜ แƒแƒ แƒ˜แƒก 2 แƒแƒœแƒขแƒ˜แƒžแƒแƒขแƒ”แƒ แƒœแƒ˜:

  • แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒฃแƒ™แƒฃแƒชแƒ”แƒ›แƒ.

แƒคแƒแƒฅแƒขแƒ˜แƒ, แƒ แƒแƒ› แƒแƒ› แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒฅ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ. Google-แƒ˜แƒก แƒ‘แƒ˜แƒญแƒ”แƒ‘แƒ˜ แƒแƒ›แƒแƒก แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ”แƒœ แƒ“แƒแƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒ. แƒ˜แƒ“แƒ”แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ RFC แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ‘แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒแƒฎแƒ•แƒ”แƒฌแƒ˜แƒšแƒแƒ‘แƒ (แƒ–แƒแƒแƒžแƒแƒ แƒ™แƒ˜แƒก แƒกแƒแƒ—แƒแƒฃแƒ แƒ”แƒ‘แƒ˜) แƒ“แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฎแƒšแƒ แƒ”แƒก แƒแƒšแƒคแƒแƒช แƒ™แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒ•แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜แƒ, PR แƒฆแƒ˜แƒ (แƒžแƒ˜แƒแƒ แƒ˜แƒก แƒกแƒขแƒแƒขแƒ˜แƒแƒก แƒ แƒแƒ› แƒ•แƒฌแƒ”แƒ แƒ“แƒ˜, แƒžแƒ˜แƒแƒ แƒ˜ แƒ’แƒแƒ˜แƒงแƒ˜แƒœแƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒžแƒฃแƒœแƒฅแƒขแƒ˜ แƒ›แƒแƒ˜แƒœแƒช แƒแƒฅแƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜แƒ).

แƒแƒ› แƒ“แƒ แƒแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— nginx แƒกแƒขแƒแƒขแƒ˜แƒ™แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

  • แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ.

แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ. แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒšแƒ˜. แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ›แƒแƒ›แƒ”แƒœแƒขแƒ˜แƒ:

Yaml-แƒจแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒจแƒ”แƒชแƒ“แƒ”แƒ‘แƒ˜แƒ—, แƒ’แƒแƒ™แƒ˜แƒชแƒฎแƒแƒ•แƒ— แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒกแƒ˜แƒขแƒงแƒ•แƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ แƒ“แƒ แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ—, แƒ แƒแƒ› nginx/haproxy แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ—แƒฃแƒ›แƒชแƒ แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒคแƒ แƒ แƒšแƒแƒ™แƒแƒœแƒฃแƒ แƒ˜แƒ. แฒแƒ›แƒแƒจแƒ˜แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒแƒ›แƒ˜แƒก แƒแƒ–แƒ แƒ˜. Nginx-แƒ˜แƒกแƒ แƒ“แƒ Haproxy-แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ แƒฎแƒ”แƒšแƒ˜แƒ— แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒ“แƒแƒœ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒžแƒ แƒแƒขแƒแƒ‘แƒฃแƒคแƒ˜แƒžแƒ แƒแƒขแƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒ’แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ“แƒแƒจแƒ•แƒ”แƒ‘แƒ.

Canary, b/g แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒกแƒชแƒ”แƒœแƒแƒ แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒกแƒฎแƒ•แƒ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ  แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜. แƒ›แƒ” แƒแƒ  แƒ•แƒแƒ›แƒ‘แƒแƒ‘, แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒแƒ›แƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒฉแƒแƒ˜แƒชแƒ•แƒแƒ— แƒฎแƒ”แƒšแƒฏแƒแƒฎแƒ”แƒ‘แƒ˜, แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒ‘แƒแƒšแƒแƒœแƒกแƒ”แƒ แƒจแƒ˜, แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก

แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒ—แƒ•แƒ˜แƒกแƒแƒช แƒ”แƒšแƒฉแƒ˜ แƒจแƒ”แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜แƒ:

  • แƒ›แƒแƒซแƒ แƒแƒแƒ‘แƒ˜แƒก แƒ“แƒแƒ‘แƒแƒšแƒแƒœแƒกแƒ”แƒ‘แƒ แƒ แƒ—แƒฃแƒš แƒ“แƒ แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒจแƒ˜. แƒ”แƒก แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒฅแƒกแƒ”แƒšแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒก แƒกแƒฃแƒšแƒแƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜.
  • แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒ™แƒ•แƒšแƒ”แƒ•แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก, แƒ แƒ—แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒแƒœ แƒกแƒฎแƒ•แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ out of box แƒแƒœ แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒฃแƒšแƒแƒ“ แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ˜แƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› nginx/haproxy-แƒจแƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒ— แƒ’แƒแƒ แƒจแƒ”แƒ›แƒแƒ แƒขแƒงแƒ›แƒฃแƒšแƒ˜ lua แƒ“แƒ แƒกแƒแƒ”แƒญแƒ•แƒ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—.

แƒแƒ แƒ˜แƒ•แƒ”, แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ›แƒแƒฆแƒแƒš แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก.

แƒ แƒแƒ’แƒแƒ  แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก แƒแƒ›แƒแƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ

Envoy แƒœแƒแƒฌแƒ˜แƒšแƒ“แƒ”แƒ‘แƒ แƒ‘แƒ˜แƒœแƒแƒ แƒ”แƒ‘แƒจแƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—. แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ˜แƒก แƒ’แƒ•แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“.

envoy.yaml แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ

static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        protocol: TCP
        address: 0.0.0.0
        port_value: 10000
    filter_chains:
    - filters:
      - name: envoy.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
          stat_prefix: ingress_http
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["*"]
              routes:
              - match:
                  prefix: "/"
                route:
                  host_rewrite: www.google.com
                  cluster: service_google
          http_filters:
          - name: envoy.router
  clusters:
  - name: service_google
    connect_timeout: 0.25s
    type: LOGICAL_DNS
    # Comment out the following line to test on v6 networks
    dns_lookup_family: V4_ONLY
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: service_google
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: www.google.com
                port_value: 443
    transport_socket:
      name: envoy.transport_sockets.tls
      typed_config:
        "@type": type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext
        sni: www.google.com

แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ

แƒ แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒก? แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ‘แƒแƒšแƒแƒœแƒกแƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ; แƒฌแƒแƒ แƒ›แƒแƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ "แƒžแƒแƒขแƒแƒ แƒ" แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜:

  • แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ•แƒแƒšแƒ˜แƒ“แƒแƒชแƒ˜แƒ.

แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ“แƒ˜แƒ“แƒ˜, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“แƒ˜, แƒ—แƒฃ แƒแƒ›แƒแƒก แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒ•แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ—, แƒกแƒแƒ“แƒฆแƒแƒช แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒจแƒแƒœแƒกแƒ˜ แƒ˜แƒ–แƒ แƒ“แƒ”แƒ‘แƒ.

  • แƒฎแƒแƒœแƒ’แƒ แƒซแƒšแƒ˜แƒ•แƒ˜ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜.

แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒกแƒ›แƒ”แƒœแƒ”แƒšแƒ˜แƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒแƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ˜แƒ–แƒ แƒฃแƒœแƒแƒ— แƒซแƒ•แƒ”แƒšแƒ–แƒ” แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒš แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ–แƒ”; แƒ—แƒฃ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ“แƒ แƒแƒ แƒ˜แƒก แƒฎแƒแƒœแƒ’แƒ แƒซแƒšแƒ˜แƒ•แƒ˜ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒ™แƒแƒ›แƒžแƒ แƒแƒ›แƒ˜แƒกแƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ. แƒ’แƒแƒ›แƒแƒ แƒฏแƒแƒ‘แƒ, kubernetes แƒจแƒ”แƒ›แƒแƒ“แƒ˜แƒก nginx-แƒ–แƒ”.

  • แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒฏแƒแƒœแƒ›แƒ แƒ—แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ.

แƒ—แƒฃ แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒฏแƒแƒœแƒ›แƒ แƒ—แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒแƒฎแƒแƒš แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒ›แƒ“แƒ”. แƒ—แƒฃ แƒ–แƒ”แƒ›แƒ แƒ“แƒ˜แƒœแƒ”แƒ‘แƒแƒจแƒ˜ แƒ‘แƒ”แƒ•แƒ แƒ˜แƒ, แƒแƒ›แƒแƒก แƒ“แƒ แƒ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. แƒ’แƒแƒ›แƒแƒ แƒฏแƒแƒ‘แƒ แƒฐแƒแƒžแƒ แƒแƒฅแƒกแƒ˜.

แƒ แƒแƒ’แƒแƒ  แƒฌแƒงแƒ“แƒ”แƒ‘แƒ แƒ”แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒ—, แƒแƒฃแƒ–แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒงแƒแƒ— แƒ˜แƒ’แƒ˜ แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒแƒ“ แƒ“แƒ แƒแƒ  แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒแƒ— แƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ  แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒกแƒ›แƒ”แƒœแƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒแƒšแƒ˜ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ แƒซแƒ•แƒ˜แƒ แƒ˜แƒ แƒ“แƒ แƒ˜แƒจแƒ•แƒ˜แƒแƒ—แƒแƒ“ แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ.

แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ (แƒ–แƒ”แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒ“แƒแƒœ) แƒแƒฅแƒ•แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ”แƒ‘แƒ˜:

  • แƒ›แƒกแƒ›แƒ”แƒœแƒ”แƒšแƒ˜ โ€” แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš IP/แƒžแƒแƒ แƒขแƒ–แƒ” แƒ“แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒกแƒ›แƒ”แƒœแƒ”แƒšแƒ˜
  • แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒ”แƒšแƒ˜ - แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒฐแƒแƒกแƒขแƒ˜ แƒ“แƒแƒ›แƒ”แƒœแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ—
  • แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜ - แƒ“แƒแƒ‘แƒแƒšแƒแƒœแƒกแƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒกแƒ˜
  • แƒ™แƒแƒกแƒ”แƒขแƒฃแƒ แƒ˜ โ€” แƒ–แƒ”แƒ“แƒ แƒ“แƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒฏแƒ’แƒฃแƒคแƒ˜ แƒ‘แƒแƒšแƒแƒœแƒกแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—
  • แƒกแƒแƒ‘แƒแƒšแƒแƒ - แƒ–แƒ”แƒ›แƒแƒ— แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜

แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ”แƒก แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ˜ แƒžแƒšแƒฃแƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒกแƒฎแƒ•แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒ•แƒกแƒแƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“; แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ. แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก REST แƒแƒœ gRPC, แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜แƒ gRPC.

แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜ แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“: LDS, VHDS, RDS, CDS แƒ“แƒ EDS. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ“แƒ แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ, แƒ˜แƒ› แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ˜แƒ—, แƒ แƒแƒ› แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒจแƒ˜.

แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒ‘แƒแƒšแƒ แƒกแƒแƒ›แƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒ— แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ”แƒœ ADS (Aggregated Discovery Service). Java แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— แƒ˜แƒฅ แƒแƒ แƒ˜แƒก gRPC แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒžแƒšแƒแƒœแƒ˜แƒก แƒ›แƒ–แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒ•แƒกแƒแƒ— แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒฌแƒงแƒแƒ แƒแƒ“แƒแƒœ.

แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒคแƒแƒ แƒ›แƒแƒก:

envoy.yaml แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ

dynamic_resources:
  ads_config:
    api_type: GRPC
    grpc_services:
      envoy_grpc:
        cluster_name: xds_clr
  cds_config:
    ads: {}
static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        protocol: TCP
        address: 0.0.0.0
        port_value: 10000
    filter_chains:
    - filters:
      - name: envoy.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
          stat_prefix: ingress_http
          rds:
            route_config_name: local_route
            config_source:
              ads: {}
          http_filters:
          - name: envoy.router
  clusters:
  - name: xds_clr
    connect_timeout: 0.25s
    type: LOGICAL_DNS
    dns_lookup_family: V4_ONLY
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: xds_clr
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: xds
                port_value: 6565

แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ แƒแƒ› แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒ— แƒ˜แƒก แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒกแƒ˜แƒ‘แƒ แƒขแƒงแƒ”แƒก แƒ“แƒ แƒจแƒ”แƒ”แƒชแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒแƒก RDS, CDS แƒ“แƒ EDS แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ. แƒ แƒแƒ’แƒแƒ  แƒฎแƒ“แƒ”แƒ‘แƒ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒแƒฅ.

แฒ›แƒแƒ™แƒšแƒ”แƒ“, แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜, แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒ“แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜. แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒแƒ“ แƒ˜แƒก แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก แƒ“แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก, แƒ—แƒฃ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒ—แƒ•แƒ˜แƒ—แƒ›แƒคแƒ แƒ˜แƒœแƒแƒ•แƒ–แƒ” แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒแƒ  แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ, แƒ˜แƒก แƒแƒ  แƒžแƒแƒกแƒฃแƒฎแƒแƒ‘แƒก.
แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก 4 แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜:

  • แƒ”แƒ แƒ—แƒ˜ gRPC แƒœแƒแƒ™แƒแƒ“แƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ‘แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜.
  • แƒชแƒแƒšแƒ™แƒ” แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜, แƒกแƒ แƒฃแƒšแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ.
  • แƒ”แƒ แƒ—แƒ˜ แƒœแƒแƒ™แƒแƒ“แƒ˜, แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ.
  • แƒชแƒแƒšแƒ™แƒ”แƒฃแƒšแƒ˜ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜, แƒ˜แƒœแƒ™แƒ แƒ”แƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ.

แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ xDS แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒแƒ— แƒ›แƒแƒซแƒ แƒแƒแƒ‘แƒ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒกแƒ˜แƒ‘แƒ แƒขแƒงแƒ”แƒก แƒจแƒแƒ แƒ˜แƒก แƒ“แƒ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜, แƒ”แƒก แƒแƒฅแƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒก แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก; แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒ›แƒแƒœแƒแƒ—แƒ•แƒแƒšแƒก แƒ’แƒแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ ADS - แƒ”แƒ แƒ—แƒ˜ แƒœแƒแƒ™แƒแƒ“แƒ˜ RDS, CDS, EDS แƒ“แƒ แƒแƒ แƒแƒ˜แƒœแƒ™แƒ แƒ”แƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ”แƒ‘แƒšแƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— api_type: DELTA_GRPC

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ•แƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒ— แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒกแƒ˜แƒ‘แƒ แƒขแƒงแƒ”แƒจแƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜, แƒ”แƒก แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ‘แƒแƒ“แƒ˜แƒก แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“.

แฒ’แƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ

แƒฌแƒšแƒ˜แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒแƒœ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒกแƒ˜แƒ‘แƒ แƒขแƒงแƒ˜แƒ“แƒแƒœ แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ’แƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜. แƒ˜แƒก แƒ˜แƒงแƒแƒคแƒ แƒ›แƒกแƒ›แƒ”แƒœแƒ”แƒšแƒแƒ“ แƒ“แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒš แƒ“แƒแƒ—แƒ‘แƒแƒ‘แƒแƒ“. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ˜แƒฎแƒกแƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฎแƒ“แƒ”แƒ‘แƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ RDS/LDS-แƒจแƒ˜, แƒ›แƒ”แƒแƒ แƒ” แƒ แƒแƒชแƒ CDS/EDS. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ—แƒฃ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ–แƒ”แƒ“แƒ แƒ“แƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ›แƒกแƒ›แƒ”แƒœแƒ”แƒšแƒ˜ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒแƒ  แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ.

แƒ’แƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ“แƒ แƒแƒก, แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒกแƒ˜แƒ‘แƒ แƒขแƒงแƒ”แƒ“แƒแƒœ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒ แƒ›แƒแƒกแƒแƒšแƒแƒ“แƒœแƒ”แƒšแƒ˜ แƒขแƒแƒ˜แƒ›แƒแƒฃแƒขแƒ˜แƒก แƒ“แƒ แƒแƒก. แƒ—แƒฃ แƒ•แƒแƒ“แƒแƒ, แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒกแƒ›แƒ”แƒœแƒ”แƒšแƒ˜ แƒแƒ  แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ›แƒแƒกแƒ›แƒ”แƒœแƒแƒก แƒžแƒแƒ แƒขแƒ–แƒ”.
แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ: EDS, CDS, แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒฏแƒแƒœแƒ›แƒ แƒ—แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ, RDS, LDS. แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒฏแƒแƒœแƒ›แƒ แƒ—แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜ แƒ’แƒแƒ“แƒแƒ•แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฏแƒแƒœแƒ›แƒ แƒ—แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’.

แƒ—แƒฃ แƒ›แƒกแƒ›แƒ”แƒœแƒ”แƒšแƒ˜ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ, แƒซแƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก DRAIN แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒจแƒ˜ แƒ“แƒ แƒฌแƒแƒ˜แƒจแƒšแƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒก แƒ“แƒแƒฎแƒฃแƒ แƒ•แƒ˜แƒก แƒแƒœ แƒ•แƒแƒ“แƒ˜แƒก แƒแƒ›แƒแƒฌแƒฃแƒ แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ --drain-time-sแƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ 10 แƒฌแƒฃแƒ—แƒ˜.

แƒ’แƒแƒ’แƒ แƒซแƒ”แƒšแƒ“แƒ”แƒ‘แƒ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ