Հասանելի է NGINX սպասարկման ցանց

Հասանելի է NGINX սպասարկման ցանց

Մենք ուրախ ենք ներկայացնել նախադիտման տարբերակը NGINX սպասարկման ցանց (NSM), փաթեթավորված թեթև սպասարկման ցանց, որն օգտագործում է NGINX Plus-ի վրա հիմնված տվյալների հարթություն՝ կառավարելու բեռնարկղային երթևեկությունը Kubernetes միջավայրերում:

NSM-ն անվճար է բեռնել այստեղ. Հուսով ենք, որ դուք կփորձեք այն մշակողի և թեստային միջավայրերի համար և անհամբեր կսպասեք ձեր կարծիքին GitHub-ում.

Միկրոծառայությունների մեթոդաբանության ներդրումը հղի է դժվարություններով, քանի որ աճում է առաքման մասշտաբը, ինչպես նաև դրա բարդությունը: Ծառայությունների միջև հաղորդակցությունը դառնում է ավելի բարդ, վրիպազերծման խնդիրները դառնում են ավելի դժվար, և ավելի ու ավելի շատ ծառայություններ պահանջում են ավելի շատ ռեսուրսներ կառավարելու համար:

NSM-ը լուծում է այս խնդիրները՝ տրամադրելով ձեզ.

  • Безопасность, որն այժմ ավելի կարևոր է, քան երբևէ։ Տվյալների խախտումը կարող է կորցնել ընկերությանը տարեկան միլիոնավոր դոլարների եկամուտ և հեղինակություն: NSM-ն ապահովում է, որ բոլոր կապերը կոդավորված են mTLS-ի միջոցով, այնպես որ ցանցի միջոցով հաքերների կողմից գողացված զգայուն տվյալներ չկան: Մուտքի վերահսկումը թույլ է տալիս սահմանել քաղաքականություն, թե ինչպես են ծառայությունները հաղորդակցվում այլ ծառայությունների հետ:
  • երթեւեկության կառավարում. Հավելվածի նոր տարբերակ առաքելիս կարող եք սկսել՝ սահմանափակելով մուտքային երթևեկությունը դեպի այն սխալի դեպքում: NSM-ի կոնտեյներների երթևեկության խելացի կառավարման միջոցով դուք կարող եք սահմանել երթևեկության սահմանափակման քաղաքականություն նոր ծառայությունների համար, որոնք ժամանակի ընթացքում կավելացնեն երթևեկությունը: Այլ առանձնահատկություններ, ինչպիսիք են արագության սահմանափակումը և անջատիչները, հնարավորություն են տալիս լիովին վերահսկել ձեր բոլոր ծառայությունների երթևեկության հոսքը:
  • Visualization. Հազարավոր ծառայությունների կառավարումը կարող է վրիպազերծման և վիզուալիզացիայի մղձավանջ լինել: NSM-ն օգնում է հաղթահարել այս իրավիճակը ներկառուցված Grafana վահանակի միջոցով, որը ցուցադրում է NGINX Plus-ում առկա բոլոր հնարավորությունները: Եվ նաև իրականացված Open Tracing-ը թույլ է տալիս մանրամասն վերահսկել գործարքները:
  • Հիբրիդային առաքումներ, եթե ձեր ընկերությունը, ինչպես մյուսների մեծ մասը, չի օգտագործում ենթակառուցվածք, որն ամբողջությամբ աշխատում է Kubernetes-ով: NSM-ն ապահովում է, որ ժառանգական հավելվածները չմնան առանց ուշադրության: Իրականացված NGINX Kubernetes Ingress Controller-ի օգնությամբ ժառանգական ծառայությունները կկարողանան շփվել ցանցային ծառայությունների հետ և հակառակը։

NSM-ը նաև ապահովում է հավելվածների անվտանգությունը զրոյական վստահության միջավայրում՝ թափանցիկորեն կիրառելով գաղտնագրումը և վավերացումը կոնտեյներային տրաֆիկի վրա: Այն նաև ապահովում է գործարքների տեսանելիություն և վերլուծություն՝ օգնելով ձեզ արագ և ճշգրիտ գործարկել տեղակայումները և լուծել խնդիրները: Այն նաև ապահովում է երթևեկության հսկողություն՝ թույլ տալով DevOps թիմերին տեղակայել և օպտիմիզացնել հավելվածների մասերը՝ միաժամանակ ծրագրավորողներին հնարավորություն տալով ստեղծել և հեշտությամբ միացնել իրենց բաշխված հավելվածները:

Ինչպե՞ս է աշխատում NGINX ծառայության ցանցը:

NSM-ը բաղկացած է հորիզոնական (ծառայություն-ծառայություն) երթևեկության միասնական տվյալների հարթությունից և ուղղահայաց երթևեկության համար ներկառուցված NGINX Plus Ingress Controller-ից, որը կառավարվում է մեկ կառավարման հարթությամբ:

Կառավարման հարթությունը հատուկ նախագծված և օպտիմիզացված է NGINX Plus տվյալների հարթության համար և սահմանում է երթևեկության կառավարման կանոնները, որոնք բաշխված են NGINX Plus կողային սայլերի վրա:

NSM-ում, sidecars proxies-ները տեղադրվում են ցանցի յուրաքանչյուր ծառայության համար: Նրանք փոխազդում են հետևյալ բաց կոդով լուծումների հետ.

  • Grafana, Prometheus պարամետրի վիզուալիզացիան, ներկառուցված NSM վահանակը օգնում է ձեզ ձեր աշխատանքում;
  • Kubernetes Ingress Controllers՝ ցանցում մուտքային և ելքային երթևեկությունը կառավարելու համար.
  • SPIRE, CA ցանցում վկայագրերի կառավարման, բաշխման և թարմացման համար;
  • NATS, մասշտաբային համակարգ հաղորդագրություններ ուղարկելու համար, ինչպիսիք են երթուղու թարմացումները, կառավարման ինքնաթիռից դեպի կողային սայլեր;
  • Բաց հետագծում, բաշխված վրիպազերծում (Zipkin-ը և Jaeger-ը աջակցում են);
  • Պրոմեթևսը հավաքում և պահպանում է NGINX Plus կողային մեքենաների բնութագրերը, ինչպիսիք են հարցումների քանակը, կապերը և SSL ձեռքսեղմումները:

Գործառույթներ և բաղադրիչներ

NGINX Plus-ը որպես տվյալների հարթություն ընդգրկում է sidecar proxy-ին (հորիզոնական երթևեկություն) և Ingress-ի վերահսկիչին (ուղղահայաց)՝ ընդհատելով և կառավարելով բեռնարկղային երթևեկությունը ծառայությունների միջև:

Հատկանիշները ներառում են.

  • Փոխադարձ TLS (mTLS) նույնականացում;
  • Բեռի հավասարակշռում;
  • Սխալների հանդուրժողականություն;
  • Արագության սահմանափակում;
  • Շղթայի խզում;
  • Կապույտ-կանաչ և դեղձանիկի տեղակայումներ;
  • Մուտքի վերահսկում.

Գործարկում է NGINX ծառայության ցանցը

NSM գործարկելու համար ձեզ հարկավոր է.

  • մուտք դեպի Kubernetes միջավայր: NGINX Service Mesh-ն աջակցվում է Kubernetes-ի բազմաթիվ հարթակներում, այդ թվում՝ Amazon Elastic Container Service for 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-mesh, դուք կարող եք դա անել.

$ 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-ը հասանելի է անվճար ներբեռնման համար պորտալ F5. Փորձեք այն ձեր մշակողի և փորձարկման միջավայրերում և գրեք մեզ արդյունքների մասին.

NGINX Plus Ingress Controller-ը փորձելու համար ակտիվացրեք անվճար փորձաշրջան 30 օրով, կամ Կապվեք մեզ հետ ձեր օգտագործման դեպքերը քննարկելու համար:

Թարգմանությունը՝ ընկերության ինժեներ Պավել Դեմկովիչի Սաութբրիջ. Համակարգի կառավարում ամսական 15 ռուբլի: Իսկ որպես առանձին ստորաբաժանում՝ ուսումնական կենտրոն Տխրություն, պրակտիկա և ոչ այլ ինչ, քան պրակտիկա։

Source: www.habr.com

Добавить комментарий