เชฆเซ‚เชค. 1. เชชเชฐเชฟเชšเชฏ

เชถเซเชญเซ‡เชšเซเช›เชพเช“! เช† เชเช• เชจเชพเชจเซ‹ เชฒเซ‡เช– เช›เซ‡ เชœเซ‡ เชชเซเชฐเชถเซเชจเซ‹เชจเชพ เชœเชตเชพเชฌ เช†เชชเซ‡ เช›เซ‡: "เชฆเซ‚เชค เชถเซเช‚ เช›เซ‡?", "เชคเซ‡เชจเซ€ เชถเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐ เช›เซ‡?" เช…เชจเซ‡ "เช•เซเชฏเชพเช‚เชฅเซ€ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚?".

เช† เชถเซเช‚ เช›เซ‡

Envoy เช C++ เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒ L4-L7 เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เช›เซ‡, เชœเซ‡ เช‰เชšเซเชš เชชเซเชฐเชฆเชฐเซเชถเชจ เช…เชจเซ‡ เช‰เชชเชฒเชฌเซเชงเชคเชพ เชชเชฐ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช›เซ‡. เชเช• เชคเชฐเชซ, เช† เชเช• เชฐเซ€เชคเซ‡ nginx เช…เชจเซ‡ haproxy เชจเซเช‚ เชเชจเชพเชฒเซ‹เช— เช›เซ‡, เชœเซ‡ เชคเซ‡เชฎเชจเซ€ เชธเชพเชฅเซ‡ เช•เชพเชฎเช—เซ€เชฐเซ€เชฎเชพเช‚ เชคเซเชฒเชจเชพเชคเซเชฎเช• เช›เซ‡. เชฌเซ€เชœเซ€ เชคเชฐเชซ, เชคเซ‡ เชฎเชพเช‡เช•เซเชฐเซ‹เชธเชฐเซเชตเชฟเชธ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชคเชฐเชซ เชตเชงเซ เชฒเช•เซเชทเซ€ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชœเชพเชตเชพ เช…เชจเซ‡ เช—เซ‹ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเซเชธ เช•เชฐเชคเชพเช‚ เช–เชฐเชพเชฌ เชจเชฅเซ€, เชœเซ‡เชฎ เช•เซ‡ เชเซเชฒ เช…เชฅเชตเชพ เชŸเซเชฐเซ‡เชซเชฟเช•.

haproxy/nginx/envoy เชจเซเช‚ เชธเชฐเช–เชพเชฎเชฃเซ€ เช•เซ‹เชทเซเชŸเช•, เชคเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชธเชคเซเชฏ เชนเซ‹เชตเชพเชจเซ‹ เชฆเชพเชตเซ‹ เช•เชฐเชคเซเช‚ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชธเชพเชฎเชพเชจเซเชฏ เชšเชฟเชคเซเชฐ เช†เชชเซ‡ เช›เซ‡.

nginx
เชนเซ…เชชเซเชฐเซ‹เช•เซเชธเชฟ
เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚
เชŸเซเชฐเซ‡เชซเชฟเช•

เช—เซ€เชฅเชฌ เชชเชฐ เชคเชพเชฐเชพ
11.2k/เชฎเชฟเชฐเชฐ
1.1k/เชฎเชฟเชฐเชฐ
12.4k
27.6k

เชฎเชพเช‚ เชฒเช–เซ‡เชฒเซเช‚
C
C
เชธเซ€ ++
go

API
เช•เซ‹เชˆ
เชฎเชพเชคเซเชฐ เชธเซ‹เช•เซ‡เชŸ/เชชเซเชถ
เชกเซ‡เชŸเชพเชชเซเชฒเซ‡เชจ/เชชเซเชฒ
เช–เซ‡เช‚เชšเซ‹

เชธเช•เซเชฐเชฟเชฏ เช†เชฐเซ‹เช—เซเชฏ เชคเชชเชพเชธ
เช•เซ‹เชˆ
เชนเชพ
เชนเชพ
เชนเชพ

เช“เชชเชจ เชŸเซเชฐเซ‡เชธเชฟเช‚เช—
เชฌเชพเชนเซเชฏ เชชเซเชฒเช—เช‡เชจ
เช•เซ‹เชˆ
เชนเชพ
เชนเชพ

เชœเซ‡เชกเชฌเซเชฒเซเชฏเซเชŸเซ€
เชฌเชพเชนเซเชฏ เชชเซเชฒเช—เช‡เชจ
เช•เซ‹เชˆ
เชนเชพ
เช•เซ‹เชˆ

เชตเชฟเชธเซเชคเชฐเชฃ
เชฒเซเช†/เชธเซ€
เชฒเซเช†/เชธเซ€
เชฒเซเช†/C++
เช•เซ‹เชˆ

เช•เซ‡เชฎ

เช† เชเช• เชฏเซเชตเชพเชจ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช›เซ‡, เชคเซเชฏเชพเช‚ เช˜เชฃเซ€ เชฌเชงเซ€ เชตเชธเซเชคเซเช“ เช–เซ‚เชŸเซ‡ เช›เซ‡, เช•เซ‡เชŸเชฒเซ€เช• เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เช†เชฒเซเชซเชพเชฎเชพเช‚ เช›เซ‡. เชชเชฃ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚, เชคเซ‡เชจเซ€ เชฏเซเชตเชพเชจเซ€เชจเซ‡ เชฒเซ€เชงเซ‡ เชชเชฃ, เชเชกเชชเชฅเซ€ เชตเชฟเช•เชพเชธ เช•เชฐเซ€ เชฐเชนเซ€ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช˜เชฃเซ€ เชฐเชธเชชเซเชฐเชฆ เชธเซเชตเชฟเชงเชพเช“ เช›เซ‡: เช—เชคเชฟเชถเซ€เชฒ เช—เซ‹เช เชตเชฃเซ€, เช˜เชฃเชพ เชคเซˆเชฏเชพเชฐ เชซเชฟเชฒเซเชŸเชฐเซเชธ, เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชซเชฟเชฒเซเชŸเชฐเซเชธ เชฒเช–เชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชเช• เชธเชฐเชณ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ.
เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเชพ เช•เซเชทเซ‡เชคเซเชฐเซ‹ เช†เชฎเชพเช‚เชฅเซ€ เช…เชจเซเชธเชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชชเซเชฐเชฅเชฎ เชคเซเชฏเชพเช‚ 2 เชเชจเซเชŸเชฟเชชเซ‡เชŸเชฐเซเชจ เช›เซ‡:

  • เชธเซเชฅเชฟเชฐ เชฐเซ€เช•เซ‹เช‡เชฒ.

เชนเช•เซ€เช•เชค เช เช›เซ‡ เช•เซ‡ เช† เช•เซเชทเชฃเซ‡ เชฎเชพเช‚ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช•เซ‹เชˆ เช•เซ‡เชถเซ€เช‚เช— เชธเชชเซ‹เชฐเซเชŸ เชจเชฅเซ€. เช—เซ‚เช—เชฒเชจเชพ เชฒเซ‹เช•เซ‹ เช† เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡ เช เซ€เช• เช•เชฐเซ‹. เช† เชตเชฟเชšเชพเชฐ เชเช•เชตเชพเชฐ เช…เชฎเชฒเชฎเชพเช‚ เช†เชตเชถเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ RFC เช…เชจเซเชชเชพเชฒเชจเชจเซ€ เชคเชฎเชพเชฎ เชธเซ‚เช•เซเชทเซเชฎเชคเชพ (เชเซ‚ เชนเซ‡เชกเชฐ) เช…เชจเซ‡ เชšเซ‹เช•เซเช•เชธ เช…เชฎเชฒเซ€เช•เชฐเชฃเซ‹ เชฎเชพเชŸเซ‡ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เช…เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เช†เชฒเซเชซเชพ เชชเชฃ เชจเชฅเซ€, เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชšเชฐเซเชšเชพเชฎเชพเช‚ เช›เซ‡, PR เช–เซ‹เชฒเซ‹ (เชœเซเชฏเชพเชฐเซ‡ เชนเซเช‚ PR เชฒเซ‡เช– เชฒเช–เซ€ เชฐเชนเซเชฏเซ‹ เชนเชคเซ‹, เชคเซเชฏเชพเชฐเซ‡ PR เชธเซเชฅเชฟเชฐ เชฅเชˆ เช—เชฏเซเช‚ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เช† เชฎเซเชฆเซเชฆเซ‹ เชนเชœเซ€ เชชเชฃ เชธเซเชธเช‚เช—เชค เช›เซ‡).

เชนเชฎเชฃเชพเช‚ เชฎเชพเชŸเซ‡, เชธเซเชŸเซ‡เชŸเชฟเช•เซเชธ เชฎเชพเชŸเซ‡ nginx เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.

  • เชธเซเชฅเชฟเชฐ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ.

เชคเชฎเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เชคเซ‡ เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชจเชฅเซ€. เชธเซเชฅเชฟเชฐ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชฎเชพเช‚ เชฒเช•เซเชทเชฃเซ‹ เช–เซเชฒเซเชฒเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เชจเชนเซ€เช‚. เชคเซเชฏเชพเช‚ เช˜เชฃเซ€ เช•เซเชทเชฃเซ‹ เช›เซ‡:

yaml เชฎเชพเช‚ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชคเชฎเชพเชฐเซ€ เชญเซ‚เชฒ เชฅเชถเซ‡, เชตเชฐเซเชฌเซ‹เชธเชฟเชŸเซ€ เชฎเชพเชŸเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชจเซ‡ เช เชชเช•เซ‹ เช†เชชเชถเซ‹ เช…เชจเซ‡ เชตเชฟเชšเชพเชฐเซ‹ เช•เซ‡ nginx/haproxy เชฐเซ‚เชชเชฐเซ‡เช–เชพเช“, เช“เช›เซ€ เชธเช‚เชฐเชšเชฟเชค เชนเซ‹เชตเชพ เช›เชคเชพเช‚, เชตเชงเซ เชธเช‚เช•เซเชทเชฟเชชเซเชค เช›เซ‡. เชคเซ‡ เชฎเซเชฆเซเชฆเซ‹ เช›เซ‡. Nginx เช…เชจเซ‡ Haproxy เชจเซ€ เช—เซ‹เช เชตเชฃเซ€ เชนเชพเชฅ เชฆเซเชตเชพเชฐเชพ เชธเช‚เชชเชพเชฆเชจ เชฎเชพเชŸเซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€, เช…เชจเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช•เซ‹เชกเชฎเชพเช‚เชฅเซ€ เชœเชจเชฐเซ‡เชถเชจ เชฎเชพเชŸเซ‡. เชธเชฎเช—เซเชฐ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชฎเชพเช‚ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡ เชชเซเชฐเซ‹เชŸเซ‹เชฌเซเชซ, เชชเซเชฐเซ‹เชŸเซ‹ เชซเชพเช‡เชฒเซ‹เชฎเชพเช‚เชฅเซ€ เชคเซ‡เชจเซ‡ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเซเช‚ เช เชญเซ‚เชฒ เช•เชฐเชตเซ€ เชตเชงเซ เชฎเซเชถเซเช•เซ‡เชฒ เช›เซ‡.

เช•เซ‡เชจเซ‡เชฐเซ€, b/g เชœเชฎเชพเชตเชŸเชจเชพ เชฆเซƒเชถเซเชฏเซ‹ เช…เชจเซ‡ เช˜เชฃเซเช‚ เชฌเชงเซเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชฎเชพเชคเซเชฐ เช—เชคเชฟเชถเซ€เชฒ เช—เซ‹เช เชตเชฃเซ€เชฎเชพเช‚ เชœ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชนเซเช‚ เชเชฎ เชจเชฅเซ€ เช•เชนเซ‡เชคเซ‹ เช•เซ‡ เช† เชธเซเชฅเชฟเชฐ เชฐเซ€เชคเซ‡ เช•เชฐเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€, เช†เชชเชฃเซ‡ เชฌเชงเชพ เชคเซ‡ เช•เชฐเซ€เช เช›เซ€เช. เชชเชฐเช‚เชคเซ เช† เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เช•เซ‹เชˆเชชเชฃ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเชฎเชพเช‚, เช•เซเชฐเซ‰เชš เชชเชนเซ‡เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เชธเชนเชฟเชค.

เช•เชพเชฐเซเชฏเซ‹ เช•เซ‡ เชœเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชฐเชพเชœเชฆเซ‚เชค เช…เชจเชฟเชตเชพเชฐเซเชฏ เช›เซ‡:

  • เชœเชŸเชฟเชฒ เช…เชจเซ‡ เช—เชคเชฟเชถเซ€เชฒ เชธเชฟเชธเซเชŸเชฎเซ‹เชฎเชพเช‚ เชŸเซเชฐเชพเชซเชฟเช• เชธเช‚เชคเซเชฒเชจ. เช†เชฎเชพเช‚ เชธเชฐเซเชตเชฟเชธ เชฎเซ‡เชถเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เชœเชฐเซ‚เชฐเซ€ เชจเชฅเซ€ เช•เซ‡ เชคเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชœ เชนเซ‹เชฏ.
  • เชตเชฟเชคเชฐเชฟเชค เชŸเซเชฐเซ‡เชธเชฟเช‚เช— เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ, เชœเชŸเชฟเชฒ เช…เชงเชฟเช•เซƒเชคเชคเชพ เช…เชฅเชตเชพ เช…เชจเซเชฏ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เช•เซ‡ เชœเซ‡ เช‰เชชเชฒเชฌเซเชง เช›เซ‡ เชคเซ‡เชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เชฌเซ‰เช•เซเชธเชจเซ€ เชฌเชนเชพเชฐ เช…เชฅเชตเชพ เชธเช—เชตเชกเชคเชพเชชเซ‚เชฐเซเชตเช• เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชพเชฏเซ‡เชฒ เช›เซ‡, เชชเชฐเช‚เชคเซ nginx/haproxy เชฎเชพเช‚ เชคเชฎเชพเชฐเซ‡ เชฒเซเช† เช…เชจเซ‡ เชถเช‚เช•เชพเชธเซเชชเชฆ เชชเซเชฒเช—เช‡เชจเซเชธเชฅเซ€ เช˜เซ‡เชฐเชพเชฏเซ‡เชฒเชพ เชฐเชนเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชฌเช‚เชจเซ‡, เชœเซ‹ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ เชคเซ‹, เช‰เชšเซเชš เชชเซเชฐเชฆเชฐเซเชถเชจ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡.

เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡

เชฆเซ‚เชค เชฎเชพเชคเซเชฐ เชกเซ‹เช•เชฐ เช‡เชฎเซ‡เชœ เชคเชฐเซ€เช•เซ‡ เชฆเซเชตเชฟเชธเช‚เช—เซ€เช“เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช‡เชฎเซ‡เชœ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชธเซเชŸเซ‡เชŸเชฟเช• เช•เชจเซเชซเชฟเช—เชฐเซ‡เชถเชจเชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ เชงเชฐเชพเชตเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เช…เชฎเชจเซ‡ เชซเช•เซเชค เชฌเช‚เชงเชพเชฐเชฃเชจเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡ เชœ เชคเซ‡เชฎเชพเช‚ เชฐเชธ เช›เซ‡.

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

เช—เชคเชฟเชถเซ€เชฒ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ

เช†เชชเชฃเซ‡ เช•เชˆ เชธเชฎเชธเซเชฏเชพเชจเซ‹ เช‰เช•เซ‡เชฒ เชถเซ‹เชงเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช? เชคเชฎเซ‡ เชซเช•เซเชค เชฒเซ‹เชก เชนเซ‡เช เชณ เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เช—เซ‹เช เชตเชฃเซ€เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€; "เชจเชพเชจเซ€" เชธเชฎเชธเซเชฏเชพเช“ เชŠเชญเซ€ เชฅเชถเซ‡:

  • เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชฎเชพเชจเซเชฏเชคเชพ.

เชฐเซ‚เชชเชฐเซ‡เช–เชพ เชฎเซ‹เชŸเซ€ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, เชคเซ‡ เช–เซ‚เชฌ เชฎเซ‹เชŸเซ€ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, เชœเซ‹ เช†เชชเชฃเซ‡ เชคเซ‡เชจเซ‡ เชเช•เชธเชพเชฅเซ‡ เช“เชตเชฐเชฒเซ‹เชก เช•เชฐเซ€เช, เชคเซ‹ เช•เซเชฏเชพเช‚เช• เชญเซ‚เชฒ เชฅเชตเชพเชจเซ€ เชถเช•เซเชฏเชคเชพ เชตเชงเซ€ เชœเชพเชฏ เช›เซ‡.

  • เชฒเชพเช‚เชฌเชพ เช—เชพเชณเชพเชจเชพ เชœเซ‹เชกเชพเชฃเซ‹.

เชจเชตเชพ เชถเซเชฐเซ‹เชคเชพเชจเซ€ เชถเชฐเซ‚เช†เชค เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชคเชฎเชพเชฐเซ‡ เชœเซ‚เชจเชพ เชชเชฐ เชšเชพเชฒเชคเชพ เช•เชจเซ‡เช•เซเชถเชจเซเชธเชจเซ€ เช•เชพเชณเชœเซ€ เชฒเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡; เชœเซ‹ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชตเชพเชฐเช‚เชตเชพเชฐ เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชฒเชพเช‚เชฌเชพ เช—เชพเชณเชพเชจเชพ เชœเซ‹เชกเชพเชฃเซ‹ เช›เซ‡, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชธเชฎเชพเชงเชพเชจ เชถเซ‹เชงเชตเซเช‚ เชชเชกเชถเซ‡. เชนเซ‡เชฒเซ‹, เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ nginx เชชเชฐ เชชเซเชฐเชตเซ‡เชถ เช•เชฐเซ‡ เช›เซ‡.

  • เชธเช•เซเชฐเชฟเชฏ เช†เชฐเซ‹เช—เซเชฏ เชคเชชเชพเชธเซ‹.

เชœเซ‹ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชธเช•เซเชฐเชฟเชฏ เช†เชฐเซ‹เช—เซเชฏ เชคเชชเชพเชธเซ‹ เช›เซ‡, เชคเซ‹ เชŸเซเชฐเชพเชซเชฟเช• เชฎเซ‹เช•เชฒเชคเชพ เชชเชนเซ‡เชฒเชพ เช…เชฎเชพเชฐเซ‡ เชคเซ‡ เชฌเชงเชพเชจเซ‡ เชจเชตเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเชฎเชพเช‚ เชฌเซ‡ เชตเชพเชฐ เชคเชชเชพเชธเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชœเซ‹ เชคเซเชฏเชพเช‚ เช˜เชฃเชพ เชฌเชงเชพ เช…เชชเชธเซเชŸเซเชฐเซ€เชฎ เช›เซ‡, เชคเซ‹ เช† เชธเชฎเชฏ เชฒเซ‡ เช›เซ‡. เชนเซ‡เชฒเซ‹ เชนเซ‡เชชเซเชฐเซ‹เช•เซเชธเซ€.

เชฎเชพเช‚ เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช‰เช•เซ‡เชฒเชพเชฏ เช›เซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚เชฐเซ‚เชชเชฐเซ‡เช–เชพเชจเซ‡ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชฒเซ‹เชก เช•เชฐเซ€เชจเซ‡, เชชเซ‚เชฒ เชฎเซ‹เชกเซ‡เชฒ เช…เชจเซเชธเชพเชฐ, เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เช…เชฒเช— เชญเชพเช—เซ‹เชฎเชพเช‚ เชตเชฟเชญเชพเชœเชฟเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชœเซ‡ เชญเชพเช— เชฌเชฆเชฒเชพเชฏเซ‹ เชจเชฅเซ€ เชคเซ‡เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชถเซเชฐเซ‹เชคเชพ, เชœเซ‡ เชซเชฐเซ€เชฅเซ€ เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช–เชฐเซเชšเชพเชณ เช›เซ‡ เช…เชจเซ‡ เชญเชพเช—เซเชฏเซ‡ เชœ เชฌเชฆเชฒเชพเชฏ เช›เซ‡.

เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ (เช‰เชชเชฐเชจเซ€ เชซเชพเช‡เชฒเชฎเชพเช‚เชฅเซ€) เชจเซ€เชšเซ‡เชจเซ€ เชธเช‚เชธเซเชฅเชพเช“ เชงเชฐเชพเชตเซ‡ เช›เซ‡:

  • เชถเซเชฐเซ‹เชคเชพ - เชšเซ‹เช•เซเช•เชธ ip/เชชเซ‹เชฐเซเชŸ เชชเชฐ เชฒเชŸเช•เชคเซ‹ เชธเชพเช‚เชญเชณเชจเชพเชฐ
  • เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชนเซ‹เชธเซเชŸ - เชกเซ‹เชฎเซ‡เชจ เชจเชพเชฎ เชฆเซเชตเชพเชฐเชพ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชนเซ‹เชธเซเชŸ
  • เชฎเชพเชฐเซเช— - เชธเช‚เชคเซเชฒเชจ เชจเชฟเชฏเชฎ
  • เช•เซเชฒเชธเซเชŸเชฐ - เชธเช‚เชคเซเชฒเชฟเชค เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชธเชพเชฅเซ‡ เช…เชชเชธเซเชŸเซเชฐเซ€เชฎเซเชธเชจเซเช‚ เชœเซ‚เชฅ
  • เชเชจเซเชกเชชเซ‹เช‡เชจเซเชŸ - เช…เชชเชธเซเชŸเซเชฐเซ€เชฎ เช‰เชฆเชพเชนเชฐเชฃ เชธเชฐเชจเชพเชฎเซเช‚

เช†เชฎเชพเช‚เชจเซ€ เชฆเชฐเซ‡เช• เชเชจเซเชŸเชฟเชŸเซ€ เช…เชจเซ‡ เช…เชจเซเชฏ เช•เซ‡เชŸเชฒเชพเช•เชจเซ‡ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชญเชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡; เช† เชฎเชพเชŸเซ‡, เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชธเซ‡เชตเชพเชจเซเช‚ เชธเชฐเชจเชพเชฎเซเช‚ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เช•เชฐเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚เชฅเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพ เชชเซเชฐเชพเชชเซเชค เชฅเชถเซ‡. เชธเซ‡เชตเชพ REST เช…เชฅเชตเชพ gRPC เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, gRPC เชชเซเชฐเชพเชงเชพเชจเซเชฏเช•เซเชทเชฎ เช›เซ‡.

เชธเซ‡เชตเชพเช“เชจเซ‡ เช…เชจเซเช•เซเชฐเชฎเซ‡ เชจเชพเชฎ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡: LDS, VHDS, RDS, CDS เช…เชจเซ‡ EDS. เชคเชฎเซ‡ เชธเซเชฅเชฟเชฐ เช…เชจเซ‡ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซ‡ เชœเซ‹เชกเซ€ เชถเช•เซ‹ เช›เซ‹, เชฎเชฐเซเชฏเชพเชฆเชพ เชธเชพเชฅเซ‡ เช•เซ‡ เช—เชคเชฟเชถเซ€เชฒ เชธเช‚เชธเชพเชงเชจ เชธเซเชฅเชฟเชฐ เชเช•เชฎเชพเช‚ เชธเซเชชเชทเซเชŸ เช•เชฐเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€.

เชฎเซ‹เชŸเชพ เชญเชพเช—เชจเชพ เช•เชพเชฐเซเชฏเซ‹ เชฎเชพเชŸเซ‡, เช›เซ‡เชฒเซเชฒเซ€ เชคเซเชฐเชฃ เชธเซ‡เชตเชพเช“เชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡, เชคเซ‡เชจเซ‡ เชเชกเซ€เชเชธ (เชเช—เซเชฐเซ€เช—เซ‡เชŸเซ‡เชก เชกเชฟเชธเซเช•เชตเชฐเซ€ เชธเชฐเซเชตเชฟเชธ) เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชœเชพเชตเชพ เช…เชจเซ‡ เชœเชพเช“ เชคเซเชฏเชพเช‚ 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

เชตเชฟเชจเช‚เชคเซ€เชฎเชพเช‚ เชจเซ‹เชก เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐเซเชธ เชนเซ‹เชตเชพเชฅเซ€, เช…เชฎเซ‡ เชตเชฟเชตเชฟเชง เชธเช‚เชธเชพเชงเชจเซ‹ เชตเชฟเชตเชฟเชง เช‰เชฆเชพเชนเชฐเชฃเซ‹ เชฎเชพเชŸเซ‡ เช•เช‚เชŸเซเชฐเซ‹เชฒ-เชชเซเชฒเซ‡เชจเชจเซ‡ เชฎเซ‹เช•เชฒเซ€ เชถเช•เซ€เช เช›เซ€เช เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚, เช† เชธเชฐเซเชตเชฟเชธ เชฎเซ‡เชถ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช…เชจเซเช•เซ‚เชณ เช›เซ‡.

เชนเซ‚เช‚เชซเชพเชณเซเช‚

เชฎเชพเช‚ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เชธเซเชŸเชพเชฐเซเชŸเช…เชช เชตเช–เชคเซ‡ เช…เชฅเชตเชพ เช•เช‚เชŸเซเชฐเซ‹เชฒ-เชชเซเชฒเซ‡เชจเชฎเชพเช‚เชฅเซ€ เชจเชตเซเช‚ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชฐเชฟเชธเซ‹เชฐเซเชธ เชตเซ‹เชฐเซเชฎเช…เชช เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡. เชคเซ‡ เชฒเชฟเชธเชจเชฐ เชตเซ‹เชฐเซเชฎเช…เชช เช…เชจเซ‡ เช•เซเชฒเชธเซเชŸเชฐ เชตเซ‹เชฐเซเชฎเช…เชชเชฎเชพเช‚ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒเซเช‚ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เช†เชฐเชกเซ€เชเชธ/เชเชฒเชกเซ€เชเชธเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ‡ เชชเซเชฐเชฅเชฎ เชฒเซ‹เชจเซเชš เชฅเชพเชฏ เช›เซ‡, เชœเซเชฏเชพเชฐเซ‡ เชธเซ€เชกเซ€เชเชธ/เชˆเชกเซ€เชเชธเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เชฅเชพเชฏ เช›เซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชœเซ‹ เชฎเชพเชคเซเชฐ เช…เชชเชธเซเชŸเซเชฐเซ€เชฎเซเชธ เชฌเชฆเชฒเชพเชฏ เช›เซ‡, เชคเซ‹ เชธเชพเช‚เชญเชณเชจเชพเชฐ เชซเชฐเซ€เชฅเซ€ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชคเซ‹ เชจเชฅเซ€.

เชตเซ‹เชฐเซเชฎ-เช…เชช เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ-เชชเซเชฒเซ‡เชจเชฎเชพเช‚เชฅเซ€ เช†เชถเซเชฐเชฟเชค เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชœเซ‹ เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟ เชฅเชพเชฏ, เชคเซ‹ เชชเซเชฐเชพเชฐเช‚เชญ เชธเชซเชณ เชฅเชถเซ‡ เชจเชนเซ€เช‚ เช…เชจเซ‡ เชจเชตเชพ เชถเซเชฐเซ‹เชคเชพ เชชเซ‹เชฐเซเชŸ เชชเชฐ เชธเชพเช‚เชญเชณเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚.
เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เช“เชฐเซเชกเชฐ: EDS, CDS, เชธเช•เซเชฐเชฟเชฏ เช†เชฐเซ‹เช—เซเชฏ เชคเชชเชพเชธ, RDS, LDS. เชธเช•เซเชฐเชฟเชฏ เช†เชฐเซ‹เช—เซเชฏ เชคเชชเชพเชธเซ‹ เชธเช•เซเชทเชฎ เชนเซ‹เชตเชพ เชธเชพเชฅเซ‡, เชเช• เชธเชซเชณ เช†เชฐเซ‹เช—เซเชฏ เชคเชชเชพเชธ เชชเช›เซ€ เชœ เชŸเซเชฐเชพเชซเชฟเช• เช…เชชเชธเซเชŸเซเชฐเซ€เชฎ เชœเชถเซ‡.

เชœเซ‹ เชธเชพเช‚เชญเชณเชจเชพเชฐเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเซ‹เชฏ, เชคเซ‹ เชœเซ‚เชจเซ‹ เชกเซเชฐเซ‡เช‡เชจ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชœเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชฌเชงเชพ เช•เชจเซ‡เช•เซเชถเชจเซเชธ เชฌเช‚เชง เชฅเชˆ เชœเชพเชฏ เช…เชฅเชตเชพ เชธเชฎเชฏ เชธเชฎเชพเชชเซเชค เชฅเชˆ เชœเชพเชฏ เชชเช›เซ€ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. --drain-time-s, เชกเชฟเชซเซ‰เชฒเซเชŸ 10 เชฎเชฟเชจเชฟเชŸ.

เชšเชพเชฒเซ เชฐเชพเช–เชตเชพ เชฎเชพเชŸเซ‡.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹