Имаме удоволствието да ви представим предварителен преглед
NSM е безплатен
Прилагането на методологията на микроуслугите е изпълнено с трудности с нарастването на мащаба на предлагането, както и тяхното усложняване. Комуникацията между услугите става по-сложна, проблемите с отстраняването на грешки стават по-трудни, все повече услуги изискват повече ресурси за управление.
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
Тогава просто тръгваме
Можете да използвате отделни ресурси на Kubernetes, за да конфигурирате правила за трафик, като контрол на достъпа, ограничаване на скоростта и прекъсване на верига, вижте
Заключение
NGINX Service Mesh е достъпна за безплатно изтегляне от
За да изпробвате NGINX Plus Ingress Controller, активирайте
Превод от Павел Демкович, фирмен инженер
Източник: www.habr.com