Предлага се NGINX Service Mesh

Предлага се NGINX Service Mesh

Имаме удоволствието да ви представим предварителен преглед NGINX Service Mesh (NSM), свързана лека мрежова мрежа за услуги, която използва базирана на NGINX Plus равнина на данни за управление на трафика на контейнери в среди на Kubernetes.

NSM е безплатен Скачать здесь. Надяваме се, че ще го изпробвате за среди за разработка и тестване - и очакваме вашите отзиви на GitHub.

Прилагането на методологията на микроуслугите е изпълнено с трудности с нарастването на мащаба на предлагането, както и тяхното усложняване. Комуникацията между услугите става по-сложна, проблемите с отстраняването на грешки стават по-трудни, все повече услуги изискват повече ресурси за управление.

NSM решава тези проблеми, като ви предоставя:

  • сигурносткоето сега е по-важно от всякога. Пробивът на данни може да струва на компанията милиони долари годишно в загубени приходи и репутация. NSM криптира всички връзки с помощта на mTLS, така че просто няма чувствителни данни, които хакерите да могат да откраднат по мрежата. Контролът на достъпа ви позволява да задавате правила за това как услугите комуникират с други услуги.
  • управление на трафика. Когато изпращате нова версия на приложение, може да искате да започнете с ограничаване на входящия трафик в случай на грешка. С NSM Intelligent Container Traffic Management можете да зададете политика за ограничаване на трафика за нови услуги, които ще увеличат трафика с течение на времето. Други функции, като ограничаване на скоростта и прекъсвачи, ви дават пълен контрол върху трафика на всички ваши услуги.
  • Визуализация. Управлението на хиляди услуги може да бъде кошмар за отстраняване на грешки и визуализация. NSM помага за справяне с тази ситуация с вграденото табло за управление на Grafana, което показва всички функции, налични в NGINX Plus. И също така внедреното Open Tracing ви позволява да наблюдавате транзакциите в детайли.
  • Хибридни доставки, ако вашата компания, както повечето други, не използва инфраструктура, работеща изцяло на Kubernetes. NSM гарантира, че старите приложения няма да бъдат оставени без надзор. С помощта на вградения NGINX Kubernetes Ingress Controller старите услуги ще могат да комуникират с мрежови услуги и обратно.

NSM също така защитава приложенията в среди с нулево доверие чрез прозрачно криптиране и удостоверяване на контейнерния трафик. Той също така осигурява видимост и анализ на транзакциите, за да ви помогне бързо и точно да стартирате внедрявания и да отстраните проблеми. Той също така осигурява прецизен контрол на трафика, позволявайки на екипите на DevOps да разгръщат и оптимизират части от приложения, като същевременно позволява на разработчиците да изграждат и лесно да свързват своите разпределени приложения.

Как е подредена NGINX Service Mesh?

NSM се състои от унифицирана равнина на данни за хоризонтален трафик (от услуга към услуга) и вграден NGINX Plus Ingress Controller за вертикален трафик, управляван от една контролна равнина.

Контролната равнина е специално проектирана и оптимизирана за равнина на данни NGINX Plus, дефинира правила за контрол на трафика, разпределени между страничните кошове NGINX Plus.

В страничните колички на NSM проксита се задават за всяка услуга в мрежата. Те взаимодействат със следните решения с отворен код:

  • Визуализация на параметрите на Grafana, Prometheus, вграден NSM панел ви помага в работата;
  • Kubernetes Ingress Controllers, за управление на входящия и изходящия трафик в мрежата;
  • SPIRE, CA за управление, разпространение и подновяване на сертификати в мрежата;
  • NATS, мащабируема система за изпращане на съобщения, като актуализации на маршрута, от контролния самолет до страничните колички;
  • Open Tracing, разпределено отстраняване на грешки (поддържано от Zipkin и Jaeger);
  • Prometheus, събиране и съхранение на характеристики от NGINX Plus sidecars, като брой заявки, връзки и SSL ръкостискания.

Характеристики и компоненти

NGINX Plus като равнина на данни обхваща sidecar proxy (хоризонтален трафик) и Ingress контролер (вертикален), прихващайки и управлявайки контейнерния трафик между услугите.

Характеристиките включват:

  • Взаимно TLS (mTLS) удостоверяване;
  • Балансиране на натоварването;
  • Толерантност към грешки;
  • Ограничение на скоростта;
  • прекъсване на веригата;
  • Синьо-зелено и канарче разгръщане;
  • Контрол на достъпа.

Стартиране на NGINX Service Mesh

За да стартирате NSM, трябва:

  • достъп до средата на Kubernetes. NGINX Service Mesh се поддържа на много платформи на Kubernetes, включително Amazon Elastic Container Service за Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere и обикновени Kubernetes клъстери, разположени на хардуерни сървъри;
  • Инструмент kubectlинсталиран на машината, от която ще бъде инсталиран NSM;
  • Достъп до пакети за издаване на NGINX Service Mesh. Пакетът съдържа NSM изображенията, необходими за качване в частен регистър за контейнери, налични в клъстера Kubernetes. Опаковката съдържа също nginx-meshctlнеобходими за внедряване на NSM.

За да разположите NSM с настройки по подразбиране, изпълнете следната команда. По време на внедряването ще видите съобщения, че компонентите са инсталирани успешно и накрая съобщение, че NSM работи в отделно пространство от имена (първо трябва изтеглите и поставете в регистъра, прибл. преводач):

$ 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

Проверете дали контролната равнина работи правилно в пространството от имена nginx мрежа, можете да направите това:

$ 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 проксита ще бъдат добавени към приложенията по подразбиране. За да деактивирате автоматичното добавяне, прочетете тук

Например, ако внедрим приложението спя в пространството на имената подразбиране, и след това проверете Pod - ще видим два работещи контейнера, приложението спя и свързания с него кош:

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

Също така можем да следваме приложението спя в панел NGINX Plus, като изпълните тази команда за достъп до страничната кола от вашата локална машина:

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

Тогава просто тръгваме тук в браузъра. Можете също да се свържете с Prometheus, за да следвате приложението спя.

Можете да използвате отделни ресурси на Kubernetes, за да конфигурирате правила за трафик, като контрол на достъпа, ограничаване на скоростта и прекъсване на верига, вижте документация

Заключение

NGINX Service Mesh е достъпна за безплатно изтегляне от портал F5. Изпробвайте го във вашата среда за разработка и тестване и пишете ни за резултатите.

За да изпробвате NGINX Plus Ingress Controller, активирайте безплатен пробен период за 30 дни или свяжитесь с нами за да обсъдим вашите случаи на употреба.

Превод от Павел Демкович, фирмен инженер Southbridge. Системна администрация за 15 000 ₽ на месец. И като отделно подразделение – учебен център Шурм, практика и нищо друго освен практика.

Източник: www.habr.com

Добавяне на нов коментар