āĻĻā§‚āĻ¤āĨ¤ 1āĨ¤ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤āĻŋ

āĻļā§āĻ­ā§‡āĻšā§āĻ›āĻž! āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ¯āĻž āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻ‰āĻ¤ā§āĻ¤āĻ° āĻĻā§‡āĻ¯āĻŧ: "āĻĻā§‚āĻ¤ āĻ•ā§€?", "āĻ•ā§‡āĻ¨ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨?" āĻāĻŦāĻ‚ "āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻļā§āĻ°ā§ āĻ•āĻ°āĻŦā§‡āĻ¨?"āĨ¤

āĻāĻ‡ āĻ•āĻŋ āĻšāĻ¯āĻŧ?

āĻĻā§‚āĻ¤ āĻšāĻ˛ C++ āĻ āĻ˛ā§‡āĻ–āĻž āĻāĻ•āĻŸāĻŋ L4-L7 āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ°, āĻ¯āĻž āĻ‰āĻšā§āĻš āĻ•āĻžāĻ°ā§āĻ¯āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻĻā§ƒāĻˇā§āĻŸāĻŋ āĻ¨āĻŋāĻŦāĻĻā§āĻ§ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ•āĻĻāĻŋāĻ•ā§‡, āĻāĻŸāĻŋ āĻ•ā§‹āĻ¨ā§‹āĻ­āĻžāĻŦā§‡ nginx āĻāĻŦāĻ‚ haproxy-āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻ—, āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ā§‡ āĻ¤ā§āĻ˛āĻ¨ā§€āĻ¯āĻŧāĨ¤ āĻ…āĻ¨ā§āĻ¯āĻĻāĻŋāĻ•ā§‡, āĻāĻŸāĻŋ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻŦā§‡āĻļāĻŋ āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻāĻŦāĻ‚ āĻāĻ° āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻœāĻžāĻ­āĻž āĻāĻŦāĻ‚ āĻ—ā§‹ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ°ā§‡āĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ–āĻžāĻ°āĻžāĻĒ āĻ¨ā§‡āĻ‡, āĻ¯ā§‡āĻŽāĻ¨ āĻœā§āĻ‰āĻ˛ āĻŦāĻž āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ•āĨ¤

āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ/āĻāĻ¨āĻœāĻŋāĻ¨ā§‡āĻ•ā§āĻ¸/āĻĻā§‚āĻ¤ā§‡āĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻ¸āĻžāĻ°āĻŖāĻŋ, āĻāĻŸāĻŋ āĻĒāĻ°āĻŽ āĻ¸āĻ¤ā§āĻ¯ āĻŦāĻ˛ā§‡ āĻĻāĻžāĻŦāĻŋ āĻ•āĻ°ā§‡ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻšāĻŋāĻ¤ā§āĻ° āĻĻā§‡āĻ¯āĻŧāĨ¤

nginx
HAProxy
āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤
āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ•

āĻ—āĻŋāĻĨā§āĻŦā§‡ āĻ¤āĻžāĻ°āĻž
11.2k/āĻŽāĻŋāĻ°āĻ°
1.1k/āĻŽāĻŋāĻ°āĻ°
12.4k
27.6k

āĻ˛ā§‡āĻ–āĻž
C
C
āĻ¸āĻŋ ++
go

āĻāĻĒāĻŋāĻ†āĻ‡
āĻ¨āĻž
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻ•ā§‡āĻŸ/āĻ§āĻžāĻ•ā§āĻ•āĻž
āĻĄā§‡āĻŸāĻžāĻĒā§āĻ˛ā§‡āĻ¨/āĻŸāĻžāĻ¨
āĻŸāĻžāĻ¨

āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž
āĻ¨āĻž
āĻšāĻžāĻ
āĻšāĻžāĻ
āĻšāĻžāĻ

āĻ“āĻĒā§‡āĻ¨ āĻŸā§āĻ°ā§‡āĻ¸āĻŋāĻ‚
āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨
āĻ¨āĻž
āĻšāĻžāĻ
āĻšāĻžāĻ

āĻœā§‡āĻĄāĻžāĻŦā§āĻ˛ā§āĻŸāĻŋ
āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨
āĻ¨āĻž
āĻšāĻžāĻ
āĻ¨āĻž

āĻĒā§āĻ°āĻ¸āĻžāĻ°
āĻ˛ā§āĻ¯āĻŧāĻž/āĻ¸āĻŋ
āĻ˛ā§āĻ¯āĻŧāĻž/āĻ¸āĻŋ
āĻ˛ā§āĻ¯āĻŧāĻž/āĻ¸āĻŋ++
āĻ¨āĻž

āĻ•āĻŋ āĻœāĻ¨ā§āĻ¯?

āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¤āĻ°ā§āĻŖ āĻĒā§āĻ°āĻœā§‡āĻ•ā§āĻŸ, āĻ…āĻ¨ā§‡āĻ• āĻ•āĻŋāĻ›ā§ āĻ…āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ†āĻ›ā§‡, āĻ•āĻŋāĻ›ā§ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ†āĻ˛āĻĢāĻžāĻ¯āĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤, āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻ¤āĻžāĻ° āĻ¯ā§ŒāĻŦāĻ¨ā§‡āĻ° āĻ•āĻžāĻ°āĻŖā§‡, āĻĻā§āĻ°ā§āĻ¤ āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āĻ°āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡: āĻ—āĻ¤āĻŋāĻļā§€āĻ˛ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨, āĻ…āĻ¨ā§‡āĻ• āĻ¤ā§ˆāĻ°āĻŋ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°, āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻœā§‡āĻ° āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻ˛ā§‡āĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻšāĻœ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸āĨ¤
āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ—ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°āĻ—ā§āĻ˛āĻŋ āĻāĻŸāĻŋ āĻĨā§‡āĻ•ā§‡ āĻ…āĻ¨ā§āĻ¸āĻ°āĻŖ āĻ•āĻ°ā§‡, āĻ¤āĻŦā§‡ āĻĒā§āĻ°āĻĨāĻŽā§‡ 2āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻŸāĻŋāĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

  • āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ°āĻŋāĻ•ā§‹āĻ¯āĻŧā§‡āĻ˛āĨ¤

āĻ˜āĻŸāĻ¨āĻž āĻšāĻ˛ āĻāĻ‡ āĻŽā§āĻšā§‚āĻ°ā§āĻ¤ā§‡ āĻ‡āĻ¨ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻ•ā§‹āĻ¨ āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨. āĻ—ā§āĻ—āĻ˛ā§‡āĻ° āĻ˛ā§‹āĻ•ā§‡āĻ°āĻž āĻāĻ‡ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ›ā§‡ āĻ āĻŋāĻ• āĻ•āĻ°āĻž. āĻ§āĻžāĻ°āĻŖāĻžāĻŸāĻŋ āĻāĻ•āĻŦāĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻŦā§‡ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ RFC āĻ¸āĻŽā§āĻŽāĻ¤āĻŋāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§‚āĻ•ā§āĻˇā§āĻŽāĻ¤āĻž (āĻšāĻŋāĻĄāĻŧāĻŋāĻ¯āĻŧāĻžāĻ–āĻžāĻ¨āĻž āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽ), āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ āĻ¤āĻŦā§‡ āĻ†āĻĒāĻžāĻ¤āĻ¤ āĻāĻŸāĻŋ āĻ†āĻ˛āĻĢāĻžāĻ“ āĻ¨āĻ¯āĻŧ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻšāĻ˛āĻ›ā§‡, PR āĻ–ā§‹āĻ˛āĻž (āĻ¯āĻ–āĻ¨ āĻ†āĻŽāĻŋ PR āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻ˛āĻŋāĻ–āĻ›āĻŋāĻ˛āĻžāĻŽ, āĻ¤āĻ–āĻ¨ PR āĻšāĻŋāĻŽāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ¤āĻŦā§‡ āĻāĻ‡ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻāĻ–āĻ¨āĻ“ āĻĒā§āĻ°āĻžāĻ¸āĻ™ā§āĻ—āĻŋāĻ•)āĨ¤

āĻ†āĻĒāĻžāĻ¤āĻ¤, āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ nginx āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨āĨ¤

  • āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻāĻŸāĻž āĻ•āĻŋ āĻœāĻ¨ā§āĻ¯ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¨āĻž. āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻž āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻ…āĻ¨ā§‡āĻ• āĻŽā§āĻšā§‚āĻ°ā§āĻ¤ āĻ†āĻ›ā§‡:

yaml-āĻ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ†āĻĒāĻ¨āĻŋ āĻ­ā§āĻ˛ āĻšāĻŦā§‡āĻ¨, āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻļāĻŦā§āĻĻāĻšāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤āĻŋāĻ°āĻ¸ā§āĻ•āĻžāĻ° āĻ•āĻ°āĻŦā§‡āĻ¨ āĻāĻŦāĻ‚ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¯ā§‡ nginx/haproxy āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨, āĻ¯āĻĻāĻŋāĻ“ āĻ•āĻŽ āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ—āĻ¤, āĻ¤āĻŦā§‡ āĻ†āĻ°āĻ“ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤āĨ¤ āĻāĻŸāĻžāĻ‡ āĻ†āĻ¸āĻ˛ āĻ•āĻĨāĻž. Nginx āĻāĻŦāĻ‚ Haproxy āĻāĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻšāĻžāĻ¤ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻ•ā§‹āĻĄ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻœāĻ¨ā§āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯āĨ¤ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻŦāĻĢ, āĻĒā§āĻ°ā§‹āĻŸā§‹ āĻĢāĻžāĻ‡āĻ˛ āĻĨā§‡āĻ•ā§‡ āĻāĻŸāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ­ā§āĻ˛ āĻ•āĻ°āĻž āĻ…āĻ¨ā§‡āĻ• āĻŦā§‡āĻļāĻŋ āĻ•āĻ āĻŋāĻ¨āĨ¤

āĻ•ā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ, āĻŦāĻŋ/āĻœāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§‡āĻ• āĻ•āĻŋāĻ›ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ—āĻ¤āĻŋāĻļā§€āĻ˛ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ†āĻŽāĻŋ āĻŦāĻ˛āĻ›āĻŋ āĻ¨āĻž āĻ¯ā§‡ āĻāĻŸāĻž āĻ¸ā§āĻĨāĻŋāĻ°āĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻž āĻ¯āĻžāĻŦā§‡ āĻ¨āĻž, āĻ†āĻŽāĻ°āĻž āĻ¸āĻŦāĻžāĻ‡ āĻāĻŸāĻž āĻ•āĻ°āĻŋāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•ā§āĻ°āĻžāĻš āĻĒāĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ°ā§‡, āĻ‡āĻ¨ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻ¸āĻšāĨ¤

āĻ¯ā§‡ āĻ•āĻžāĻœāĻ—ā§āĻ˛ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻā§‚āĻ¤ āĻ…āĻĒāĻ°āĻŋāĻšāĻžāĻ°ā§āĻ¯:

  • āĻœāĻŸāĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ—āĻ¤āĻŋāĻļā§€āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻ­āĻžāĻ°āĻ¸āĻžāĻŽā§āĻ¯āĨ¤ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻœāĻžāĻ˛ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ…āĻ—āĻ¤ā§āĻ¯āĻž āĻāĻ•āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻ¯āĻŧāĨ¤
  • āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸā§‡āĻĄ āĻŸā§āĻ°ā§‡āĻ¸āĻŋāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž, āĻœāĻŸāĻŋāĻ˛ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻŦāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¯āĻž āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻŦāĻžāĻ•ā§āĻ¸ā§‡āĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻŦāĻž āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻŽāĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ 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

āĻ—āĻ¤āĻŋāĻļā§€āĻ˛ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨

āĻ†āĻŽāĻ°āĻž āĻ•ā§‹āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ–ā§āĻāĻœāĻ›āĻŋ? āĻ†āĻĒāĻ¨āĻŋ āĻ˛ā§‹āĻĄā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž; "āĻ›ā§‹āĻŸ" āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĻā§‡āĻ–āĻž āĻĻā§‡āĻŦā§‡:

  • āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻŦā§ˆāĻ§āĻ¤āĻž.

āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĻŸāĻŋ āĻŦāĻĄāĻŧ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻāĻŸāĻŋ āĻ–ā§āĻŦ āĻŦāĻĄāĻŧ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻāĻ•āĻŦāĻžāĻ°ā§‡ āĻ“āĻ­āĻžāĻ°āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻŋ, āĻ•ā§‹āĻĨāĻžāĻ“ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻŦā§‡āĻĄāĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤

  • āĻĻā§€āĻ°ā§āĻ˜āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĨ¤

āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻļā§āĻ°ā§‹āĻ¤āĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒā§āĻ°āĻžāĻ¨ā§‹āĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĻ—ā§āĻ˛āĻŋāĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ¤ā§‡ āĻšāĻŦā§‡; āĻ¯āĻĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ˜āĻ¨ āĻ˜āĻ¨ āĻ˜āĻŸā§‡ āĻāĻŦāĻ‚ āĻĻā§€āĻ°ā§āĻ˜āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĨāĻžāĻ•ā§‡ āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻā§‹āĻ¤āĻžāĻ° āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻšā§āĻ¯āĻžāĻ˛ā§‹, kubernetes nginx āĻ āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°āĻ›ā§‡āĨ¤

  • āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĨ¤

āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻĨāĻžāĻ•ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻĒāĻžāĻ āĻžāĻ¨ā§‹āĻ° āĻ†āĻ—ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĻā§āĻŦāĻžāĻ° āĻšā§‡āĻ• āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻ‰āĻœāĻžāĻ¨ā§‡ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§‡āĻ¯āĻŧāĨ¤ āĻšā§āĻ¯āĻžāĻ˛ā§‹ āĻšā§āĻ¯āĻžāĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĨ¤

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻāĻ‡ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ—āĻ¤āĻŋāĻļā§€āĻ˛āĻ­āĻžāĻŦā§‡ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡, āĻĒā§āĻ˛ āĻŽāĻĄā§‡āĻ˛ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋāĻ•ā§‡ āĻĒā§ƒāĻĨāĻ• āĻ…āĻ‚āĻļā§‡ āĻ­āĻžāĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ¯ā§‡ āĻ…āĻ‚āĻļāĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧāĻ¨āĻŋ āĻ¤āĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ†āĻ°āĻŽā§āĻ­ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨ āĻ¨āĻžāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻœāĻ¨ āĻļā§āĻ°ā§‹āĻ¤āĻž, āĻ¯āĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛ āĻāĻŦāĻ‚ āĻ–ā§āĻŦ āĻ•āĻŽāĻ‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤

āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ (āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĢāĻžāĻ‡āĻ˛ āĻĨā§‡āĻ•ā§‡) āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ¸āĻ¤ā§āĻ¤āĻž āĻ†āĻ›ā§‡:

  • āĻļā§āĻ°ā§‹āĻ¤āĻž — āĻļā§āĻ°ā§‹āĻ¤āĻž āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ†āĻ‡āĻĒāĻŋ/āĻĒā§‹āĻ°ā§āĻŸā§‡ āĻā§āĻ˛āĻ›ā§‡
  • āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻšā§‹āĻ¸ā§āĻŸ - āĻĄā§‹āĻŽā§‡āĻ‡āĻ¨ āĻ¨āĻžāĻŽā§‡āĻ° āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻšā§‹āĻ¸ā§āĻŸ
  • āĻ°ā§āĻŸ - āĻ­āĻžāĻ°āĻ¸āĻžāĻŽā§āĻ¯ā§‡āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽ
  • āĻ—ā§āĻšā§āĻ› — āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻŋāĻ‚ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¸āĻš āĻ†āĻĒāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ—ā§āĻ°ā§āĻĒ
  • āĻļā§‡āĻˇāĻŦāĻŋāĻ¨ā§āĻĻā§ — āĻ†āĻĒāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ āĻŋāĻ•āĻžāĻ¨āĻž

āĻāĻ‡ āĻ¸āĻ¤ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ•āĻŋāĻ›ā§ āĻ—āĻ¤āĻŋāĻļā§€āĻ˛āĻ­āĻžāĻŦā§‡ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡; āĻāĻ° āĻœāĻ¨ā§āĻ¯, āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻŸāĻŋāĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž 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āĻŸāĻŋ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

  • āĻ¸āĻŦ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻœāĻŋāĻ†āĻ°āĻĒāĻŋāĻ¸āĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽ, āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ā§‡āĻ° āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻžāĻ¸ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧāĨ¤
  • āĻĒā§ƒāĻĨāĻ• āĻĒā§āĻ°āĻŦāĻžāĻš, āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻļāĻ°ā§āĻ¤.
  • āĻāĻ• āĻ§āĻžāĻ°āĻž, āĻ•ā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĨ¤
  • āĻĒā§ƒāĻĨāĻ• āĻĒā§āĻ°āĻŦāĻžāĻš, āĻ•ā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĨ¤

āĻ‡āĻ¨āĻ•ā§āĻ°āĻŋāĻŽā§‡āĻ¨ā§āĻŸāĻžāĻ˛ xDS āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛-āĻĒā§āĻ˛ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻ•āĻŽāĻžāĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤, āĻāĻŸāĻŋ āĻŦāĻĄāĻŧ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻ¸āĻ™ā§āĻ—āĻŋāĻ•āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•ā§‡ āĻœāĻŸāĻŋāĻ˛ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡; āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋāĻ¤ā§‡ āĻ¸āĻĻāĻ¸ā§āĻ¯āĻ¤āĻž āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ¸āĻĻāĻ¸ā§āĻ¯āĻ¤āĻž āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ ADS āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ - RDS, CDS, EDS āĻāĻŦāĻ‚ āĻ¨āĻ¨-āĻ‡āĻ¨āĻ•ā§āĻ°āĻŋāĻŽā§‡āĻ¨ā§āĻŸāĻžāĻ˛ āĻŽā§‹āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°ā§€āĻŽāĨ¤ āĻ‡āĻ¨āĻ•ā§āĻ°āĻŋāĻŽā§‡āĻ¨ā§āĻŸāĻžāĻ˛ āĻŽā§‹āĻĄ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ api_type: DELTA_GRPC

āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡ āĻ¨ā§‹āĻĄ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛-āĻĒā§āĻ˛ā§‡āĻ¨ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤, āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻœāĻžāĻ˛ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ•āĨ¤

āĻ—āĻž āĻ—āĻ°āĻŽ āĻ•āĻ°āĻž

āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻ¸ā§āĻŸāĻžāĻ°ā§āĻŸāĻ†āĻĒā§‡ āĻŦāĻž āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛-āĻĒā§āĻ˛ā§‡āĻ¨ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻŽāĻ†āĻĒ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻŸāĻŋ āĻ˛āĻŋāĻ¸ā§‡āĻ¨āĻžāĻ° āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻŽāĻ†āĻĒ āĻāĻŦāĻ‚ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻŽāĻ†āĻĒā§‡ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤āĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻŸāĻŋ āĻšāĻžāĻ˛ā§ āĻšāĻ¯āĻŧ āĻ¯āĻ–āĻ¨ RDS/LDS-āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧ, āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻŸāĻŋ āĻ¯āĻ–āĻ¨ CDS/EDS-āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§‡ āĻšāĻ˛ āĻ¯ā§‡ āĻ¯āĻĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ†āĻĒāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧ, āĻļā§āĻ°ā§‹āĻ¤āĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤

āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻŽ-āĻ†āĻĒ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻŸāĻžāĻ‡āĻŽāĻ†āĻ‰āĻŸā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛-āĻĒā§āĻ˛ā§‡āĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻļā§€āĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻ†āĻļāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻŸāĻžāĻ‡āĻŽāĻ†āĻ‰āĻŸ āĻšāĻ˛ā§‡, āĻ†āĻ°āĻŽā§āĻ­ āĻ¸āĻĢāĻ˛ āĻšāĻŦā§‡ āĻ¨āĻž āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨ āĻļā§āĻ°ā§‹āĻ¤āĻž āĻĒā§‹āĻ°ā§āĻŸā§‡ āĻļā§‹āĻ¨āĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻžāĨ¤
āĻĒā§āĻ°āĻžāĻ°āĻŽā§āĻ­āĻŋāĻ• āĻ†āĻĻā§‡āĻļ: EDS, CDS, āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž, RDS, LDSāĨ¤ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡, āĻāĻ•āĻŸāĻŋ āĻ¸āĻĢāĻ˛ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡āĻ‡ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻ‰āĻœāĻžāĻ¨ā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤

āĻļā§āĻ°ā§‹āĻ¤āĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ˛ā§‡, āĻĒā§āĻ°āĻžāĻ¨ā§‹āĻŸāĻŋ āĻĄā§āĻ°ā§‡āĻ¨ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻšāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§‡ āĻ—ā§‡āĻ˛ā§‡ āĻŦāĻž āĻ¸āĻŽāĻ¯āĻŧ āĻļā§‡āĻˇ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§‡ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻž āĻšāĻŦā§‡ --drain-time-s, āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ 10 āĻŽāĻŋāĻ¨āĻŋāĻŸāĨ¤

āĻ…āĻŦāĻŋāĻ°āĻ¤ āĻ•āĻ°āĻžāĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨