
Örömmel mutatjuk be a béta verziót (NSM), egy könnyűsúlyú service mesh, amely az NGINX Plus alapú data plane-t használja a Kubernetes környezetekben a konténerforgalom kezelésére.
Az NSM ingyenesen elérhető . Reméljük, hogy kipróbálja dev és teszt környezetekben, és várjuk a visszajelzéseit .
A mikroszolgáltatások szerinti megközelítés bevezetése nehézségekkel járhat, ahogy a szállítási folyamatok növekednek és bonyolultabbá válnak. A szolgáltatások közötti kommunikáció bonyolulttá válik, a hibakeresés egyre nehezebbé válik, és egyre több szolgáltatás igényel több erőforrást a kezeléshez.
Az NSM ezeket a problémákat oldja meg, elsősorban az alábbiakkal:
- Biztonság, amely most fontosabb mint valaha. Az adatlopás évente milliónyi dollárjába kerülhet a cégeknek jövedelmek és hírnév formájában. Az NSM mTLS-t használva titkosítja az összes kapcsolatot – így érzékeny adatok, amelyeket a hackerek el tudnának lopni a hálózaton, egyszerűen nem léteznek. A hozzáfér控制 lehetővé teszi, hogy meghatározza a politikákat, hogy a szolgáltatások miként kommunikáljanak egymással.
- Forgalomkezelés. Amikor egy új verziót ad ki az alkalmazásból, lehet, hogy szeretné korlátozni a bejövő forgalmat kezdetben, ha hiba lépne fel. Az NSM intelligens konténerforgalom-kezelési lehetőségeivel olyan forgalomkorlátozási politikát állíthat be, amely lehetővé teszi a forgalom fokozatos növelését az idő múlásával. Egyéb funkciók, mint például a sebességkorlátozás és a circuit breakers, teljes hozzáférést biztosítanak a forgalom kezelésére minden egyes szolgáltatásnál.
- Vizualizáció.. Ezer szolgáltatás kezelése rémálom lehet a hibakeresés és vizualizáció szempontjából. Az NSM segít megbirkózni ezzel a helyzettel a beépített Grafana vezérlőpulton, amely az NGINX Plus összes elérhető jellemzőjét megjeleníti. Az Open Tracing beépítése lehetővé teszi a tranzakciók részletes nyomon követését.
- Hibrid szállítások, ha a vállalata, akárcsak a legtöbb más, nem teljesen Kubernetes alapú infrastruktúrát használ. Az NSM biztosítja, hogy a régi alkalmazások ne maradjanak felügyelet nélkül. A beépített NGINX Kubernetes Ingress Controller segítségével a régi szolgáltatások képesek lesznek kapcsolatba lépni a mesh szolgáltatásokkal, és fordítva.
Az NSM szintén biztosítja az alkalmazások biztonságát a nullához közeli bizalmi környezetekben, átlátható módon alkalmazva a titkosítást és a konténerforgalom hitelesítését. Emellett lehetővé teszi a tranzakciók megfigyelését és elemzését, gyorsan és pontosan segítve a telepítések végrehajtását és a problémák elhárítását. Továbbá részletes forgalomirányítást biztosít, lehetővé téve a DevOps csapatok számára, hogy telepítsenek és optimalizáljanak alkalmazás részeket, mindeközben lehetővé téve a fejlesztők számára, hogy egyszerűen létrehozzák és összekapcsolják elosztott alkalmazásaikat.
Hogyan működik az NGINX Service Mesh?
Az NSM egy egyesített adat síkból áll, amely a vízszintes (szolgáltatásról szolgáltatásra) forgalmat kezeli, és egy beépített NGINX Plus Ingress Controller-t tartalmaz a függőleges forgalom irányításához, mindez egyetlen vezérlő sík által vezérelve.
A vezérlő sík kifejezetten az NGINX Plus adat síkhoz lett tervezve és optimalizálva, definiálja a forgalomirányítási szabályokat, amelyeket az NGINX Plus sidecarok között osztanak meg.
Az NSM sidecar proxy-kat minden szolgáltatásra telepít a mesh-ben. Ezek kölcsönhatásba lépnek a következő nyílt forráskódú megoldásokkal:
- Grafana, a Prometheus metrikák megjelenítése, beépített NSM panel segíti Önt a munkában;
- Kubernetes Ingress Controllers, a bejövő és kimenő forgalom kezelésére a mesh-ben;
- SPIRE, CA a tanúsítványok kezeléséhez, terjesztéséhez és frissítéséhez a mesh-en belül;
- NATS, egy skálázható üzenetküldő rendszer, például az útvonalak frissítése a vezérlő síktól a sidecarokig;
- Open Tracing, elosztott hibakeresés (támogatott Zipkin és Jaeger);
- Prometheus, jellemzők összegyűjtése és tárolása az NGINX Plus sidecaroktól, például kérések száma, kapcsolatok és SSL kézfogások.
Funkciók és komponensek
Az NGINX Plus adat síkjaként magában foglalja a sidecar proxy-t (vízszintes forgalom) és az Ingress kontrollert (függőleges), amely elfogja és irányítja a konténerek közötti forgalmat a szolgáltatások között.
A funkciók közé tartozik:
- Kölcsönös TLS hitelesítés (mTLS);
- Terhelésmegosztás;
- Hibatűrés;
- Sebességkorlátozás;
- Áramkör törés;
- Kék-zöld és kanálkiadás telepítések;
- Hozzáférés-vezérlés.
NGINX Service Mesh indítása
Az NSM indításához szükséges:
- hozzáférés egy Kubernetes környezethez. Az NGINX Service Mesh számos Kubernetes platformon támogatott, beleértve az Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere-t és a közönséges Kubernetes klasztereket, amelyeket fizikai szervereken valósítottak meg;
- Eszköz
kubectl, telepítve legyen az eszközön, ahonnan az NSM-et telepítik; - Hozzáférés az NGINX Service Mesh kiadási csomagokhoz. A csomag tartalmazza az NSM képeit, amelyek szükségesek a zárt registry-be való betöltéshez, amely elérhető a Kubernetes klaszterben. A csomag emellett tartalmazza
nginx-meshctl, amely szükséges az NSM telepítéséhez.
Az NSM alapértelmezett beállításokkal való telepítéséhez futtassa a következő parancsot. A telepítés során üzenetek jelennek meg a komponensek sikeres telepítéséről, végül pedig egy üzenet arról, hogy az NSM egy külön névtérben működik (elérhetővé kell tenni) és be kell tölteni a registry-be, jegyzet: fordító):
$ 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}"
Létrehozva a "nginx-mesh" névtér.
Létrehozva a SpiffeID CRD.
Várakozás a Spire podok futására...kész.
Telepítve a Spire.
Telepítve a NATS szerver.
Létrehozva a forgalom irányítási politikák CRD-jai.
Telepítve a Mesh API.
Telepítve a Metrics API Server.
Telepítve a Prometheus Server nginx-mesh/prometheus-server.
Telepítve a Grafana nginx-mesh/grafana.
Telepítve a tracing server nginx-mesh/zipkin.
Az összes erőforrás létrejött. A kapcsolat tesztelése a Service Mesh API Serverhez...
Sikeresen csatlakozott az NGINX Service Mesh API-hoz.
Az NGINX Service Mesh működik.További paraméterek, beleértve a kiterjesztett beállításokat, megszerzéséhez futtassa ezt a parancsot:
$ nginx-meshctl deploy –hA control plane működésének ellenőrzésére a névtérben nginx-mesh, így tehetjük:
$ kubectl get pods –n nginx-mesh
NÉV KÉSZ ÁLLAPOT ÚJRAINDÍTÁSOK KOR
grafana-6cc6958cd9-dccj6 1/1 Fut 0 2d19h
mesh-api-6b95576c46-8npkb 1/1 Fut 0 2d19h
nats-server-6d5c57f894-225qn 1/1 Fut 0 2d19h
prometheus-server-65c95b788b-zkt95 1/1 Fut 0 2d19h
smi-metrics-5986dfb8d5-q6gfj 1/1 Fut 0 2d19h
spire-agent-5cf87 1/1 Fut 0 2d19h
spire-agent-rr2tt 1/1 Fut 0 2d19h
spire-agent-vwjbv 1/1 Fut 0 2d19h
spire-server-0 2/2 Fut 0 2d19h
zipkin-6f7cbf5467-ns6wc 1/1 Fut 0 2d19hA telepítési paraméterek, amelyek kézi vagy automatikus injektálási politikákat állítanak be, alapján az NGINX sidecar proxy-k alapértelmezés szerint hozzáadásra kerülnek az alkalmazásokhoz. Az automatikus hozzáadás letiltásához olvassa el
Például, ha telepítünk egy alkalmazást sleep a névtérben alapértelmezett, majd ellenőrizzük a Podot – két futó konténert látunk: az alkalmazást sleep és hozzá kapcsolódó sidecar-t:
$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NÉV KÉSZ ÁLLAPOT ÚJRAINDÍTÁSOK KOR
sleep-674f75ff4d-gxjf2 2/2 Fut 0 5h23mKövethetjük az alkalmazást is sleep Az NGINX Plus paneljében, futtassa ezt a parancsot a sidecar hozzáféréséhez a helyi gépéről:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886Ezután egyszerűen lépjünk be a böngészőben. Csatlakozhat a Prometheushoz is, hogy nyomon kövesse az alkalmazást sleep.
Külön Kubernetes erőforrásokat használhat a forgalomirányítási politikák beállításához, például a hozzáférésvezérléshez, a sebességkorlátozáshoz és a körkörös megszakításhoz, ehhez lásd
Zárás
Az NGINX Service Mesh ingyenesen letölthető a . Próbálja ki az ön fejlesztési és tesztkörnyezetében, és .
Az NGINX Plus Ingress Controller kipróbálásához aktiválja , vagy a felhasználási lehetőségek megbeszéléséhez.
A fordítást Demkovics Pavel, a cég mérnöke készítette. . Rendszergazdai szolgáltatások 15 000 ₽ havonta. Mint külön egység - képzőközpont, gyakorlat és semmi más, csak gyakorlat.
Forrás: habr.com
