
Veseli smo, da vam lahko predstavimo različico v razvoju (NSM), lahki service mesh, ki uporablja podatkovno raven NGINX Plus za upravljanje prometa kontejnerjev v okolju Kubernetes.
NSM je na voljo brezplačno . Upamo, da ga boste preizkusili za razvojna in testna okolja - z veseljem pričakujemo vaše povratne informacije .
Uvedba metodologije mikrostoritev prinaša izzive pri povečevanju obsega dostave in njene zapletenosti. Komunikacija med storitvami se otežuje, težave pri odpravljanju napak postajajo zahtevnejše, vse več storitev zahteva več virov za upravljanje.
NSM rešuje te težave, saj vam daje predvsem:
- Sigurnost, kar je danes pomembnejše kot kdaj koli prej. Izguba podatkov lahko podjetje stane milijone dolarjev letno v obliki izgube prihodkov in ugleda. NSM zagotavlja šifriranje vseh povezav z mTLS - tako da občutljivi podatki, ki bi jih lahko ukradli hekerji, preprosto ne obstajajo. Nadzor dostopa vam omogoča, da določite politike, kako bodo storitve komunicirale z drugimi storitvami.
- Upravljanje prometa. Ko dostavljate novo različico aplikacije, boste morda želeli na začetku omejiti njen vhodni promet za vsak slučaj napake. Z inteligentnim upravljanjem prometa kontejnerjev NSM lahko določite politiko omejevanja prometa novim storitvam, ki bo z rastjo prometa postopoma naraščala. Druge funkcije, kot so omejitev hitrosti in circuit breakers, vam dajejo popoln nadzor nad upravljanjem prehoda prometa vsem vašim storitvam.
- Vizualizacija. Upravljanje tisočih storitev je lahko nočna mora za odpravljanje napak in vizualizacijo. NSM pomaga obvladovati to situacijo z vgrajenim nadzornim ploščo Grafana, ki prikazuje vse značilnosti, ki so na voljo v NGINX Plus. Prav tako vgrajeno Open Tracing omogoča podrobno sledenje transakcijam.
- Hibridne dostave, če vaše podjetje, tako kot večina drugih, ne uporablja infrastrukture, ki je popolnoma zagnana v Kubernetesu. NSM zagotavlja, da starejše aplikacije ne ostanejo brez nadzora. Z vgrajenim NGINX Kubernetes Ingress Controller lahko stare storitve komunicirajo z mesh storitvami in obratno.
NSM prav tako zagotavlja varnost aplikacij v okolju z ničelnim zaupanjem, transparentno uporablja šifriranje in avtentikacijo prometa kontejnerjev. Omogoča tudi opazovanje in analizo transakcij, kar pomaga hitro in natančno izvajati implementacije ter odpravljati težave. Poleg tega zagotavlja podrobno kontrolo prometa, kar ekipam DevOps omogoča, da izvajajo in optimizirajo dele aplikacij, hkrati pa razvijalcem olajša ustvarjanje in povezovanje njihovih porazdeljenih aplikacij.
Kako deluje NGINX Service Mesh?
NSM je sestavljen iz združenega podatkovnega sloja za horizontalni (storitev-k-storitev) promet in vgrajenega NGINX Plus Ingress Controllerja za vertikalni promet, obvladovanega iz enotnega nadzornega sloja.
Nadzorni sloj je posebej zasnovan in optimiziran za podatkovni sloj NGINX Plus, določa pravila obvladovanja prometa, razdeljena med stranske krmilnike NGINX Plus.
V NSM so stranski krmilniki proxy nameščeni za vsako storitev v omrežju. Interagirajo z naslednjimi rešitvami z odprtokodnimi virii:
- Grafana, vizualizacija parametrov Prometheus, vgrajena plošča NSM vam pomaga pri delu;
- Kubernetes Ingress Controllers, za upravljanje vhodnega in izhodnega prometa v omrežju;
- SPIRE, CA za upravljanje, distribucijo in posodabljanje potrdil v omrežju;
- NATS, obsežen sistem pošiljanja sporočil, na primer posodabljanja poti, s nadzornega sloja do stranskih krmilnikov;
- Open Tracing, porazdeljeno odpravljanje napak (podpirata Zipkin in Jaeger);
- Prometheus, zbiranje in shranjevanje lastnosti iz stranskih krmilnikov NGINX Plus, na primer število zahtev, povezav in SSL handshake-ov.
Funkcije in sestavni deli
NGINX Plus kot podatkovni sloj pokriva proxy stranske krmilnike (horizontalni promet) in Ingress controller (vertikalni), prestreza in upravlja promet kontejnerjev med storitvami.
Funkcije vključujejo:
- Medsebojno avtentikacijo TLS (mTLS);
- Obremenitveno uravnoteženje;
- Odpornost na napake;
- Omejevanje hitrosti;
- Prekinjanje vezja;
- Modre-zelene in kanarčne implementacije;
- Nadzor dostopa.
Zagon NGINX Service Mesh
Za zagon NSM potrebujete:
- dostop do okolja Kubernetes. NGINX Service Mesh je podprt na mnogih platformah Kubernetes, vključno z Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere in običajnimi klasterji Kubernetes, nameščenimi na "železnih" strežnikih;
- Alat
kubectl, nameščen na napravi, s katere bo NSM nameščen; - Dostop do paketov različic NGINX Service Mesh. V paketu so slike NSM, potrebne za nalaganje v zaprto registry za kontejnerje, dostopno v grozdu Kubernetes. Paket prav tako vsebuje
nginx-meshctl, potrebno za naziv NSM.
Da bi razporedili NSM s privzetimi nastavitvami, zaženite naslednji ukaz. Med razporeditvijo se prikazujejo sporočila o uspešni namestitvi komponent in na koncu sporočilo, da NSM deluje v ločenem imenskem prostoru (najprej ga je treba in ga umestiti v registry, translator's note):
$ 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}"
Ustvarjen imenski prostor "nginx-mesh".
Ustvarjen SpiffeID CRD.
Čakanje na zagon Spire podov...končano.
Naložen Spire.
Naložen NATS strežnik.
Ustvarjeni prometni politiki CRD.
Naložena Mesh API.
Naložen Metrics API Server.
Naložen promet lahko strežnik nginx-mesh/prometheus-server.
Naložen Grafana nginx-mesh/grafana.
Naložen strežnik sledenja nginx-mesh/zipkin.
Vsi viri so bili ustvarjeni. Preverjanje povezave z Service Mesh API Server...
Uspešno povezano z NGINX Service Mesh API.
NGINX Service Mesh deluje.Za pridobitev dodatnih parametrov, vključno z naprednimi nastavitvami, zaženite ta ukaz:
$ nginx-meshctl deploy –hPreverite, ali kontrolna enota pravilno deluje v imenskem prostoru nginx-mesh, to lahko storite tako:
$ kubectl get pods –n nginx-mesh
IME PRIPRAVLJEN STATUS PONOVITVE STAROST
grafana-6cc6958cd9-dccj6 1/1 Teče 0 2d19h
mesh-api-6b95576c46-8npkb 1/1 Teče 0 2d19h
nats-server-6d5c57f894-225qn 1/1 Teče 0 2d19h
prometheus-server-65c95b788b-zkt95 1/1 Teče 0 2d19h
smi-metrics-5986dfb8d5-q6gfj 1/1 Teče 0 2d19h
spire-agent-5cf87 1/1 Teče 0 2d19h
spire-agent-rr2tt 1/1 Teče 0 2d19h
spire-agent-vwjbv 1/1 Teče 0 2d19h
spire-server-0 2/2 Teče 0 2d19h
zipkin-6f7cbf5467-ns6wc 1/1 Teče 0 2d19hOdvisno od nastavitev namestitve, ki določajo politike ročnega ali samodejnega vstavljanja, se proxy NGINX sidecars privzeto dodajajo aplikacijam. Za onemogočanje samodejnega dodajanja preberite
Na primer, če razporedimo aplikacijo sleep v imenskem prostoru default, in nato preverimo Pod — bomo videli dva zagnana kontejnerja, aplikacijo sleep in povezan sidecar:
$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
IME PRIPRAVLJEN STATUS PONOVITVE STAROST
sleep-674f75ff4d-gxjf2 2/2 Teče 0 5h23mPrav tako lahko spremljamo aplikacijo sleep v NGINX Plus paneli, zaženite to ukaz za dostop do sidecar iz vaše lokalne naprave:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886Nato preprosto obiščite v brskalniku. Povezati se lahko tudi s Prometheusom, da spremljate aplikacijo. sleep.
Lahko uporabite ločene vire Kubernetes za nastavitev prometnih politik, kot so nadzor dostopa, omejevanje hitrosti in cirkuitsko prekinjanje, za to si oglejte
Zaključek
NGINX Service Mesh je brezplačno na voljo za prenos na . Preizkusite ga v vaših dev in testnih okoljih ter .
Da preizkusite NGINX Plus Ingress Controller, aktivirajte za 30 dni, ali za razpravo o vaših možnostih uporabe.
Prevod avtorja Pavla Demkovicha, inženirja podjetja . Sistem administratif za 15.000 ₽ na mesec. In kot ločena enota - izobraževalni center , praksa in nič drugega kot praksa.
Izvor: habr.com
