ДоступСн NGINX Service Mesh

ДоступСн NGINX Service Mesh

ΠœΡ‹ Ρ€Π°Π΄Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ NGINX Service Mesh (NSM), ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡƒΡŽ service mesh, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ data plane Π½Π° основС NGINX Plus для управлСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² окруТСниях Kubernetes.

NSM ΠΌΠΎΠΆΠ½ΠΎ бСсплатно ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ здСсь. ΠœΡ‹ надССмся, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для dev ΠΈ test ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ β€” ΠΈ ΠΆΠ΄Π΅ΠΌ Π²Π°ΡˆΠΈΡ… ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² Π½Π° GitHub.

Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ микросСрвисов сопряТСно с трудностями ΠΏΡ€ΠΈ ростС ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠ² поставок, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… услоТнСния. Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами услоТняСтся, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅, всС большС сСрвисов Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС рСсурсов для управлСния.

NSM Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, прСдоставляя Π²Π°ΠΌ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ:

  • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, которая сСйчас Π²Π°ΠΆΠ½Π΅Π΅ Ρ‡Π΅ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ. Π£Ρ‚Π΅Ρ‡ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π΄ΠΎΡ…ΠΎΠ΄ΠΎΠ² ΠΈ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΠΈ. NSM обСспСчиваСт ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСх соСдинСний с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ mTLS β€” Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΡ€Π°ΡΡ‚ΡŒ Π²Π·Π»ΠΎΠΌΡ‰ΠΈΠΊΠΈ ΠΏΠΎ сСти, просто Π½Π΅Ρ‚. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа позволяСт Π²Π°ΠΌ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, ΠΊΠ°ΠΊ сСрвисы Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ сСрвисами.
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ. ΠŸΡ€ΠΈ поставкС Π½ΠΎΠ²ΠΎΠΉ вСрсии прилоТСния Π²Ρ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ для Π½Π°Ρ‡Π°Π»Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π΅ΠΌΡƒ входящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° случай ошибки. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ управлСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΎΡ‚ NSM Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ ограничСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½ΠΎΠ²Ρ‹ΠΌ сСрвисам, которая Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости ΠΈ circuit breakers, Π΄Π°ΡŽΡ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ прохоТдСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° всСм вашим сСрвисам.
  • Визуализация. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ тысячами сСрвисов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΡˆΠΌΠ°Ρ€ΠΎΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. NSM ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с Ρ‚Π°ΠΊΠΎΠΉ ситуациСй с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнной ΠΏΠ°Π½Π΅Π»ΠΈ управлСния Grafana, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ всС характСристики, доступныС Π² NGINX Plus. А Ρ‚Π°ΠΊΠΆΠ΅ внСдрСнная Open Tracing позволяСт Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° транзакциями.
  • Π“ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Π΅ поставки, Ссли ваша компания, ΠΊΠ°ΠΊ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ…, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ инфраструктуру, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΡƒΡŽ Π½Π° Kubernetes. NSM Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ старыС прилоТСния Π½Π΅ останутся Π±Π΅Π· присмотра. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π½Π΅Π΄Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ NGINX Kubernetes Ingress Controller старыС сСрвисы смогут ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ с mesh сСрвисами, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

NSM Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² окруТСниях с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ΠΌ, ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ примСняя ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ наблюдСния ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, помогая быстро ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ развСртывания ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, обСспСчиваСтся Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, позволяя ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ DevOps Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ части ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ давая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΈΡ… распрСдСлСнныС прилоТСния.

Как устроСн NGINX Service Mesh?

NSM состоит ΠΈΠ· объСдинСнного data plane для Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ (сСрвис-ΠΊ-сСрвису) Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ NGINX Plus Ingress Controller для Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ, управляСмыС Π΅Π΄ΠΈΠ½Ρ‹ΠΌ control plane.

Control plane ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° для NGINX Plus data plane, опрСдСляСт ΠΏΡ€Π°Π²ΠΈΠ»Π° управлСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ, распрСдСлСнныС ΠΏΠΎ NGINX Plus sidecars.

Π’ NSM sidecars proxy ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвиса Π² mesh. Они Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ:

  • Grafana, визуализация ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Prometheus, встроСнная панСль NSM ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅;
  • Kubernetes Ingress Controllers, для управлСния входящим ΠΈ исходящим Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ Π² mesh;
  • SPIRE, CA для управлСния, распрСдСлСния ΠΈ обновлСния сСртификатов Π² mesh;
  • NATS, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠ°Ρ систСма ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСний, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ обновлСния ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ², с control plane ΠΊ sidecars;
  • Open Tracing, распрСдСлСнная ΠΎΡ‚Π»Π°Π΄ΠΊΠ° (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Zipkin ΠΈ Jaeger);
  • Prometheus, сбор ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ характСристик ΠΎΡ‚ NGINX Plus sidecars, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ число запросов, соСдинСний ΠΈ SSL handshakes.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

NGINX Plus Π² качСствС data plane ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ sidecar proxy (Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ) ΠΈ Ingress controller (Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ), пСрСхватывая ΠΈ управляя Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

  • Π’Π·Π°ΠΈΠΌΠ½ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ TLS (mTLS);
  • Балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ;
  • ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ;
  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости;
  • Circuit breaking;
  • Π‘ΠΈΠ½Π΅-Π·Π΅Π»Π΅Π½Ρ‹Π΅ ΠΈ ΠΊΠ°Π½Π°Ρ€Π΅Π΅Ρ‡Π½Ρ‹Π΅ развСртывания;
  • ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа.

Запуск NGINX Service Mesh

Для запуска NSM Π½ΡƒΠΆΠ½ΠΎ:

  • доступ ΠΊ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡŽ Kubernetes. NGINX Service Mesh поддСрТиваСтся Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Kubernetes, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ кластСра Kubernetes, Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹Π΅ Π½Π° "ΠΆΠ΅Π»Π΅Π·Π½Ρ‹Ρ…" сСрвСрах;
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ kubectl, установлСнный Π½Π° машинС, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ NSM;
  • Доступ ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ выпусков NGINX Service Mesh. Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹ NSM, Π½ΡƒΠΆΠ½Ρ‹Π΅ для Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ registry для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π² кластСрС Kubernetes. ΠŸΠ°ΠΊΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ содСрТит nginx-meshctl, Π½ΡƒΠΆΠ½ΡƒΡŽ для разворачивания NSM.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ NSM с настройками ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, запуститС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Π’ΠΎ врСмя развСртывания выводятся сообщСния ΠΎΠ± ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ установкС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ NSM Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ пространствС ΠΈΠΌΠ΅Π½ (для Π½Π°Ρ‡Π°Π»Π° Π½Π°Π΄ΠΎ Π΅Π³ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² registry, ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°):

$ DOCKER_REGISTRY=your-Docker-registry ; MESH_VER=0.6.0 ; 
 ./nginx-meshctl deploy  
  --nginx-mesh-api-image "${DOCKER_REGISTRY}/nginx-mesh-api:${MESH_VER}" 
  --nginx-mesh-sidecar-image "${DOCKER_REGISTRY}/nginx-mesh-sidecar:${MESH_VER}" 
  --nginx-mesh-init-image "${DOCKER_REGISTRY}/nginx-mesh-init:${MESH_VER}" 
  --nginx-mesh-metrics-image "${DOCKER_REGISTRY}/nginx-mesh-metrics:${MESH_VER}"
Created namespace "nginx-mesh".
Created SpiffeID CRD.
Waiting for Spire pods to be running...done.
Deployed Spire.
Deployed NATS server.
Created traffic policy CRDs.
Deployed Mesh API.
Deployed Metrics API Server.
Deployed Prometheus Server nginx-mesh/prometheus-server.
Deployed Grafana nginx-mesh/grafana.
Deployed tracing server nginx-mesh/zipkin.
All resources created. Testing the connection to the Service Mesh API Server...

Connected to the NGINX Service Mesh API successfully.
NGINX Service Mesh is running.

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ настройки, запуститС эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ nginx-meshctl deploy –h

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ control plane Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π² пространствС ΠΈΠΌΠ΅Π½ nginx-mesh, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

$ kubectl get pods –n nginx-mesh
NAME                                 READY   STATUS    RESTARTS   AGE
grafana-6cc6958cd9-dccj6             1/1     Running   0          2d19h
mesh-api-6b95576c46-8npkb            1/1     Running   0          2d19h
nats-server-6d5c57f894-225qn         1/1     Running   0          2d19h
prometheus-server-65c95b788b-zkt95   1/1     Running   0          2d19h
smi-metrics-5986dfb8d5-q6gfj         1/1     Running   0          2d19h
spire-agent-5cf87                    1/1     Running   0          2d19h
spire-agent-rr2tt                    1/1     Running   0          2d19h
spire-agent-vwjbv                    1/1     Running   0          2d19h
spire-server-0                       2/2     Running   0          2d19h
zipkin-6f7cbf5467-ns6wc              1/1     Running   0          2d19h

Π’ зависимости ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² развСртывания, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ автоматичСского инТСктирования, прокси NGINX sidecars Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΊ прилоТСниям ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ автоматичСского добавлСния Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ здСсь

НапримСр Ссли ΠΌΡ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ sleep Π² пространствС ΠΈΠΌΠ΅Π½ default, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Pod β€” ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π΄Π²Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ sleep ΠΈ связанный с Π½ΠΈΠΌ sidecar:

$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NAME                     READY   STATUS    RESTARTS   AGE
sleep-674f75ff4d-gxjf2   2/2     Running   0          5h23m

Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ sleep Π² ΠΏΠ°Π½Π΅Π»ΠΈ NGINX Plus, запуская эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для получСния доступа ΠΊ sidecar с вашСй локальной ΠΌΠ°ΡˆΠΈΠ½Ρ‹:

$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886

Π—Π°Ρ‚Π΅ΠΌ просто Π·Π°Ρ…ΠΎΠ΄ΠΈΠΌ сюда Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ с Prometheus Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ sleep.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы Kubernetes для настройки ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ контроля доступа, ограничСния скорости ΠΈ circuit breaking, для этого смотритС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

NGINX Service Mesh бСсплатно доступна для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° ΠΏΠΎΡ€Ρ‚Π°Π»Π΅ F5. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΅Π΅ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° Π²Π°ΡˆΠΈΡ… dev ΠΈ test окруТСниях ΠΈ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½Π°ΠΌ ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ….

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ NGINX Plus Ingress Controller, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠΉΡ‚Π΅ бСсплатный ΠΈΡΠΏΡ‹Ρ‚Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π½Π° 30 Π΄Π½Π΅ΠΉ, ΠΈΠ»ΠΈ ΡΠ²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ для обсуТдСния Π²Π°ΡˆΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π² авторствС Павла Π”Π΅ΠΌΠΊΠΎΠ²ΠΈΡ‡Π°, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Southbridge. БистСмноС администрированиС Π·Π° 15 000 β‚½ Π² мСсяц. И ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ β€” ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ Ρ†Π΅Π½Ρ‚Ρ€ Π‘Π»Ρ‘Ρ€ΠΌ, ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ