Va'aiga lautele ma fa'atusatusaga o Ingress controllers mo Kubernetes

Va'aiga lautele ma fa'atusatusaga o Ingress controllers mo Kubernetes

Pe a faʻalauiloa se vaega Kubernetes mo se talosaga faʻapitoa, e tatau ona e malamalama i le mea o loʻo tuʻuina mai e le talosaga lava ia, pisinisi, ma le au atiaʻe i lenei punaoa. Faatasi ai ma lenei faʻamatalaga, e mafai ona e amata faia se faʻataʻitaʻiga faʻataʻitaʻiga ma, aemaise lava, filifilia se faʻatonuina o Ingress, lea o loʻo i ai se numera tele i aso nei. Ina ia maua se manatu autu o avanoa avanoa e aunoa ma le alu i le tele o tala / faʻamaumauga, ma isi, ua matou saunia lenei faʻamatalaga, e aofia ai le autu (gaosiga saunia) Ingress controllers.

Matou te faʻamoemoe o le a fesoasoani i paaga i le filifilia o se fofo faʻataʻitaʻiga - o le mea sili o le a avea ma amataga mo le mauaina o faʻamatalaga auiliili ma faʻataʻitaʻiga aoga. I le taimi muamua, matou te suʻesuʻeina isi mea tutusa i luga o le upega ma, o le mea e ese ai, e leʻi maua se tasi sili atu pe itiiti ifo le maeʻa, ma sili ona taua - faʻatulagaina - iloiloga. Ia tatou faatumu lena avanoa!

Taiala

I le mataupu faavae, ina ia mafai ona faia se faʻatusatusaga ma maua soʻo se taunuuga aoga, e tatau ona e malamalama e le gata i le mataupu autu, ae ia i ai foi se lisi patino o taʻiala o le a setiina ai le suʻesuʻega vector. A aunoa ma le faafoliga e iloilo uma tulaga talafeagai o le faʻaaogaina o Ingress / Kubernetes, na matou taumafai e faʻamaonia le tele o manaʻoga lautele mo faʻatonu - ia saunia i soʻo se tulaga e tatau ona e suʻesuʻeina uma au faʻamatalaga ma auiliiliga eseese.

Ae o le a ou amata i uiga ua masani ona faʻaaogaina i fofo uma ma e le o mafaufauina:

  • su'esu'e malosi o 'au'aunaga (su'esu'e auaunaga);
  • fa'amuta SSL;
  • galue i websockets.

O le taimi nei mo manatu faʻatusatusa:

Polokalama lagolago

O se tasi o tulaga taua o filifiliga. Atonu e le aoga lau polokalama i luga o le HTTP masani, pe manaʻomia foi le galue i le tele o faʻasalalauga i le taimi e tasi. Afai o lau mataupu e le o se tulaga masani, ia mautinoa e amanaia lenei mea ina ia e le toe faʻafouina le fuifui mulimuli ane. Mo fa'atonu uma, o le lisi o fa'amaumauga lagolago e eseese.

polokalama faakomepiuta i totonu

E tele fesuiaiga o talosaga e fa'avae ai le pule. O taʻutaʻua o nginx, traefik, haproxy, avefeʻau. I le tulaga lautele, atonu e le tele se aafiaga i le auala e maua ai ma felauaiga, ae e aoga i taimi uma le iloa o nuances ma foliga o le mea o loʻo i lalo o le pulou.

Ta'avale ta'avale

I luga o le faʻavae o le a le mea e mafai ona faia ai se faʻaiuga e uiga i le itu o felauaiga i se auaunaga faapitoa? E masani lava o le talimalo ma le ala, ae o loʻo i ai isi avanoa.

Igoa avanoa i totonu o se fuifui

Igoa (igoa igoa) - o le mafai ona vaevae lelei punaoa i Kubernetes (mo se faʻataʻitaʻiga, luga o le tulaga, gaosiga, ma isi). O loʻo i ai faʻatonuga Ingress e tatau ona faʻapipiʻi eseese i igoa taʻitasi (ona mafai lea ona faʻatonuina feoaiga ae i pusa o lenei avanoa). Ma o loʻo i ai i latou (ma o latou toʻatele manino) o loʻo galulue i le lalolagi atoa mo le fuifui atoa - o loʻo i totonu o latou feʻaveaʻi e faʻatatau i soʻo se pusa o le fuifui, tusa lava po o le a le igoa.

Fa'ata'ita'i mo i luga

E fa'afefea ona fa'asino le ta'avale i tulaga lelei o le talosaga, auaunaga? O lo'o i ai filifiliga fa'atasi ma siaki fa'agaoioi ma fa'agasolo, toe fa'ata'ita'i, va'ava'ava'a (Mo nisi faʻamatalaga, vaʻai, mo se faʻataʻitaʻiga, tala e uiga ia Istio), a oe lava fa'atinoga o siaki fa'alesoifua maloloina (fa'atonuga fa'alesoifua maloloina), ma isi. O se fa'ailoga taua tele pe afai e iai sau mana'oga maualuga mo le avanoa ma le taimi e aveese ai auaunaga le manuia mai le paleni.

Paleni algorithms

E tele filifiliga: mai tu ma aga masani lapisi-robin i mea ese rdp-kuki, faʻapea foʻi ma foliga taʻitasi e pei o sauniga pipii.

Fa'amaoni

O a polokalame fa'atagaina e lagolagoina e le pule? Basic, digest, oauth, external-auth - Ou te manatu o nei filifiliga e tatau ona masani. Ose fa'ata'ita'iga taua pe afai e tele fa'atupu (ma/po'o na'o fa'alilolilo) e mafai ona maua e ala ile Ingress.

Tufatufaina o taavale

E lagolagoina e le pule fa'apena auala masani ona fa'aogaina fe'avea'i e pei o le ta'avale canary (canary), su'ega A/B, fa'ata o fe'avea'i (fa'ata/fa'ata)? Ose mataupu tiga tele lea mo talosaga e mana'omia ai le sa'o ma le sa'o o le pulega o feoaiga mo su'esu'ega lelei, fa'apipi'iina o pusa o oloa i fafo-laina (po'o le itiiti o le gau), au'ili'iliga o feoaiga, ma isi.

Totogi totogi

E i ai se filifiliga totogi mo le pule, faʻatasi ai ma galuega faʻapitoa ma / poʻo le lagolago faʻapitoa?

Ata fa'aoga fa'aoga (Web UI)

E i ai se GUI e pulea le faʻatonuga o le pule? E masani lava mo le "lima" ma / poʻo mo i latou e manaʻomia le faia o ni suiga i le faʻatulagaina o Ingress'a, ae o le galue ma faʻataʻitaʻiga "mata" e le faigofie. E mafai ona aoga pe a manaʻo le au atinaʻe e faia ni faʻataʻitaʻiga i fefaʻatauaiga i luga o le lele.

JWT faʻamaonia

Le i ai o le faʻamaoniaina o faʻamaoniga o le upega tafaʻilagi a le JSON mo le faʻatagaina ma le faʻamaonia o le tagata faʻaoga i le faʻaaogaina o le talosaga.

Avanoa mo config customization

Fa'alautelega fa'ata'ita'iga i le uiga o le iai o masini e fa'ataga ai oe e fa'aopoopo au lava fa'atonuga, fu'a, ma isi mea i fa'ata'ita'iga fa'atulagaina masani.

Fa'avae puipuiga DDOS

Algoritimi fa'atapula'a fua fa'atatau po'o filifiliga fa'amama fe'avea'i fa'atatau ile tuatusi, lisi papa'e, atunu'u, ma isi.

Talosaga su'ega

Le mafai ona mata'ituina, siaki ma debug talosaga mai Ingresses i auaunaga patino / pods, ma lelei i le va o auaunaga / pods foi.

ufi

lagolago firewall talosaga.

Pule

O le lisi o pule na faia e faʻavae i luga pepa aloaia Kubernetes и lenei laulau. Matou te le aofia ai nisi oi latou mai le iloiloga ona o le faʻapitoa poʻo le maualalo o le faʻamaʻi (amatamata o le atinaʻe). O isi o lo'o talanoaina i lalo. Sei o tatou amata i se fa'amatalaga lautele o fofo ma fa'aauau i se laulau aotelega.

Ingress mai Kubernetes

Website: github.com/kubernetes/ingress-nginx
Laisene: Apache 2.0

Ole pule aloa'ia lea mo Kubernetes ma o lo'o atia'e e le nu'u. E manino lava mai le igoa, e faʻavae i luga o le nginx ma faʻapipiʻiina e se isi seti o Lua faʻapipiʻi faʻaaogaina e faʻatino ai mea faʻaopoopo. Ona o le taʻutaʻua o le nginx lava ia ma nai suiga laiti pe a faʻaaogaina e fai ma pule, o lenei filifiliga atonu e sili ona faigofie ma sili ona faigofie e faʻapipiʻi mo le inisinia averesi (faʻatasi ai ma le poto masani i luga ole laiga).

Ingress e NGINX Inc.

Website: github.com/nginxinc/kubernetes-ingress
Laisene: Apache 2.0

Le oloa aloaia a le au atiaʻe nginx. E iai sau fa'atatauga totogi fa'atatau i NGINX Plus. O le manatu autu o se tulaga maualuga o le mautu, faifai pea le fetaui i tua, le leai o soʻo se modules faʻapitoa ma le faʻaalia o le saoasaoa maualuga (faʻatusatusa i le pule faʻatonu), na ausia ona o le teenaina o Lua.

E matua fa'aitiitia le fa'ata'ita'iga saoloto, e aofia ai pe a fa'atusatusa i le pule fa'atonu (ona o le leai o ni fa'aoga Lua e tasi). I le taimi lava e tasi, o le totogi o loʻo i ai se faʻaopoopoga lautele faʻatinoga: metric taimi moni, faʻamaonia JWT, siaki soifua maloloina faʻamalosi, ma isi mea. O se avanoa taua i luga ole NGINX Ingress o le lagolago atoatoa mo TCP / UDP fefaʻatauaʻiga (faʻapea foʻi i totonu ole faʻalapotopotoga!). To'ese - le leai o fa'asologa o fefa'ataua'iga, lea, e ui i lea, "o lo'o i ai le fa'amuamua aupito maualuga mo le au atina'e," ae e umi se taimi e fa'atino ai.

Kong Ingress

Website: github.com/Kong/kubernetes-ingress-controller
Laisene: Apache 2.0

Oloa fausia e Kong Inc. i ni lomiga se lua: faapisinisi ma saoloto. Faʻavae i luga o le nginx, lea ua faʻalauteleina i se numera tele o lua modules.

I le taimi muamua, na taulaʻi i le gaioiga ma le faʻaogaina o talosaga API, i.e. e avea o se API Gateway, ae i le taimi nei ua avea ma pule atoatoa Ingress. Tulaga sili: tele faʻaopoopoga faʻaopoopo (e aofia ai i latou mai le au atinaʻe lona tolu) e faigofie ona faʻapipiʻi ma faʻapipiʻi ma faʻatasi ai ma le fesoasoani o loʻo faʻatinoina ai le tele o vaega faʻaopoopo. Ae ui i lea, o galuega faʻapipiʻi ua uma ona ofoina atu le tele o avanoa. O le fa'atulagaina o galuega e faia e fa'aaoga ai punaoa CRD.

O se vaega taua o le oloa - o le galue i totonu o le laina tutusa (nai lo le fa'aigoa o igoa) o se mataupu fete'ena'i: mo nisi e foliga mai o se fa'aletonu (e tatau ona e faia ni fa'alapotopotoga mo kosi ta'itasi), ma mo se tasi o se fa'aaliga ( eоSili atu tulaga o le faaesea, pei afai e gau le tasi pule, ona faʻatapulaʻaina lea o le faʻafitauli i le matagaluega naʻo ia).

Traefik

Website: github.com/containous/traefik
Laisene: MIT

O se sui na muai faia e galue ai ma le fa'atonuga o auala mo microservices ma lo latou siosiomaga malosi. O le mea lea, le tele o mea aoga: faʻafouina le faʻatulagaina e aunoa ma le toe faʻafouina, lagolago mo le tele o auala paleni, faʻaoga i luga ole laiga, faʻasologa o fua, lagolago mo faʻasalalauga eseese, REST API, faʻasalalauga canary, ma sili atu. O le isi mea manaia o le lagolago mo Let's Encrypt tusipasi mai le pusa. O le faʻaletonu o le faʻatulagaina lea o avanoa maualuga (HA), e manaʻomia e le pule ona faʻapipiʻi ma faʻafesoʻotaʻi lana lava KV teuina.

HAProxy

Website: github.com/jcmoraisjr/haproxy-ingress
Laisene: Apache 2.0

HAProxy ua leva ona lauiloa o se sui ma le paleni o feoaiga. I le avea ai o se vaega o le Kubernetes cluster, e ofoina atu se faʻafouga faʻafouina "malulu" (e aunoa ma le leiloa o fefaʻatauaiga), suʻesuʻega auaunaga e faʻavae i luga ole DNS, faʻaogaina faʻamalosi e faʻaaoga ai le API. E mafai ona manaia le faʻavasegaina atoatoa o le mamanu faʻapipiʻi e ala i le suia o le CM, faʻapea foʻi ma le mafai ona faʻaogaina galuega a le faletusi Sprig i totonu. I se tulaga lautele, o le faʻamamafa autu o le fofo o loʻo i luga o le saoasaoa maualuga, o lona faʻaleleia ma le faʻaogaina o punaoa faʻaaogaina. O le lelei o le pule o le lagolago o se numera faʻamaumauga o auala paleni eseese.

Voyager

Website: github.com/appscode/voyager
Laisene: Apache 2.0

Faʻavae i luga ole HAproxy controller, lea o loʻo faʻatulagaina e avea o se fofo lautele e lagolagoina le tele o vaega o foliga i luga ole numera tele o tagata e tuʻuina atu. O se avanoa e ofoina atu mo le faapaleniina o feoaiga i luga o le L7 ma le L4, ma le faapaleniina o le TCP L4 auala atoa e mafai ona taʻua o se tasi o vaega autu o le fofo.

Konekarate

Website: github.com/heptio/contour
Laisene: Apache 2.0

O lenei fofo e le gata e faʻavae i luga o le Envoy: na atiaʻe e tuʻufaʻatasi faatasi ai ma tusitala o lenei sui lauiloa. O se vaega taua o le mafai lea ona tu'u'ese'ese le pulea o punaoa Ingress e fa'aaoga ai punaoa CRD IngressRoute. Mo fa'alapotopotoga o lo'o i ai le tele o 'au atina'e o lo'o fa'aogaina le fuifui lava e tasi, e fesoasoani lea i le fa'ateleina o le saogalemu o le galulue fa'atasi ma fefa'ataua'iga i va'aiga lata ane ma puipuia i latou mai mea sese pe a suia punaoa Ingress.

E ofoina atu foʻi se seti faʻalauteleina o auala paleni (o loʻo i ai le faʻataʻitaʻiga o talosaga, toe fai faʻataʻitaʻi, faʻatapulaʻaina o le fua faatatau o talosaga, ma sili atu), mataʻituina auʻiliʻili o feoaiga ma toilalo. Masalo mo se tasi o le a avea ma se faʻaletonu taua le leai o se lagolago mo sauniga pipii (e ui o le galuega ua uma ona fai).

Istio Ingress

Website: istio.io/docs/tasks/traffic-management/ingress
Laisene: Apache 2.0

O se fofo fa'a'au'au 'au'aunaga e le gata o le Ingress controller e fa'afoeina femalaga'iga mai fafo, ae fa'atonutonu uma feoaiga i totonu o le fuifui. I lalo o le pulou, e faʻaaogaina le Envoy e fai ma sui taʻavale mo auaunaga taʻitasi. O le mea moni, o se tuʻufaʻatasiga tele lea e "mafai ona faia se mea", ma o lona manatu autu o le maualuga o le puleaina, faʻalauteleina, saogalemu ma le manino. Fa'atasi ai, e mafai ona e fa'alelei fa'asologa o ta'avale, fa'atagaina avanoa i le va o au'aunaga, fa'apaleni, mata'ituina, fa'amalologa o canary, ma le tele o isi mea. Faitau atili e uiga ia Istio i le faasologa o tala "Toe fo'i i microservices ma Istio".

sāvali

Website: github.com/datawire/ambassador
Laisene: Apache 2.0

O le isi fofo e faʻavae i luga o le Envoy. O lo'o iai fa'asalalauga e leai se totogi ma fa'apisinisi. O loʻo faʻatulagaina o le "matua atoatoa i Kubernetes", lea e aumaia ai tulaga lelei (faʻapipiʻi faʻatasi ma metotia ma faʻalapotopotoga o le K8s cluster).

Laulau faʻatatau

O lea la, o le tumutumuga o le tusiga o lenei laulau tele:

Va'aiga lautele ma fa'atusatusaga o Ingress controllers mo Kubernetes

E mafai ona kiliki mo se vaaiga vavalalata, ma o loʻo avanoa foi i le faatulagaga Google Sheets.

E tauaofai

O le faʻamoemoega o lenei tusiga o le tuʻuina atu lea o se malamalamaʻaga sili atu (peitaʻi, e leai se mea e le atoatoa!) o le a le filifiliga e fai i lau mataupu faapitoa. E pei ona masani ai, e tofu lava le pule ma ona lava lelei ma le le lelei ...

O le Ingress masani mai Kubernetes e lelei mo lona avanoa ma le faʻamaonia, e lava le tele o foliga - i le tulaga lautele, e tatau ona "lava mo mata". Ae peitaʻi, afai o loʻo i ai faʻaopoopoga manaʻoga mo le mautu, le maualuga o foliga ma atinaʻe, e tatau ona e gauai atu i Ingress ma NGINX Plus ma se totogi totogi. O Kong o loʻo i ai le seti sili ona tamaoaiga o plug-ins (ma, e tusa ai, o avanoa latou te tuʻuina atu), ma i le totogi totogi e sili atu. E tele avanoa e galue ai o se API Gateway, faʻatulagaina faʻamalosi e faʻavae i luga o punaoa CRD, faʻapea foʻi ma auaunaga masani Kubernetes.

Faʻatasi ai ma manaʻoga faʻaopoopo mo le paleni ma auala faʻatagaina, vaʻai i Traefik ma HAProxy. O poloketi Open Source ia, fa'amaonia i le tele o tausaga, matua mautu ma fa'atupuina malosi. O le Contour ua lua tausaga talu ai, ae o loʻo foliga mai e laʻititi tele ma e naʻo mea faʻapitoa e faʻaopoopo i luga ole Envoy. Afai ei ai manaʻoga mo le i ai / faʻapipiʻiina o le WAF i luma o le talosaga, e tatau ona e gauai atu i le Ingress tutusa mai Kubernetes poʻo HAProxy.

Ma o le sili ona tamaoaiga i tulaga o foliga o oloa fausia i luga o le Envoy, aemaise lava Istio. E foliga mai o se fofo atoatoa e "mafai ona faia soo se mea", ae ui i lea, o lona uiga o se tulaga maualuga maualuga atu mo le faʻatulagaina / faʻalauiloa / pulega nai lo isi fofo.

Ua matou filifilia ma faʻaaoga pea le Ingress mai Kubernetes e avea o se faʻatonu masani, lea e aofia ai le 80-90% o manaʻoga. E matua fa'atuatuaina, faigofie ona fa'atulaga ma fa'alautele. I se tulaga lautele, i le leai o ni manaʻoga faʻapitoa, e tatau ona fetaui ma le tele o fuifui / talosaga. O oloa tutusa lautele ma faigofie, Traefik ma HAProxy e mafai ona fautuaina.

SALA

Faitau foi i la matou blog:

puna: www.habr.com

Faaopoopo i ai se faamatalaga