Ħarsa ġenerali u paragun tal-kontrolluri Ingress għal Kubernetes

Ħarsa ġenerali u paragun tal-kontrolluri Ingress għal Kubernetes

Meta tniedi cluster Kubernetes għal applikazzjoni speċifika, trid tifhem x'jippreżentaw l-applikazzjoni nnifisha, in-negozju, u l-iżviluppaturi għal din ir-riżorsa. B'din l-informazzjoni, tista 'tibda tieħu deċiżjoni arkitettonika u, b'mod partikolari, tagħżel kontrollur speċifiku ta' Ingress, li diġà hemm numru kbir minnu llum. Sabiex ikollok idea bażika tal-għażliet disponibbli mingħajr ma jkollok bżonn tgħaddi minn ħafna artikoli / dokumentazzjoni, eċċ., ħejjejna din il-ħarsa ġenerali, inklużi l-kontrolluri tad-dħul prinċipali (lesti għall-produzzjoni).

Nittamaw li tgħin lill-kollegi fl-għażla ta 'soluzzjoni arkitettonika - għall-inqas se ssir punt tat-tluq għall-kisba ta' informazzjoni aktar dettaljata u esperimenti prattiċi. Preċedentement, studjajna materjali simili oħra fuq ix-xibka u, b'mod stramb, ma sibniex reviżjoni waħda xi ftit jew wisq kompluta, u l-aktar importanti - strutturata -. Mela ejja nimlew dak il-vojt!

Kriterji

Fil-prinċipju, sabiex tagħmel paragun u tikseb kwalunkwe riżultat utli, trid tifhem mhux biss il-qasam tas-suġġett, iżda wkoll ikollok lista speċifika ta 'kriterji li se jistabbilixxu l-vettur tar-riċerka. Mingħajr ma tippretendi li tanalizza l-każijiet kollha possibbli ta 'użu ta' Ingress / Kubernetes, ippruvajna nenfasizzaw l-aktar rekwiżiti ġenerali għall-kontrolluri - kun ippreparat li fi kwalunkwe każ ikollok tistudja l-ispeċifiċitajiet u d-dettalji kollha tiegħek separatament.

Imma nibda bil-karatteristiċi li tant saru familjari li huma implimentati fis-soluzzjonijiet kollha u mhumiex ikkunsidrati:

  • skoperta dinamika ta' servizzi (skoperta ta' servizzi);
  • Terminazzjoni SSL;
  • taħdem ma 'websockets.

Issa għall-punti ta 'paragun:

Protokolli appoġġjati

Wieħed mill-kriterji fundamentali tal-għażla. Is-softwer tiegħek jista 'ma jaħdimx fuq HTTP standard, jew jista' jeħtieġ xogħol fuq protokolli multipli f'daqqa. Jekk il-każ tiegħek mhuwiex standard, kun żgur li tqis dan il-fattur sabiex ma jkollokx għalfejn tikkonfigura mill-ġdid il-cluster aktar tard. Għall-kontrolluri kollha, il-lista ta 'protokolli appoġġjati tvarja.

softwer fil-qalba

Hemm diversi varjazzjonijiet ta 'applikazzjonijiet li l-kontrollur huwa bbażat fuq. Dawk popolari huma nginx, traefik, haproxy, envoy. Fil-każ ġenerali, jista 'ma jkollux ħafna effett fuq kif it-traffiku jiġi riċevut u trażmess, iżda dejjem huwa utli li tkun taf l-sfumaturi u l-karatteristiċi potenzjali ta' dak li huwa "taħt il-barnuża".

Rotot tat-traffiku

Fuq il-bażi ta 'dak li huwa possibbli li tieħu deċiżjoni dwar id-direzzjoni tat-traffiku għal servizz partikolari? Normalment dawn huma ospitanti u mogħdija, iżda hemm possibbiltajiet addizzjonali.

Spazju tal-isem fi ħdan cluster

Namespace (namespace) - il-ħila li loġikament taqsam ir-riżorsi f'Kubernetes (per eżempju, fuq il-palk, produzzjoni, eċċ.). Hemm kontrolluri Ingress li jridu jiġu installati separatament f'kull spazju tal-isem (u allura jista 'jidderieġi t-traffiku biss għall-imżiewed ta’ dan l-ispazju). U hemm dawk (u l-maġġoranza ċara tagħhom) li jaħdmu globalment għall-cluster kollu - fihom it-traffiku huwa dirett lejn kwalunkwe pod tal-cluster, irrispettivament mill-namespace.

Kampjuni għal upstreams

Kif huwa dirett it-traffiku lejn każijiet b'saħħithom tal-applikazzjoni, is-servizzi? Hemm għażliet b'kontrolli attivi u passivi, tentattivi mill-ġdid, circuit breakers (Għal aktar dettalji, ara, pereżempju, artiklu dwar Istio), kontrolli tas-saħħa tad-dwana, eċċ. Parametru importanti ħafna jekk għandek rekwiżiti għoljin għad-disponibbiltà u t-tneħħija f'waqtha ta 'servizzi falluti mill-ibbilanċjar.

Algoritmi tal-ibbilanċjar

Hemm ħafna għażliet: minn tradizzjonali round robin għall-eżotiku rdp-cookie, kif ukoll karatteristiċi individwali simili sessjonijiet li jwaħħlu.

Awtentikazzjoni

Liema skemi ta' awtorizzazzjoni jappoġġja l-kontrollur? Basic, digest, oauth, external-auth - Naħseb li dawn l-għażliet għandhom ikunu familjari. Dan huwa kriterju importanti jekk ikun hemm ħafna linji tal-iżviluppatur (u/jew biss privati) li huma aċċessati permezz ta 'Ingress.

Distribuzzjoni tat-traffiku

Il-kontrollur jappoġġa mekkaniżmi ta' distribuzzjoni tat-traffiku li jintużaw b'mod komuni bħal rollouts canary (canary), ittestjar A / B, riflessjoni tat-traffiku (mirroring / shadowing)? Dan huwa suġġett tassew fil-griżmejn għal applikazzjonijiet li jeħtieġu ġestjoni tat-traffiku preċiża u preċiża għal ttestjar produttiv, debugging ta 'bugs tal-prodott off-line (jew b'telf minimu), analiżi tat-traffiku, eċċ.

Abbonament imħallas

Hemm għażla mħallsa għall-kontrollur, b'funzjonalità avvanzata u/jew appoġġ tekniku?

Interfaċċja grafika tal-utent (Web UI)

Hemm xi GUI biex timmaniġġja l-konfigurazzjoni tal-kontrollur? Prinċipalment għal "handiness" u / jew għal dawk li għandhom bżonn jagħmlu xi bidliet fil-konfigurazzjoni Ingress'a, iżda li taħdem ma 'mudelli "prima" hija inkonvenjenti. Jista 'jkun utli jekk l-iżviluppaturi jridu jwettqu xi esperimenti bit-traffiku fuq il-fly.

Validazzjoni JWT

Il-preżenza ta 'validazzjoni integrata ta' tokens tal-web JSON għall-awtorizzazzjoni u l-validazzjoni tal-utent għall-applikazzjoni finali.

Possibbiltajiet għall-personalizzazzjoni tal-konfigurazzjoni

Estensibilità tal-mudelli fis-sens li jkollok mekkaniżmi li jippermettulek iżżid id-direttivi, il-bnadar, eċċ tiegħek stess ma' mudelli ta' konfigurazzjoni standard.

Mekkaniżmi bażiċi ta 'protezzjoni DDOS

Algoritmi sempliċi ta' limitu tar-rata jew għażliet ta' filtrazzjoni tat-traffiku aktar kumplessi bbażati fuq indirizzi, whitelists, pajjiżi, eċċ.

Itlob traċċa

Il-ħila li tissorvelja, issegwi u tiddibaggja talbiet minn Ingresses għal servizzi / imżiewed speċifiċi, u idealment bejn servizzi / imżiewed ukoll.

WAF

Appoġġ firewall tal-applikazzjoni.

Kontrolluri

Il-lista ta 'kontrolluri ġiet iffurmata bbażata fuq dokumentazzjoni uffiċjali ta' Kubernetes и din it-tabella. Eskludejna xi wħud minnhom mir-reviżjoni minħabba l-ispeċifiċità jew il-prevalenza baxxa (stadju bikri tal-iżvilupp). Il-bqija huma diskussi hawn taħt. Nibdew b'deskrizzjoni ġenerali tas-soluzzjonijiet u kompli b'tabella fil-qosor.

Ingress minn Kubernetes

Websajt: github.com/kubernetes/ingress-nginx
Liċenzja: Apache 2.0

Dan huwa l-kontrollur uffiċjali għal Kubernetes u qed jiġi żviluppat mill-komunità. Ovvjament mill-isem, huwa bbażat fuq nginx u huwa kkumplimentat minn sett differenti ta 'plugins Lua użati biex jimplimentaw karatteristiċi addizzjonali. Minħabba l-popolarità ta 'nginx innifsu u modifiki minimi għaliha meta tintuża bħala kontrollur, din l-għażla tista' tkun l-eħfef u l-eħfef biex tiġi kkonfigurata għall-inġinier medju (b'esperjenza tal-web).

Dħul minn NGINX Inc.

Websajt: github.com/nginxinc/kubernetes-ingress
Liċenzja: Apache 2.0

Il-prodott uffiċjali tal-iżviluppaturi nginx. Għandu verżjoni mħallsa bbażata fuq NGINX Plus. L-idea ewlenija hija livell għoli ta 'stabbiltà, kompatibilità b'lura kostanti, in-nuqqas ta' kwalunkwe moduli estranji u l-veloċità miżjuda ddikjarata (meta mqabbla mal-kontrollur uffiċjali), miksuba minħabba r-rifjut ta 'Lua.

Il-verżjoni b'xejn hija mnaqqsa b'mod sinifikanti, inkluż anki meta mqabbla mal-kontrollur uffiċjali (minħabba n-nuqqas tal-istess moduli Lua). Fl-istess ħin, dak imħallas għandu funzjonalità addizzjonali pjuttost wiesgħa: metriċi f'ħin reali, validazzjoni JWT, kontrolli tas-saħħa attivi, u aktar. Vantaġġ importanti fuq NGINX Ingress huwa appoġġ sħiħ għat-traffiku TCP / UDP (u fil-verżjoni tal-komunità wkoll!). Minus - assenza karatteristika tad-distribuzzjoni tat-traffiku, li, madankollu, "għandha l-ogħla prijorità għall-iżviluppaturi," iżda tieħu ż-żmien biex timplimenta.

Kong Ingress

Websajt: github.com/Kong/kubernetes-ingress-controller
Liċenzja: Apache 2.0

Prodott żviluppat minn Kong Inc. f'żewġ verżjonijiet: kummerċjali u b'xejn. Ibbażat fuq nginx, li ġie estiż b'numru kbir ta 'moduli Lua.

Inizjalment, kien iffukat fuq l-ipproċessar u r-rotot ta 'talbiet API, i.e. bħala API Gateway, iżda bħalissa sar kontrollur ta 'Ingress sħiħ. Vantaġġi ewlenin: ħafna moduli addizzjonali (inklużi dawk minn żviluppaturi ta 'partijiet terzi) li huma faċli biex jiġu installati u kkonfigurati u li bl-għajnuna tagħhom tiġi implimentata firxa wiesgħa ta' karatteristiċi addizzjonali. Madankollu, il-funzjonijiet integrati diġà joffru ħafna possibbiltajiet. Il-konfigurazzjoni tax-xogħol issir bl-użu tar-riżorsi CRD.

Karatteristika importanti tal-prodott - li taħdem fl-istess kontorn (minflok cross-namespaced) hija suġġett kontroversjali: għal xi wħud se tidher bħala żvantaġġ (għandek tipproduċi entitajiet għal kull kontorn), u għal xi ħadd hija karatteristika ( bоLivell akbar ta 'iżolament, kif jekk kontrollur wieħed jitkisser, allura l-problema hija limitata għaċ-ċirkwit biss).

Traefik

Websajt: github.com/containous/traefik
Liċenzja: MIT

Prokura li oriġinarjament inħoloq biex taħdem mar-rotot tat-talbiet għall-mikroservizzi u l-ambjent dinamiku tagħhom. Għalhekk, ħafna karatteristiċi utli: aġġornament tal-konfigurazzjoni mingħajr ma terġa 'tibda, appoġġ għal numru kbir ta' metodi ta 'ibbilanċjar, interface tal-web, twassil ta' metriċi, appoġġ għal diversi protokolli, REST API, rilaxxi tal-kanarji, u ħafna aktar. Karatteristika sabiħa oħra hija l-appoġġ għaċ-ċertifikati Let's Encrypt barra mill-kaxxa. L-iżvantaġġ huwa li sabiex jorganizza disponibbiltà għolja (HA), il-kontrollur ikollu bżonn jinstalla u jgħaqqad il-ħażna KV tiegħu stess.

HAProxy

Websajt: github.com/jcmoraisjr/haproxy-ingress
Liċenzja: Apache 2.0

HAProxy ilha magħrufa bħala prokura u bilanċjatur tat-traffiku. Bħala parti minn cluster Kubernetes, joffri aġġornament tal-konfigurazzjoni "artab" (mingħajr telf ta 'traffiku), skoperta ta' servizz ibbażat fuq DNS, konfigurazzjoni dinamika bl-użu tal-API. Jista 'jkun attraenti li tippersonalizza kompletament il-mudell tal-konfigurazzjoni billi tissostitwixxi s-CM, kif ukoll il-kapaċità li tuża l-funzjonijiet tal-librerija Sprig fiha. B'mod ġenerali, l-enfasi ewlenija tas-soluzzjoni hija fuq il-veloċità għolja, l-ottimizzazzjoni u l-effiċjenza tagħha fir-riżorsi kkunsmati. Il-vantaġġ tal-kontrollur huwa l-appoġġ ta 'numru rekord ta' metodi ta 'ibbilanċjar differenti.

Voyager

Websajt: github.com/appscode/voyager
Liċenzja: Apache 2.0

Ibbażat fuq kontrollur HAproxy, li huwa pożizzjonat bħala soluzzjoni universali li tappoġġja firxa wiesgħa ta 'karatteristiċi fuq numru kbir ta' fornituri. Hija offruta opportunità għall-ibbilanċjar tat-traffiku fuq L7 u L4, u l-ibbilanċjar tat-traffiku TCP L4 kollu jista 'jissejjaħ waħda mill-karatteristiċi ewlenin tas-soluzzjoni.

Kontorn

Websajt: github.com/heptio/contour
Liċenzja: Apache 2.0

Din is-soluzzjoni mhix ibbażata biss fuq Envoy: ġiet żviluppata minn flimkien mal-awturi ta’ dan il-prokura popolari. Karatteristika importanti hija l-abbiltà li tissepara l-kontroll tar-riżorsi Ingress bl-użu tar-riżorsi CRD IngressRoute. Għal organizzazzjonijiet b'ħafna timijiet ta 'żvilupp li jużaw l-istess cluster, dan jgħin biex timmassimizza s-sigurtà tal-ħidma mat-traffiku f'linji ġirien u tipproteġihom minn żbalji meta jinbidlu r-riżorsi ta' Ingress.

Joffri wkoll sett estiż ta 'metodi ta' bilanċjar (hemm rikjesta tar-rikjesta, awto-ripetizzjoni, limitazzjoni tar-rata tat-talba, u ħafna aktar), monitoraġġ dettaljat tal-fluss tat-traffiku u fallimenti. Forsi għal xi ħadd se jkun żvantaġġ sinifikanti n-nuqqas ta 'appoġġ għal sessjonijiet li jwaħħlu (għalkemm ix-xogħol diġà għaddej).

Istio Ingress

Websajt: istio.io/docs/tasks/traffic-management/ingress
Liċenzja: Apache 2.0

Soluzzjoni komprensiva ta 'malji ta' servizz li mhux biss huwa kontrollur ta 'Ingress li jamministra t-traffiku li jkun dieħel minn barra, iżda wkoll jikkontrolla t-traffiku kollu fi ħdan il-cluster. Taħt il-barnuża, Envoy jintuża bħala prokura sidecar għal kull servizz. Essenzjalment, din hija taħlita kbira li "tista 'tagħmel xi ħaġa", u l-idea ewlenija tagħha hija ġestjoni massima, estensibilità, sigurtà u trasparenza. Biha, tista 'tirfina r-rotot tat-traffiku, l-awtorizzazzjoni ta' aċċess bejn is-servizzi, l-ibbilanċjar, il-monitoraġġ, ir-rilaxxi tal-kanarji, u ħafna aktar. Aqra aktar dwar Istio fis-serje ta 'artikli "Lura għall-mikroservizzi b'Istio".

Ambaxxatur

Websajt: github.com/datawire/ambassador
Liċenzja: Apache 2.0

Soluzzjoni oħra bbażata fuq l-Envoy. Għandu verżjonijiet b'xejn u kummerċjali. Hija pożizzjonata bħala "totalment nattiva għal Kubernetes", li ġġib il-vantaġġi korrispondenti (integrazzjoni stretta mal-metodi u l-entitajiet tal-cluster K8s).

tabella ta 'tqabbil

Allura, il-qofol tal-artiklu huwa din it-tabella enormi:

Ħarsa ġenerali u paragun tal-kontrolluri Ingress għal Kubernetes

Huwa kklikkjabbli għal ħarsa aktar mill-qrib, u huwa wkoll disponibbli fil-format Fuljetti tal-Google.

Fil-qosor

L-iskop ta’ dan l-artikolu huwa li jipprovdi fehim aktar sħiħ (madankollu, bl-ebda mod eżawrjenti!) ta’ liema għażla għandek tagħmel fil-każ partikolari tiegħek. Bħas-soltu, kull kontrollur għandu l-vantaġġi u l-iżvantaġġi tiegħu stess...

L-Ingress klassiku minn Kubernetes huwa tajjeb għad-disponibbiltà u l-provenjenza tiegħu, karatteristiċi sinjuri biżżejjed - fil-każ ġenerali, għandu jkun "biżżejjed għall-għajnejn". Madankollu, jekk ikun hemm rekwiżiti akbar għall-istabbiltà, il-livell tal-karatteristiċi u l-iżvilupp, għandek tagħti attenzjoni lil Ingress b'NGINX Plus u abbonament imħallas. Kong għandu l-aktar sett sinjuri ta 'plug-ins (u, għaldaqstant, l-opportunitajiet li jipprovdu), u fil-verżjoni mħallsa hemm saħansitra aktar minnhom. Għandu opportunitajiet biżżejjed biex jaħdem bħala Gateway API, konfigurazzjoni dinamika bbażata fuq riżorsi CRD, kif ukoll servizzi bażiċi ta 'Kubernetes.

B'rekwiżiti akbar għall-metodi ta 'bilanċ u awtorizzazzjoni, agħti ħarsa lejn Traefik u HAProxy. Dawn huma proġetti Open Source, ippruvati matul is-snin, stabbli ħafna u li qed jiżviluppaw b'mod attiv. Il-kontorn ilu barra għal ftit snin, iżda għadu jidher żgħir wisq u għandu biss karatteristiċi bażiċi miżjuda fuq l-Envoy. Jekk ikun hemm rekwiżiti għall-preżenza / inkorporazzjoni ta 'WAF quddiem l-applikazzjoni, għandek tagħti attenzjoni lill-istess Ingress minn Kubernetes jew HAProxy.

U l-aktar sinjuri f'termini ta 'karatteristiċi huma prodotti mibnija fuq Envoy, speċjalment Istio. Jidher li hija soluzzjoni komprensiva li "tista 'tagħmel xejn", li, madankollu, tfisser ukoll limitu ta' dħul sinifikament ogħla għall-konfigurazzjoni / tnedija / amministrazzjoni minn soluzzjonijiet oħra.

Għażilna u għadna nużaw Ingress minn Kubernetes bħala kontrollur standard, li jkopri 80-90% tal-ħtiġijiet. Huwa pjuttost affidabbli, faċli biex tikkonfigura u tespandi. B'mod ġenerali, fin-nuqqas ta' rekwiżiti speċifiċi, għandu jkun adattat għall-biċċa l-kbira tal-clusters / applikazzjonijiet. Mill-istess prodotti universali u relattivament sempliċi, Traefik u HAProxy jistgħu jiġu rakkomandati.

PS

Aqra wkoll fuq il-blog tagħna:

Sors: www.habr.com

Żid kumment