S potešením vám predstavujeme ukážkovú verziu
NSM je zadarmo
Implementácia metodológie mikroslužieb je spojená s problémami, keďže rozsah poskytovania služieb rastie, ako aj jej zložitosť. Komunikácia medzi službami sa stáva zložitejšou, problémy s ladením sa stávajú zložitejšími a čoraz viac služieb si vyžaduje viac zdrojov na správu.
NSM rieši tieto problémy tým, že vám poskytuje:
- zabezpečenia, ktorá je teraz dôležitejšia ako kedykoľvek predtým. Porušenie údajov môže spoločnosť stáť milióny dolárov ročne v strate príjmov a reputácie. NSM zabezpečuje, že všetky pripojenia sú šifrované pomocou mTLS, takže neexistujú žiadne citlivé údaje, ktoré by hackeri mohli ukradnúť cez sieť. Riadenie prístupu vám umožňuje nastaviť pravidlá pre komunikáciu služieb s inými službami.
- Riadenie dopravy. Pri odosielaní novej verzie aplikácie možno budete chcieť začať tým, že obmedzíte prichádzajúci prenos v prípade chyby. S inteligentnou správou kontajnerovej dopravy od NSM môžete nastaviť politiku obmedzenia premávky pre nové služby, ktoré časom zvýšia návštevnosť. Ďalšie funkcie, ako je obmedzenie rýchlosti a ističe, vám poskytnú plnú kontrolu nad dopravným tokom všetkých vašich služieb.
- Vizualizácia. Správa tisícok služieb môže byť nočnou morou ladenia a vizualizácie. NSM pomáha riešiť túto situáciu pomocou vstavaného ovládacieho panela Grafana, ktorý zobrazuje všetky funkcie dostupné v NGINX Plus. A tiež implementovaný Open Tracing umožňuje detailne sledovať transakcie.
- Hybridné dodávky, ak vaša spoločnosť, podobne ako väčšina ostatných, nepoužíva infraštruktúru, ktorá beží výhradne na Kubernetes. NSM zaisťuje, že staršie aplikácie nezostanú bez dozoru. S pomocou implementovaného kontroléra NGINX Kubernetes Ingress Controller budú môcť staršie služby komunikovať so sieťovými službami a naopak.
NSM tiež zaisťuje bezpečnosť aplikácií v prostrediach s nulovou dôveryhodnosťou transparentným aplikovaním šifrovania a autentifikácie na prenos kontajnerov. Poskytuje tiež prehľad o transakciách a analýzu, čo vám pomôže rýchlo a presne spustiť nasadenia a riešiť problémy. Poskytuje tiež granulárne riadenie prevádzky, čo umožňuje tímom DevOps nasadzovať a optimalizovať časti aplikácií a zároveň umožňuje vývojárom vytvárať a jednoducho prepájať svoje distribuované aplikácie.
Ako funguje sieť služieb NGINX?
NSM pozostáva z jednotnej dátovej roviny pre horizontálny prenos (service-to-service) a vstavaného kontroléra vstupu NGINX Plus pre vertikálny prenos, ktorý je riadený jednou riadiacou rovinou.
Riadiaca rovina je špeciálne navrhnutá a optimalizovaná pre dátovú rovinu NGINX Plus a definuje pravidlá riadenia dopravy distribuované medzi postrannými vozíkmi NGINX Plus.
V NSM sú servery proxy postranných vozíkov nainštalované pre každú službu v sieti. Sú prepojené s nasledujúcimi open source riešeniami:
- Grafana, vizualizácia parametrov Prometheus, vstavaný panel NSM vám pomáha pri práci;
- Kubernetes Ingress Controllers na správu prichádzajúcej a odchádzajúcej prevádzky v sieti;
- SPIRE, CA na správu, distribúciu a aktualizáciu certifikátov v sieti;
- NATS, škálovateľný systém na odosielanie správ, ako sú aktualizácie trasy, z riadiaceho lietadla do postranných vozíkov;
- Open Tracing, distribuované ladenie (podporované Zipkin a Jaeger);
- Prometheus zhromažďuje a ukladá charakteristiky z postranných vozíkov NGINX Plus, ako je počet požiadaviek, pripojení a handshake SSL.
Funkcie a komponenty
NGINX Plus ako dátová rovina pokrýva proxy postranného vozíka (horizontálna prevádzka) a kontrolór Ingress (vertikálny), zachytávanie a riadenie prepravy kontajnerov medzi službami.
Medzi vlastnosti patrí:
- Vzájomná autentifikácia TLS (mTLS);
- Rozdelenie výkonu;
- Odolnosť proti chybám;
- Rýchlostný limit;
- Prerušenie obvodu;
- Modro-zelené a kanárske nasadenie;
- Riadenie prístupu.
Spustenie NGINX Service Mesh
Na spustenie NSM potrebujete:
- prístup do prostredia Kubernetes. NGINX Service Mesh je podporovaný na mnohých platformách Kubernetes, vrátane Amazon Elastic Container Service pre Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere a bežných klastrov Kubernetes nasadených na hardvérových serveroch;
- Nástroj
kubectl
, nainštalovaný na počítači, z ktorého sa nainštaluje NSM; - Prístup k uvoľňovacím balíkom NGINX Service Mesh. Balík obsahuje obrázky NSM potrebné na nahranie do súkromného registra pre kontajnery dostupné v klastri Kubernetes. Balenie obsahuje aj
nginx-meshctl
, potrebné na nasadenie NSM.
Ak chcete nasadiť NSM s predvolenými nastaveniami, spustite nasledujúci príkaz. Počas nasadenia sa zobrazujú hlásenia indikujúce úspešnú inštaláciu komponentov a nakoniec hlásenie oznamujúce, že NSM beží v samostatnom mennom priestore (musíte najprv
$ 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.
Ak chcete získať ďalšie možnosti vrátane rozšírených nastavení, spustite tento príkaz:
$ nginx-meshctl deploy –h
Skontrolujte, či riadiaca rovina funguje správne v mennom priestore nginx-mesh, dokážeš to:
$ 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
V závislosti od nastavení nasadenia, ktoré nastavujú pravidlá manuálneho alebo automatického vstrekovania, sa do aplikácií predvolene pridajú servery proxy postranných vozíkov NGINX. Ak chcete vypnúť automatické pridávanie, prečítajte si
Napríklad, ak nasadíme aplikáciu spať v mennom priestore štandardné, a potom skontrolujte Pod - uvidíme dva spustené kontajnery, aplikáciu spať a súvisiaci postranný vozík:
$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NAME READY STATUS RESTARTS AGE
sleep-674f75ff4d-gxjf2 2/2 Running 0 5h23m
Môžeme sledovať aj aplikáciu spať na paneli NGINX Plus spustením tohto príkazu získate prístup k postrannému vozíku z miestneho počítača:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886
Potom už len vojdeme
Jednotlivé zdroje Kubernetes môžete použiť na konfiguráciu dopravných politík, ako je riadenie prístupu, obmedzovanie rýchlosti a prerušovanie obvodu.
Záver
NGINX Service Mesh je k dispozícii na bezplatné stiahnutie na adrese
Ak chcete vyskúšať NGINX Plus Ingress Controller, aktivujte
Preklad Pavel Demkovich, podnikový inžinier
Zdroj: hab.com