Kakaretso le papiso ea balaoli ba Ingress bakeng sa Kubernetes

Kakaretso le papiso ea balaoli ba Ingress bakeng sa Kubernetes

Ha o qala sehlopha sa Kubernetes bakeng sa ts'ebeliso e itseng, o hloka ho utloisisa hore na ts'ebeliso ka boeona, khoebo le baetsi ba lisebelisoa li hlahisa eng ho sesebelisoa sena. Ka boitsebiso bona, u ka qala ho etsa qeto ea meralo 'me, haholo-holo, ho khetha molaoli ea itseng oa Ingress, eo ho seng ho ntse ho e-na le palo e kholo kajeno. Bakeng sa ho fumana mohopolo oa mantlha oa likhetho tse fumanehang ntle le ho feta har'a lingoliloeng / litokomane tse ngata, joalo-joalo, re lokiselitse kakaretso ena, ho kenyeletsoa le ba ka sehloohong (tlhahiso e lokiselitsoeng) balaoli ba Ingress.

Re tšepa hore e tla thusa basebetsi-'moho ho khetha tharollo ea meralo - bonyane e tla fetoha sebaka sa ho qala ho fumana lintlha tse qaqileng le liteko tse sebetsang. Nakong e fetileng, re ithutile lisebelisoa tse ling tse tšoanang letlooa, 'me, ka mokhoa o makatsang, ha rea ​​ka ra fumana e le' ngoe e feletseng kapa e fokolang, 'me ea bohlokoa ka ho fetisisa - e hlophisitsoeng - tlhahlobo. Kahoo ha re tlatse sekheo seo!

Litekanyetso

Ha e le hantle, ho etsa papiso le ho fumana sephetho leha e le sefe se molemo, ha ua lokela ho utloisisa feela sebaka sa thuto, empa hape u be le lethathamo le khethehileng la litekanyetso tse tla beha vector ea lipatlisiso. Ntle le ho iketsa eka re sekaseka linyeoe tsohle tse ka khonehang tsa ho sebelisa Ingress / Kubernetes, re lekile ho totobatsa litlhoko tse akaretsang tsa balaoli - itokisetse hore maemong afe kapa afe o tla tlameha ho ithuta lintlha le lintlha tsohle tsa hau ka thoko.

Empa ke tla qala ka litšoaneleho tse seng li tloaelehile hoo li kenngoeng ts'ebetsong litharollong tsohle 'me ha li nahane:

  • ho sibolloa ho matla ha litšebeletso (ho sibolla litšebeletso);
  • Ho felisoa ha SSL;
  • ho sebetsa le li-websockets.

Joale bakeng sa lintlha tsa papiso:

Liprothokholo tse tšehetsoeng

E 'ngoe ea litekanyetso tsa mantlha tsa khetho. Software ea hau e kanna ea se sebetse ho HTTP e tloaelehileng, kapa e ka hloka ho sebetsa ho liprothokholo tse ngata ka nako e le ngoe. Haeba nyeoe ea hau e sa tloaeleha, etsa bonnete ba hore u nahanela ntlha ena e le hore u se ke ua tlameha ho hlophisa sehlopha hape hamorao. Bakeng sa balaoli bohle, lenane la li-protocol tse tšehetsoeng lea fapana.

software ka sehloohong

Ho na le mefuta e fapaneng ea lits'ebetso tseo molaoli a thehiloeng ho tsona. Tse tummeng ke nginx, traefik, haproxy, envoy. Ka kakaretso, e ka 'na ea se ke ea e-ba le phello e ngata mabapi le hore na sephethephethe se amoheloa joang le hore na se fetisoa joang, empa kamehla ho molemo ho tseba li-nuances le likarolo tsa "tlas'a hood".

Tsela ea sephethephethe

Motheong oa seo u ka se khonang ho etsa qeto mabapi le tataiso ea sephethephethe ho ea tšebeletsong e itseng? Hangata tsena ke moamoheli le tsela, empa ho na le menyetla e eketsehileng.

Sebaka sa mabitso ka har'a sehlopha

Sebaka sa mabitso (sebaka sa mabitso) - bokhoni ba ho arola lisebelisoa ka mokhoa o utloahalang ho Kubernetes (mohlala, sethaleng, tlhahiso, joalo-joalo). Ho na le li-controller tsa Ingress tse lokelang ho kenngoa ka thoko sebakeng se seng le se seng sa mabitso (ebe se ka tsamaisa sephethephethe feela ho lipopo tsa sebaka sena). Mme ho na le (le bongata ba bona bo hlakileng) ba sebetsang lefats'eng ka bophara bakeng sa sehlopha sohle - ho bona sephethephethe se lebisitsoe ho sehlopha sefe kapa sefe sa sehlopha, ho sa tsotelehe sebaka sa mabitso.

Mehlala bakeng sa libaka tse holimo

Sephethephethe se lebisitsoe joang maemong a bophelo bo botle ba kopo, litšebeletso? Ho na le likhetho tse nang le licheke tse sebetsang le tse sa sebetseng, tse lekang hape, li-circuit breakers (Bakeng sa lintlha tse ling, bona, mohlala, sengoloa se mabapi le Istio), lits'ebetso tsa hau tsa tlhahlobo ea bophelo bo botle (litlhahlobo tsa bophelo bo botle), joalo-joalo. Parameter ea bohlokoa haholo haeba u na le litlhoko tse phahameng tsa ho fumaneha le ho tlosoa ka nako ea litšebeletso tse hlōlehileng ho tloha ho leka-lekanya.

Ho leka-lekanya algorithms

Ho na le likhetho tse ngata: ho tloha ho tsa setso Robin e chitja ho tse sa tloaelehang rdp-cookie, hammoho le likarolo tsa motho ka mong joalo ka linako tse khomarelang.

Netefatso

Mookameli o tšehetsa merero efe ea tumello? Basic, digest, oauth, external-auth - Ke nahana hore likhetho tsena li lokela ho tloaeleha. Ena ke ntlha ea bohlokoa haeba ho na le li-loops tse ngata (le/kapa tsa lekunutu feela) tse fihlellehang ka Ingress.

Kabo ea sephethephethe

Na molaoli o ts'ehetsa mekhoa e tloaelehileng ea ho tsamaisa sephethephethe joalo ka ho phatlalatsoa ha canary (canary), tlhahlobo ea A / B, seipone sa sephethe-phethe (seipone / moriti)? Ena ke taba e bohloko haholo bakeng sa lits'ebetso tse hlokang taolo e nepahetseng le e nepahetseng ea sephethephethe bakeng sa liteko tse hlahisang litholoana, ho lokisa liphoso tsa sehlahisoa ntle le marang-rang (kapa ka tahlehelo e nyane), tlhahlobo ea sephethephethe, joalo-joalo.

Ngoliso e lefelloang

Na ho na le khetho e lefuoang bakeng sa molaoli, ka ts'ebetso e tsoetseng pele le / kapa tšehetso ea tekheniki?

Sebopeho sa mosebelisi (Web UI)

Na ho na le GUI ea ho laola tlhophiso ea molaoli? Haholo-holo bakeng sa "handiness" le / kapa bakeng sa ba hlokang ho etsa liphetoho tse itseng ho tlhophiso ea Ingress'a, empa ho sebetsa ka litempele tse "tala" ha ho bonolo. E ka ba molemo haeba bahlahisi ba batla ho etsa liteko ka sephethephethe hang-hang.

Netefatso ea JWT

Ho ba teng ha netefatso e hahelletsoeng ea li-tokens tsa webo tsa JSON bakeng sa tumello le netefatso ea mosebelisi ho fihlela kopo ea ho qetela.

Monyetla oa ho etsa configuration

Katoloso ea template ka kutloisiso ea ho ba le mekhoa e u lumellang hore u kenye litaelo tsa hau, lifolakha, joalo-joalo ho litempele tse tloaelehileng tsa tlhophiso.

Mekhoa ea motheo ea ts'ireletso ea DDOS

Li-algorithms tsa tekanyo e bonolo kapa likhetho tse rarahaneng tsa ho sefa sephethephethe tse ipapisitseng le liaterese, li-whitelist, linaha, jj.

Kopa mohlala

Bokhoni ba ho beha leihlo, ho lekola le ho lokisa likopo tse tsoang ho Ingresses ho ea lits'ebeletso tse itseng / li-pods, 'me hantle lipakeng tsa lits'ebeletso / li-pods le tsona.

waff

tshehetso sesebelisoa sa firewall.

Balaoli

Lethathamo la balaoli le thehiloe ho latela litokomane tsa molao tsa Kubernetes и tafole ena. Ha rea ​​kenyelletsa tse ling tsa tsona tlhahlobisong ka lebaka la ho khetheha kapa ho ata ho tlase (mokhahlelo oa pele oa nts'etsopele). Tse ling kaofela li tšohloa ka tlase. Ha re qaleng ka tlhaloso e akaretsang ea litharollo 'me re tsoele pele ka tafole ea kakaretso.

Ingress e tsoang Kubernetes

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

Enoa ke molaoli oa molao oa Kubernetes mme o ntse a ntlafatsoa ke sechaba. Ho hlakile hore ho tsoa ho lebitso, e thehiloe ho nginx mme e tlatsitsoe ke sete e fapaneng ea li-plugins tsa Lua tse sebelisetsoang ho kenya tšebetsong likarolo tse ling. Ka lebaka la botumo ba nginx ka boeona le liphetoho tse fokolang ho eona ha e sebelisoa e le molaoli, khetho ena e ka 'na ea e-ba eona e bonolo le e bonolo ka ho fetisisa ho e lokisetsa moenjiniere ea tloaelehileng (ea nang le phihlelo ea marang-rang).

Ingress ka NGINX Inc.

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

Sehlahisoa sa molao sa baetsi ba nginx. E na le mofuta o lefelloang o thehiloeng ho NGINX Plus. Maikutlo a ka sehloohong ke boemo bo phahameng ba botsitso, ho lumellana kamehla ho khutlela morao, ho ba sieo ha li-modules leha e le life tsa extraneous le ho phatlalatsa ho eketseha ka lebelo (ho bapisoa le molaoli oa molao), ho finyelloang ka lebaka la ho hana Lua.

Mofuta oa mahala o fokotsehile haholo, ho kenyelletsa le ha o bapisoa le molaoli oa semmuso (ka lebaka la khaello ea li-module tsa Lua tse tšoanang). Ka nako e ts'oanang, ea lefuoang o na le ts'ebetso e eketsehileng e pharalletseng: metrics ea nako ea nnete, netefatso ea JWT, licheke tse sebetsang tsa bophelo bo botle, le tse ling. Monyetla oa bohlokoa ho feta NGINX Ingress ke ts'ehetso e felletseng bakeng sa sephethephethe sa TCP / UDP (le ka mofuta oa sechaba!). Tlosa - ho hloka tšobotsi ea kabo ea sephethephethe, eo, leha ho le joalo, "e nang le eona e tlang pele ho bahlahisi," empa ho nka nako ho e kenya tšebetsong.

Kong Ingress

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

Sehlahisoa se entsoeng ke Kong Inc. ka liphetolelo tse peli: ea khoebo le ea mahala. E ipapisitse le nginx, e atolositsoeng ka palo e kholo ea li-module tsa Lua.

Qalong, e ne e tsepamisitse maikutlo ho sebetsa le ho tsamaisa likopo tsa API, ke hore. joalo ka API Gateway, empa hajoale e se e le molaoli oa Ingress ea felletseng. Melemo e ka sehloohong: li-module tse ngata tse eketsehileng (ho kenyeletsoa le tse tsoang ho baetsi ba mekhatlo ea boraro) tseo ho leng bonolo ho li kenya le ho li lokisa le ka thuso ea hore mefuta e mengata ea likarolo tse ling e kenngoe ts'ebetsong. Leha ho le joalo, mesebetsi e hahelletsoeng e se e ntse e fana ka menyetla e mengata. Tlhophiso ea mosebetsi e etsoa ho sebelisoa lisebelisoa tsa CRD.

Karolo ea bohlokoa ea sehlahisoa - ho sebetsa ka har'a contour e le 'ngoe (ho e-na le ho fapanyetsana mabitso) ke taba e tsosang khang: ho ba bang e tla bonahala e le mofoka (o tlameha ho hlahisa mekhatlo bakeng sa contour ka 'ngoe),' me ho motho e mong ke tšobotsi ( bоBoemo bo boholo ba ho itšehla thajana, joalo ka haeba molaoli a le mong a robehile, joale bothata bo lekanyelitsoe ho potoloho feela).

Traefik

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

Moemeli eo qalong a neng a etselitsoe ho sebetsa ka kopo ea ho tsamaisa li-microservices le tikoloho ea tsona e matla. Ka hona, likarolo tse ngata tsa bohlokoa: ho ntlafatsa tlhophiso ntle le ho qala bocha ho hang, ts'ehetso ea mekhoa e mengata ea ho leka-lekanya, sebopeho sa marang-rang, ho fetisa metrics, tšehetso ea liprothokholo tse fapaneng, REST API, li-canary releases, le tse ling tse ngata. Tšobotsi e 'ngoe e ntle ke tšehetso ea Let's Encrypt setifikeiti ka ntle ho lebokose. Bothata ke hore e le ho hlophisa boteng bo phahameng (HA), molaoli o tla hloka ho kenya le ho hokahanya polokelo ea eona ea KV.

HAProxy

Website: github.com/jcmorisjr/haproxy-ingress
License: Apache 2.0

HAProxy esale e tsejoa e le proxy le sephethephethe se leka-lekaneng. E le karolo ea sehlopha sa Kubernetes, e fana ka ntlafatso ea tlhophiso e "bonolo" (ntle le tahlehelo ea sephethephethe), ho sibolloa ha litšebeletso ho ipapisitse le DNS, tlhophiso e matla e sebelisang API. Ho ka ba monate ho etsa template ea config ka ho feletseng ka ho nkela CM sebaka, hammoho le bokhoni ba ho sebelisa mesebetsi ea laebrari ea Sprig ho eona. Ka kakaretso, khatiso e kholo ea tharollo ke lebelo le phahameng, ts'ebetso ea eona le katleho ea lisebelisoa tse sebelisoang. Molemo oa molaoli ke ts'ehetso ea palo ea rekoto ea mekhoa e fapaneng ea ho leka-lekanya.

Etela maeto

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

E thehiloe ho HAproxy controller, e behiloeng e le tharollo ea bokahohle e tšehetsang mefuta e mengata ea likarolo ho palo e kholo ea bafani. Monyetla o fanoa bakeng sa ho leka-lekanya sephethephethe ho L7 le L4, 'me ho leka-lekanya sephethephethe sa TCP L4 ka kakaretso ho ka bitsoa e' ngoe ea likarolo tsa bohlokoa tsa tharollo.

Khohlano

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

Tharollo ena ha e thehiloe feela ho Envoy: e entsoe ke mmoho le bangoli ba moemeli enoa ea tsebahalang. Ntho ea bohlokoa ke bokhoni ba ho arola taolo ea lisebelisoa tsa Ingress ho sebelisa lisebelisoa tsa IngressRoute CRD. Bakeng sa mekhatlo e nang le lihlopha tse ngata tsa nts'etsopele e sebelisang sehlopha se le seng, sena se thusa ho eketsa ts'ireletso ea ho sebetsa le sephethephethe ho li-loops tsa boahelani le ho li sireletsa liphosong ha li fetola mehloli ea Ingress.

E boetse e fana ka mekhoa e mengata ea ho leka-lekanya (ho na le seipone sa likopo, ho ipheta-pheta, ho fokotsa sekhahla sa likopo, le tse ling tse ngata), tlhahlobo e qaqileng ea phallo ea sephethephethe le liphoso. Mohlomong ho motho e mong e tla ba tšitiso e kholo ho haella ha ts'ehetso bakeng sa linako tse khomarelang (le hoja mosebetsi o le teng e se e ntse e tsoela pele).

Istio Ingress

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

Tharollo e pharalletseng ea mesh ea litšebeletso eo e seng feela ingress controller e laolang sephethephethe se kenang ho tsoa kantle, empa hape e laola sephethephethe sohle ka har'a sehlopha. Tlas'a hood, Envoy e sebelisoa e le moemeli oa koloi e ka thōko bakeng sa tšebeletso ka 'ngoe. Ha e le hantle, ena ke motsoako o moholo "o ka etsang ntho leha e le efe", 'me khopolo ea eona e ka sehloohong ke ho laola ka ho fetisisa, ho atolosoa, tšireletso le ho pepeseha. Ka eona, o ka hlophisa tsela ea sephethephethe hantle, tumello ea phihlello lipakeng tsa lits'ebeletso, ho leka-lekanya, ho beha leihlo, ho lokolloa ha canary, le tse ling tse ngata. Bala haholoanyane ka Istio letotong la lingoliloeng "Khutlela ho microservices le Istio".

Moemeli

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

Tharollo e 'ngoe e thehiloeng ho Envoy. E na le liphetolelo tsa mahala le tsa khoebo. E behiloe joalo ka "letsoalloa la Kubernetes ka botlalo", e leng se tlisang melemo e ts'oanang (kopano e tiileng le mekhoa le mekhatlo ea sehlopha sa K8s).

tafole ea papiso

Kahoo, sehlohlolo sa sengoloa ke tafole ena e kholo:

Kakaretso le papiso ea balaoli ba Ingress bakeng sa Kubernetes

E ka tobeha hore u e shebe haufi, 'me e fumaneha hape ka mokhoa oo Li-Sheets tsa Google.

A re ke re akare

Sepheo sa sehlooho sena ke ho fana ka kutloisiso e feletseng (leha ho le joalo, ho hang ha e felle!) Ea khetho efe eo u lokelang ho e etsa tabeng ea hau. Joalo ka tloaelo, molaoli e mong le e mong o na le melemo le likotsi tsa hae…

Ingress ea khale e tsoang ho Kubernetes e ntle bakeng sa ho fumaneha ha eona le bopaki ba eona, likarolo tse ngata tse lekaneng - ka kakaretso, e lokela ho "lekane bakeng sa mahlo". Leha ho le joalo, haeba ho na le litlhoko tse eketsehileng tsa botsitso, boemo ba likarolo le nts'etsopele, u lokela ho ela hloko Ingress le NGINX Plus le ho ngolisoa ho lefshoang. Kong e na le li-plug-ins tse ruileng ka ho fetisisa ('me, ka hona, menyetla eo ba fanang ka eona),' me phetolelong e lefshoang ho na le tse ling tse ngata. E na le menyetla e mengata ea ho sebetsa joalo ka API Gateway, tlhophiso e matla e thehiloeng ho lisebelisoa tsa CRD, hammoho le lits'ebeletso tsa mantlha tsa Kubernetes.

Ka litlhoko tse eketsehileng tsa ho leka-lekanya le mekhoa ea tumello, sheba Traefik le HAProxy. Tsena ke merero ea Open Source, e netefalitsoeng ho theosa le lilemo, e tsitsitse haholo ebile e nts'etsapele ka mafolofolo. Contour e se e le lilemo tse 'maloa joale, empa e ntse e shebahala e le monyane haholo mme e na le likarolo tsa mantlha feela tse kentsoeng holim'a Envoy. Haeba ho na le litlhoko tsa ho ba teng / ho kenngoa ha WAF ka pel'a kopo, u lokela ho ela hloko Ingress e tšoanang ho tloha Kubernetes kapa HAProxy.

'Me ba ruileng ka ho fetisisa ho latela likarolo ke lihlahisoa tse hahiloeng holim'a Envoy, haholo-holo Istio. Ho bonahala e le tharollo e felletseng ea hore "e ka etsa eng kapa eng", eo, leha ho le joalo, e bolelang le monyetla o phahameng haholo oa ho kena bakeng sa tlhophiso / qala / tsamaiso ho feta litharollo tse ling.

Re khethile 'me re ntse re sebelisa Ingress ho tloha Kubernetes e le molaoli ea tloaelehileng, o koahelang 80-90% ea litlhoko. E tšepahala haholo, e bonolo ho e hlophisa le ho e atolosa. Ka kakaretso, ha ho na litlhoko tse khethehileng, e lokela ho lumellana le lihlopha tse ngata / likopo. Ho lihlahisoa tse tšoanang tsa bokahohleng le tse batlang li le bonolo, Traefik le HAProxy li ka buelloa.

PES

Bala hape ho blog ea rona:

Source: www.habr.com

Eketsa ka tlhaloso