Nchịkọta na ntụnyere ndị njikwa Ingress maka Kubernetes

Nchịkọta na ntụnyere ndị njikwa Ingress maka Kubernetes

Mgbe ị na-ebupụta ụyọkọ Kubernetes maka ngwa a kapịrị ọnụ, ịkwesịrị ịghọta ihe ngwa ahụ n'onwe ya, azụmahịa na ndị mmepe na-etinye aka na akụrụngwa a. Site na ozi a, ị nwere ike ịmalite ịme mkpebi ụlọ na, karịsịa, ịhọrọ otu onye nchịkwa Ingress, nke enweelarị ọnụ ọgụgụ buru ibu taa. Iji nweta echiche bụ isi nke nhọrọ ndị dị na-enweghị ịgafe ọtụtụ akụkọ / akwụkwọ, wdg, anyị akwadola nchịkọta a, gụnyere isi (mmepụta dị njikere) ndị na-ahụ maka ingress.

Anyị na-atụ anya na ọ ga-enyere ndị ọrụ ibe aka n'ịhọrọ ihe ngwọta nke ụkpụrụ ụlọ - ọ dịkarịa ala ọ ga-abụ mmalite maka ịnweta ozi zuru ezu na nyocha ndị bara uru. N'oge gara aga, anyị na-amụ ihe ndị ọzọ yiri ya na netwọk na, n'ụzọ dị egwu, ahụghị otu ihe ma ọ bụ na-ezughị ezu, na nke kachasị mkpa - ahaziri - nyochaa. Ya mere, ka anyị mejupụta oghere ahụ!

Nhazi

Na ụkpụrụ, iji mee ntụnyere ma nweta nsonaazụ ọ bụla bara uru, ịkwesịrị ịghọta ọ bụghị naanị mpaghara isiokwu, kamakwa nwee ndepụta akọwapụtara nke ga-edobe vector nyocha. Na-enweghị ime ka ọ na-enyocha ikpe niile enwere ike iji Ingress / Kubernetes, anyị nwara ịkọwapụta ihe niile achọrọ maka ndị na-ahụ maka njikwa - dịrị njikere na n'ọnọdụ ọ bụla, ị ga-enyocha nkọwapụta na nkọwapụta gị iche.

Ma m ga-amalite site na njirimara ndị maara nke ọma na a na-emejuputa ha na ngwọta niile na anaghị atụle:

  • nchọpụta ike nke ọrụ (nchọpụta ọrụ);
  • Nkwụsị SSL;
  • na-arụ ọrụ na websockets.

Ugbu a maka isi ihe atụnyere:

Usoro nkwado

Otu n'ime isi nhọrọ njirisi. Akụrụngwa gị nwere ike ọ gaghị arụ ọrụ na HTTP ọkọlọtọ, ma ọ bụ ọ nwere ike ịchọ ọrụ na ọtụtụ protocol ozugbo. Ọ bụrụ na ikpe gị abụghị ọkọlọtọ, jide n'aka na ị ga-eburu n'uche ihe a ka ị ghara ịhazigharị ụyọkọ ahụ ma emechaa. Maka ndị njikwa niile, ndepụta nke protocol akwadoro dịgasị iche.

software na isi

Enwere ọtụtụ ngwa dị iche iche nke onye njikwa dabere na ya. Ndị a ma ama bụ nginx, traefik, haproxy, envoy. N'okwu n'ozuzu, ọ nwere ike ọ gaghị enwe mmetụta dị ukwuu n'otú esi enweta ma na-ebufe okporo ụzọ, ma ọ na-aba uru mgbe niile ịmara nuances na njirimara nke ihe dị "n'okpuru mkpuchi".

Ụzọ okporo ụzọ

Na ndabere nke ihe ọ ga-ekwe omume ịme mkpebi banyere ntụziaka nke okporo ụzọ gaa otu ọrụ? Ọtụtụ mgbe ndị a bụ ndị ọbịa na ụzọ, mana enwere ohere ndị ọzọ.

Oghere aha n'ime ụyọkọ

Namespace (namespace) - ikike iji ezi uche kewaa akụrụngwa na Kubernetes (dịka ọmụmaatụ, na ogbo, mmepụta, wdg). Enwere ndị njikwa Ingress nke a ga-etinyerịrị iche na oghere aha ọ bụla (ma mgbe ahụ ọ nwere ike iduzi okporo ụzọ naanị gaa n'akụkụ oghere a). Ma enwere ndị (na ọtụtụ n'ime ha doro anya) na-arụ ọrụ zuru ụwa ọnụ maka ụyọkọ dum - n'ime ha a na-eduzi okporo ụzọ gaa na pọd ọ bụla nke ụyọkọ ahụ, n'agbanyeghị aha aha.

Nlereanya maka elu iyi

Kedu ka esi eduzi okporo ụzọ gaa na ọnọdụ ahụike nke ngwa, ọrụ? Enwere nhọrọ nwere nlele na-arụsi ọrụ ike na nke na-agafe agafe, nyochagharị, ihe nkwụsịtụ sekit (Maka nkọwa ndị ọzọ, lee, dịka ọmụmaatụ, akụkọ banyere Istio), mmejuputa iwu nke onwe nke nyocha ahụike (nleba anya ahụike omenala), wdg. Oke dị oke mkpa ma ọ bụrụ na ị nwere nnukwu ihe achọrọ maka nnweta na iwepụ oge nke ọrụ dara ada site na ịhazi.

Ịhazi algọridim

Enwere ọtụtụ nhọrọ: site na omenala gbaa gburugburu na osisi rdp-kuki, yana njirimara onye ọ bụla dị ka nnyapade sessions.

Nyocha

Kedu atụmatụ ikike onye njikwa na-akwado? Basic, digest, oauth, mpụga-auth - echere m na nhọrọ ndị a kwesịrị ịmara. Nke a bụ akara dị mkpa ma ọ bụrụ na enwere ọtụtụ loops (na / ma ọ bụ naanị nkeonwe) nke a na-enweta site na Ingress.

Nkesa okporo ụzọ

Onye na-ahụ maka ya ọ na-akwado usoro nkesa okporo ụzọ a na-ejikarị dị ka canary rollouts (canary), nnwale A / B, enyo okporo ụzọ (enyo / onyinyo)? Nke a bụ isiokwu na-ewute n'ezie maka ngwa ndị chọrọ njikwa okporo ụzọ ziri ezi na nke ziri ezi maka nnwale na-arụpụta ihe, na-ewepụ ahụhụ ngwaahịa na-anọghị n'ahịrị (ma ọ bụ na-enwe obere mfu), nyocha okporo ụzọ, na ihe ndị ọzọ.

Ndebanye aha akwụ ụgwọ

Enwere nhọrọ akwụ ụgwọ maka onye njikwa, nwere ọrụ dị elu yana / ma ọ bụ nkwado teknụzụ?

Orụ ọrụ eserese (UI Weebụ)

Ọ nwere GUI ọ bụla iji jikwaa nhazi njikwa? tumadi maka "aka" na / ma ọ bụ maka ndị chọrọ ime mgbanwe ụfọdụ na nhazi Ingress'a, mana ịrụ ọrụ na ndebiri "raw" adịghị mma. Ọ nwere ike ịba uru ma ọ bụrụ na ndị mmepe chọrọ ịme ụfọdụ nnwale na okporo ụzọ na ofufe.

Nkwado JWT

Ọnụnọ nke nkwado arụnyere n'ime nke JSON webụ token maka ikike na nkwado nke onye ọrụ ruo ngwa njedebe.

Ohere maka nhazi nhazi

Mgbanwe nke ndebiri n'echiche nke inwe usoro na-enye gị ohere ịgbakwunye ntuziaka nke gị, ọkọlọtọ, wdg na ndebiri nhazi ọkọlọtọ.

Usoro nchekwa DDOS bụ isi

Algọridim dị mfe oke ma ọ bụ nhọrọ nzacha okporo ụzọ dị mgbagwoju anya dabere na adreesị, ndị ọcha, mba, wdg.

Rịọ akara

Ikike inyocha, soro na ihichapụ arịrịọ sitere na Ingresses gaa na ọrụ / pọd, yana nke ọma n'etiti ọrụ / pọd kwa.

Waf

support ngwa firewall.

Ndị njikwa

E hibere ndepụta ndị njikwa dabere na akwụkwọ Kubernetes gọọmentị и okpokoro a. Anyị wepụrụ ụfọdụ n'ime ha na nyocha n'ihi nkọwapụta ma ọ bụ ọnụ ọgụgụ dị ala (n'oge mmalite nke mmepe). A na-atụle ndị ọzọ n'okpuru. Ka anyị malite na nkọwa zuru ezu nke ngwọta ma gaa n'ihu na tebụl nchịkọta.

Ntinye sitere na Kubernetes

website: github.com/kubernetes/ingress-nginx
Akwụkwọ ikike: Apache 2.0

Nke a bụ onye njikwa gọọmentị maka Kubernetes ma ndị obodo na-emepụta ya. N'ụzọ doro anya site na aha ahụ, ọ dabere na nginx ma kwadoro ya site na ihe dị iche iche nke Lua plugins eji mejuputa atụmatụ ndị ọzọ. N'ihi ewu ewu nke nginx n'onwe ya yana obere mgbanwe na ya mgbe ejiri ya dị ka onye njikwa, nhọrọ a nwere ike ịbụ nke kachasị mfe na nke kachasị mfe ịhazi maka onye injinia nkezi (na ahụmịhe webụ).

Ọnụ ego nke NGINX Inc.

website: github.com/nginxinc/kubernetes-ingress
Akwụkwọ ikike: Apache 2.0

Ngwaahịa gọọmentị nke ndị mmepe nginx. Nwere ụdị akwụ ụgwọ dabere na NGINX gbakwunyere. Echiche bụ isi bụ nkwụsi ike dị elu, ndakọrịta azụ azụ mgbe niile, enweghị modul ọ bụla na-abawanye na ọsọ ọsọ nke ekwuputara (ma e jiri ya tụnyere onye njikwa ọrụ), enwetara n'ihi njụta ​​Lua.

Ụdị n'efu na-ebelata nke ukwuu, gụnyere ọbụlagodi ma e jiri ya tụnyere onye njikwa ọrụ (n'ihi enweghị otu Lua modul). N'otu oge ahụ, onye a na-akwụ ụgwọ nwere ọrụ agbakwunyere n'ụzọ zuru oke: metrik ozugbo, nkwado JWT, nyocha ahụike na-arụ ọrụ, na ndị ọzọ. Otu uru dị mkpa karịa NGINX Ingress bụ nkwado zuru oke maka okporo ụzọ TCP / UDP (na ụdị obodo kwa!). Mwepu - enweghị Njirimara nkesa okporo ụzọ, nke, Otú ọ dị, "nwere ihe kachasị mkpa maka ndị mmepe," mana ọ na-ewe oge iji mejuputa ya.

Kong mbata

website: github.com/Kong/kubernetes-ingress-controller
Akwụkwọ ikike: Apache 2.0

Ngwaahịa mepụtara Kong Inc. na nsụgharị abụọ: azụmahịa na n'efu. Dabere na nginx, nke ejirila nnukwu modul Lua gbasaa.

Na mbụ, e lekwasịrị anya na nhazi na imegharị arịrịọ API, ya bụ. dị ka ọnụ ụzọ ámá API, mana n'oge a ọ ghọọla onye nchịkwa Ingress zuru oke. Isi uru: ọtụtụ modul ndị ọzọ (gụnyere ndị sitere na ndị mmepe nke atọ) nke dị mfe ịwụnye na ịhazi na site n'enyemaka nke a na-emejuputa ọtụtụ atụmatụ ndị ọzọ. Agbanyeghị, ọrụ arụnyere n'ime enyelarị ọtụtụ ohere. A na-eme nhazi ọrụ site na iji akụrụngwa CRD.

Akụkụ dị mkpa nke ngwaahịa ahụ - na-arụ ọrụ n'ime otu contour (kama cross-namespaced) bụ isiokwu na-arụrịta ụka: maka ụfọdụ ọ ga-adị ka ihe na-adịghị mma (ị ga-emepụta ụlọ ọrụ maka contour ọ bụla), na maka onye ọ bụ njirimara ( bоGreater larịị nke iche, dị ka ọ bụrụ na otu onye njikwa agbajikwa, mgbe ahụ, nsogbu ahụ na-ejedebe na sekit naanị).

Traefik

website: github.com/containous/traefik
Akwụkwọ ikike: MIT

Ihe nnọchiteanya nke emepụtara ka ọ rụọ ọrụ na ntinye arịrịọ maka microservices na gburugburu ebe obibi ha siri ike. N'ihi ya, ọtụtụ atụmatụ bara uru: imelite nhazi ahụ na-enweghị ịmalitegharị ma ọlị, nkwado maka ọnụ ọgụgụ dị ukwuu nke ụzọ nhazi, interface weebụ, metrics ebugharị, nkwado maka usoro dị iche iche, REST API, canary releases, na ọtụtụ ndị ọzọ. Akụkụ ọzọ mara mma bụ nkwado maka asambodo Ka anyị ezoro ezo na igbe ahụ. Ọdịmma bụ na iji hazie nnukwu nnweta (HA), onye njikwa ga-achọ ịwụnye na jikọọ nchekwa KV nke ya.

HAProxy

website: github.com/jcmoraisjr/haproxy-ingress
Akwụkwọ ikike: Apache 2.0

A maara HAProxy ogologo oge dị ka onye nnọchiteanya na nhazi okporo ụzọ. Dị ka akụkụ nke ụyọkọ Kubernetes, ọ na-enye mmelite nhazi "dị nro" (na-enweghị nkwụsị okporo ụzọ), nchọpụta ọrụ dabere na DNS, nhazi ike na-eji API. Ọ nwere ike ịmasị mma ịhazi ụdị nhazi ahụ kpamkpam site na dochie CM, yana ike iji ọrụ ọba akwụkwọ Sprig na ya. N'ozuzu, isi ihe na-emesi ike nke ngwọta bụ na oke ọsọ ọsọ, njikarịcha ya na arụmọrụ ya na ihe eji eme ihe. Uru nke onye na-ahụ maka njikwa bụ nkwado nke ọnụọgụ ndekọ nke ụzọ nhazi dị iche iche.

Voyager

website: github.com/appscode/voyager
Akwụkwọ ikike: Apache 2.0

Dabere na njikwa HAproxy, nke edobere dị ka ihe ngwọta zuru ụwa ọnụ nke na-akwado atụmatụ dị iche iche na ọnụ ọgụgụ buru ibu nke ndị na-enye ya. A na-enye ohere maka ịhazi okporo ụzọ na L7 na L4, na ịhazi okporo ụzọ TCP L4 n'ozuzu ya nwere ike ịkpọ otu n'ime isi ihe ngwọta nke ngwọta.

Egwuregwu

website: github.com/heptio/contour
Akwụkwọ ikike: Apache 2.0

Ngwọta a abụghị naanị dabere na Nnọchiteanya: e mepụtara ya ọnụ ya na ndị dere akwụkwọ nnọchiteanya a na-ewu ewu. Otu ihe dị mkpa bụ ikike ikewapụ njikwa ihe onwunwe Ingress site na iji akụrụngwa IngressRoute CRD. Maka ndị otu nwere ọtụtụ ndị otu mmepe na-eji otu ụyọkọ ahụ, nke a na-enyere aka ịbawanye nchekwa nke ịrụ ọrụ na okporo ụzọ na loops agbataobi ma chebe ha pụọ ​​​​na njehie mgbe ị na-agbanwe akụrụngwa Ingress.

Ọ na-enyekwa usoro nhazi agbatị ogologo (enwere arịrịọ mirroring, imegharị onwe ya, mmachi ọnụego arịrịọ, na ọtụtụ ihe ndị ọzọ), nleba anya zuru ezu nke usoro okporo ụzọ na ọdịda. Ikekwe maka mmadụ ọ ga-abụ ihe ndọghachi azụ dị ịrịba ama enweghị nkwado maka nnọkọ nnyapade (ọ bụ ezie na ọrụ ahụ amalitelarị).

Istio Ingress

website: istio.io/docs/tasks/traffic-management/ingress
Akwụkwọ ikike: Apache 2.0

Ngwọta ntupu ọrụ zuru oke nke na-abụghị naanị onye njikwa Ingress nke na-ejikwa okporo ụzọ na-abata site na mpụga, mana na-ejikwa okporo ụzọ niile dị n'ime ụyọkọ ahụ. N'okpuru mkpuchi ahụ, a na-eji Envoy dị ka proxy nke akụkụ ụgbọ ala maka ọrụ ọ bụla. N'ezie, nke a bụ nnukwu ngwakọta nke "nwere ike ime ihe ọ bụla", na isi echiche ya bụ njikwa kachasị, extensibility, nchekwa na nghọta. Site na ya, ị nwere ike ịhazigharị ụzọ okporo ụzọ, nweta ikike n'etiti ọrụ, ịhazigharị, nleba anya, mwepụta canary na ọtụtụ ndị ọzọ. Gụkwuo banyere Istio na usoro isiokwu "Laghachi na microservices na Istio".

Onye nnochite anya

website: github.com/datawire/ambassador
Akwụkwọ ikike: Apache 2.0

Ngwọta ọzọ dabere na Envoy. Ọ nwere nsụgharị efu na nke azụmahịa. A na-edobe ya dị ka "onye zuru oke na Kubernetes", nke na-eweta uru ndị kwekọrọ na ya (njikọ siri ike na ụzọ na ụlọ ọrụ nke K8s ụyọkọ).

Ngwakọta tebụl

Yabụ, njedebe nke akụkọ a bụ nnukwu tebụl a:

Nchịkọta na ntụnyere ndị njikwa Ingress maka Kubernetes

Enwere ike ịpị ya maka nlele nso, ọ dịkwa na usoro Okwute Google.

Ka anyị tụlee

Ebumnuche nke isiokwu a bụ inye nghọta zuru oke (agbanyeghị, ọ nweghị ike ọgwụgwụ!) nke nhọrọ ị ga-eme n'ọnọdụ gị. Dị ka ọ dị na mbụ, onye njikwa ọ bụla nwere uru na ọghọm ya…

Omuma Ingress sitere na Kubernetes dị mma maka nnweta ya na igosipụta ya, njirimara bara ụba nke ukwuu - n'ozuzu ya, ọ kwesịrị ịbụ “zuru oke maka anya”. Otú ọ dị, ọ bụrụ na enwere ụbara chọrọ maka nkwụsi ike, ọkwa nke atụmatụ na mmepe, ị kwesịrị ịṅa ntị na Ingress na NGINX Plus na ndenye aha akwụ ụgwọ. Kong nwere nkwụnye nkwụnye kasị baa ọgaranya (yana, ya mere, ohere ha na-enye), na ụdị akwụ ụgwọ enwere ọbụna karịa. Ọ nwere nnukwu ohere iji rụọ ọrụ dị ka ọnụ ụzọ API, nhazi siri ike dabere na akụrụngwa CRD, yana ọrụ Kubernetes bụ isi.

N'ịbawanye ihe achọrọ maka ịhazi na ụzọ ikike, lelee Traefik na HAProxy. Ndị a bụ ọrụ mepere emepe, egosipụtara kemgbe ọtụtụ afọ, kwụsiri ike ma na-arụsi ọrụ ike. Contour apụọla afọ ole na ole ugbu a, mana ọ ka dị obere ma nwee naanị njirimara ndị agbakwunyere n'elu Onye ozi. Ọ bụrụ na enwere ihe achọrọ maka ọnụnọ / ntinye nke WAF n'ihu ngwa ahụ, ị ​​​​kwesịrị ịṅa ntị na otu Ingress sitere na Kubernetes ma ọ bụ HAProxy.

Na ndị kasị baa ọgaranya n'ihe gbasara njirimara bụ ngwaahịa ndị e wuru n'elu onye ozi, karịsịa Istio. O yiri ka ọ bụ ihe ngwọta zuru oke nke "nwere ike ime ihe ọ bụla", nke, Otú ọ dị, pụtakwara ọnụ ụzọ ntinye dị elu dị elu maka nhazi / mmalite / nchịkwa karịa ngwọta ndị ọzọ.

Anyị ahọrọla ma ka na-eji Ingress si Kubernetes dị ka ọkọlọtọ ọkọlọtọ, nke na-ekpuchi 80-90% nke mkpa. Ọ bụ nnọọ ntụkwasị obi, dị mfe ịhazi na gbasaa. N'ozuzu, na-enweghị kpọmkwem ihe achọrọ, ọ kwesịrị dabara ọtụtụ ụyọkọ / ngwa. N'ime otu ngwaahịa zuru ụwa ọnụ na nke dị mfe, Traefik na HAProxy nwere ike ịkwado.

PS

Gụọkwa na blọọgụ anyị:

isi: www.habr.com

Tinye a comment