Tirohanga me te whakataurite o nga kaiwhakahaere Ingress mo Kubernetes

Tirohanga me te whakataurite o nga kaiwhakahaere Ingress mo Kubernetes

Ina whakarewahia he huinga Kubernetes mo tetahi tono motuhake, me mohio koe he aha te tono ake, te pakihi, me nga kaihanga ki tenei rauemi. Ma enei korero, ka taea e koe te tiimata ki te whakatau hoahoanga, ina koa, te kowhiri i tetahi kaiwhakahaere Ingress motuhake, he maha nga waahanga i tenei ra. Kia mohio ai koe mo nga whiringa e waatea ana me te kore e haere ki te maha o nga tuhinga / tuhinga, me era atu, kua whakaritea e matou tenei tirohanga, tae atu ki nga kaiwhakahaere matua (whakaputa rite) Ingress.

Ko te tumanako ka awhina i nga hoa mahi ki te kowhiri i tetahi otinga hoahoanga - i te iti rawa ka noho hei timatanga mo te whiwhi korero taipitopito me nga whakamatautau mahi. I mua, i akohia e matou etahi atu rauemi rite i runga i te kupenga, a, he mea whakamiharo, kaore i kitea he mea kua oti te whakaoti, me te mea nui - he hanganga - arotake. No reira kia whakakiia taua waahi!

paearu

Ko te tikanga, ki te whakataurite me te whai hua whai hua, me maarama koe ehara i te kaupapa kaupapa anake, engari me whai rarangi paearu motuhake ka whakatauhia te vector rangahau. Ma te kore e kii ki te tarai i nga keehi katoa mo te whakamahi i te Ingress / Kubernetes, i whakamatau matou ki te whakanui i nga whakaritenga tino whanui mo nga kaiwhakahaere - me noho rite koe me ako koe i o korero motuhake me o korero motuhake.

Engari ka timata ahau me nga ahuatanga kua tino mohio kua whakatinanahia ki nga otinga katoa kaore e whakaarohia:

  • te kitenga hihiri o nga ratonga (whakakitenga ratonga);
  • Whakamutua SSL;
  • mahi me nga turanga tukutuku.

Inaianei mo nga tohu whakataurite:

Kawa tautokona

Ko tetahi o nga paearu whiriwhiri matua. Kaore pea to rorohiko e mahi i runga i te HTTP paerewa, me mahi ranei i runga i nga tikanga maha i te wa kotahi. Mena he kore-paerewa to keehi, me whakaaro koe ki tenei take kia kore ai koe e whirihora ano i te tautau a muri ake nei. Mo nga kaiwhakahaere katoa, he rereke te rarangi o nga kawa tautoko.

pūmanawa i te matua

He maha nga rereketanga o nga tono kei runga te kaiwhakahaere. Ko nga mea rongonui ko nginx, traefik, haproxy, karere. I te nuinga o te waa, kaore pea he painga nui ki te pehea e whakawhiwhia ai nga waka me te tuku, engari he pai tonu te mohio ki nga ahuatanga me nga ahuatanga o te mea "i raro i te potae".

Ararere waka

I runga i nga mea ka taea te whakatau mo te ahunga o nga waka ki tetahi ratonga? I te nuinga o te wa ko enei he kaihautu me te huarahi, engari tera ano etahi atu huarahi.

Mokowāingoa i roto i te kāhui

Mokowāingoa (mokowāingoa) - te kaha ki te wehewehe i nga rauemi i roto i te Kubernetes (hei tauira, i runga i te atamira, te hanga, me etahi atu). He kaiwhakahaere Ingress me whakauru motuhake ki ia mokowāingoa (katahi ka taea e ia te arahi i nga waka anake ki nga putunga o tenei waahi). A tera ano etahi (me te nuinga o ratou) e mahi ana i te ao mo te roopu katoa - kei roto i a raatau ka anga nga waka ki tetahi putunga o te tautau, ahakoa te waahi ingoa.

He tauira mo te taha whakarunga

Me pehea te toronga waka ki nga ahuatanga hauora o te tono, ratonga? He kōwhiringa me te arowhai kaha me te hāngū, te ngana ano, te ara iahiko (Mo etahi atu korero, tirohia, hei tauira, tuhinga mo Istio), ake nga whakatinanatanga o nga arowhai hauora (arowhai hauora ritenga), aha atu. He tawhā tino nui mena kei a koe nga whakaritenga nui mo te waatea me te tango i nga ratonga rahua mai i te taurite.

Taurite hātepe

He maha nga whiringa: mai i nga tikanga tuku iho huri-robin ki te iwi ke rdp-pihikete, me nga ahuatanga takitahi penei wā piri.

Whakaaturanga

He aha nga kaupapa whakamana ka tautokohia e te kaiwhakahaere? Basic, digest, oauth, external-auth - Ki taku whakaaro me mohio enei whiringa. He paearu nui tenei mena he maha nga kopae kaiwhakawhanake (me/he motuhake noa ranei) ka uru atu ma Ingress.

Te tohatoha waka

Kei te tautokohia e te kaiwhakahaere nga tikanga tohatoha waka e whakamahia nuitia ana penei i te whakakao kanari (canary), te whakamatautau A/B, te whakaata waka (whakaata/whakaata)? He kaupapa tino mamae tenei mo nga tono e hiahia ana kia tika, kia tika hoki te whakahaere waka mo nga whakamatautau whai hua, te patuiro i nga pepeke hua ki waho-aho (he iti noa ranei te mate), te tātari waka, aha atu.

Ohaurunga utu

He whiringa utu mo te kaiwhakahaere, me nga mahi matatau me te tautoko hangarau / ranei?

Atanga kaiwhakamahi whakairoiro (UI Tukutuku)

He GUI hei whakahaere i te whirihoranga kaiwhakahaere? Ko te nuinga mo te "maamaa" me / ranei mo te hunga e hiahia ana ki te whakarereke i te whirihoranga Ingress'a, engari ko te mahi me nga tauira "raw" he uaua. Ka whai hua mena ka hiahia nga kaiwhakawhanake ki te whakahaere i etahi whakamatautau me nga waka i runga i te rere.

JWT whakamana

Te aroaro o te whakamana i roto i nga tohu paetukutuku JSON mo te whakamana me te whakamana i te kaiwhakamahi ki te tono mutunga.

Ka taea te whakarite whirihora

Ko te toronga o te tauira i runga i te ahua o nga tikanga e taea ai e koe te taapiri i a koe ake tohutohu, haki, aha atu ki nga tauira whirihoranga paerewa.

Nga tikanga tiaki DDOS taketake

Ko nga taatete reeti ngawari, nga whiringa tātari waka uaua ake ranei i runga i nga wahitau, rarangi ma, whenua, aha atu.

Tono tohu

Ko te kaha ki te aro turuki, ki te whai me te patuiro i nga tono mai i Ingresses ki nga ratonga motuhake / putunga, me te pai ki waenga i nga ratonga / putunga hoki.

waff

support pātūahi tono.

Kaiwhakahaere

Ko te rarangi o nga kaiwhakahaere i hangaia i runga i tuhinga whaimana Kubernetes и tenei tepu. I whakakorehia e matou etahi o ratou i roto i te arotake na te mea motuhake me te iti o te mate (te wa tuatahi o te whanaketanga). Ko te toenga ka korerohia i raro nei. Me timata ma te whakaahuatanga whanui mo nga otinga ka haere tonu ma te ripanga whakarāpopoto.

Ingress from Kubernetes

paetukutuku: github.com/kubernetes/ingress-nginx
Raihana: Apache 2.0

Koinei te kaiwhakahaere mana mo Kubernetes, kei te whakawhanakehia e te hapori. Ma te mohio mai i te ingoa, i ahu mai i runga i te nginx ka whakakiia e te huinga rereke o nga taputapu Lua e whakamahia ana hei whakatinana i etahi atu waahanga. Na te rongonui o te nginx ake me te iti o nga whakarereketanga i te wa e whakamahia ana hei kaiwhakahaere, koinei pea te mea ngawari me te ngawari ki te whirihora mo te miihini toharite (me te wheako paetukutuku).

Ingress na NGINX Inc.

paetukutuku: github.com/nginxinc/kubernetes-ingress
Raihana: Apache 2.0

Ko te hua mana o nga kaihanga nginx. He putanga utu i runga NGINX Plus. Ko te whakaaro matua ko te taumata teitei o te pumau, te hototahitanga whakamuri tonu, te kore o nga waahanga kee me te kii kua piki ake te tere (whakaritea ki te kaiwhakahaere mana), i tutuki na te whakakahoretanga o Lua.

Ko te putanga kore utu ka tino whakahekehia, tae atu ki te whakataurite ki te kaiwhakahaere mana (na te kore o nga waahanga Lua kotahi). I te wa ano, ko te mea utu he tino whanui taapiri mahi: inenga-waahi, whakamana JWT, arowhai hauora kaha, me etahi atu. Ko tetahi painga nui mo NGINX Ingress ko te tautoko katoa mo te hokohoko TCP / UDP (me te waahanga hapori hoki!). Tango - Tuhinga o mua Ko te waahanga tohatoha waka, heoi, "he mea nui rawa atu mo nga kaiwhakawhanake," engari he wa roa ki te whakatinana.

Kong Ingress

paetukutuku: github.com/Kong/kubernetes-ingress-controller
Raihana: Apache 2.0

Hua i whakawhanakehia e Kong Inc. i roto i nga putanga e rua: arumoni me te kore utu. I runga i te nginx, kua whakawhānuihia me te maha o nga waahanga Lua.

I te timatanga, i arotahi ki te tukatuka me te arataki i nga tono API, i.e. hei Waahi API, engari i tenei wa kua noho hei kaiwhakahaere Ingress katoa. Ko nga painga matua: he maha nga waahanga taapiri (tae atu ki era mai i nga kaiwhakawhanake-tuatoru) he ngawari ki te whakauru me te whirihora me te awhina i te maha o nga waahanga taapiri ka whakatinanahia. Heoi, he maha nga waahanga ka taea e te hanga-i roto. Ka mahia te whirihoranga mahi ma te whakamahi i nga rauemi CRD.

Ko tetahi ahuatanga nui o te hua - ko te mahi i roto i te ahua kotahi (kaore i te mokowhiti-ingoa) he kaupapa tautohetohe: mo etahi ka ahua kino te ahua (me hanga e koe nga hinonga mo ia waahanga), a mo tetahi he ahuatanga ( bоTe taumata nui ake o te wehe, penei ki te pakaru tetahi kaiwhakahaere, ka iti te raruraru ki te ara iahiko anake).

Traefik

paetukutuku: github.com/containous/traefik
Raihana: MIT

He takawaenga i hanga tuatahi hei mahi me te ararere tono mo nga ratonga miihini me o raatau taiao hihiri. No reira, he maha nga waahanga whaihua: te whakahou i te whirihoranga me te kore e whakaara ano, te tautoko mo te maha o nga tikanga whakataurite, te atanga paetukutuku, te tuku whakamua, te tautoko mo nga momo kawa, REST API, tuku canary, me te maha atu. Ko tetahi atu waahanga pai ko te tautoko mo nga tiwhikete Whakamuna i waho o te pouaka. Ko te ngoikoretanga ko te whakarite kia nui te waatea (HA), me whakauru te kaiwhakahaere me te hono i tana ake rokiroki KV.

HAProxy

paetukutuku: github.com/jcmoraisjr/haproxy-ingress
Raihana: Apache 2.0

Kua roa e mohiotia ana a HAProxy hei takawaenga me te taurite waka. Hei waahanga o te roopu Kubernetes, ka tukuna he whakahou whirihoranga "ngohengohe" (kaore e ngaro te waka), te kitenga ratonga i runga i te DNS, te whirihoranga hihiri ma te whakamahi i te API. Ka taea te ataahua ki te whakarite i te tauira whirihora ma te whakakapi i te CM, me te kaha ki te whakamahi i nga mahi whare pukapuka Sprig kei roto. I te nuinga o te waa, ko te tino aro nui o te otinga ko te tere tere, tona arotautanga me te whai hua ki nga rauemi kua pau. Ko te painga o te kaiwhakahaere ko te tautoko o te maha rekoata o nga tikanga whakataurite rereke.

Haere

paetukutuku: github.com/appscode/voyager
Raihana: Apache 2.0

I runga i te kaiwhakahaere HAproxy, kua tuuhia hei otinga mo te ao katoa e tautoko ana i te whānuitanga o nga ahuatanga i runga i te maha o nga kaiwhakarato. Ka tukuna he waahi mo te whakataurite i nga waka i runga i te L7 me te L4, me te whakataurite i nga waka TCP L4 katoa ka kiia ko tetahi o nga ahuatanga matua o te otinga.

Te tikanga

paetukutuku: github.com/heptio/contour
Raihana: Apache 2.0

Ko tenei otinga ehara i te mea anake i runga i te Envoy: i whakawhanakehia e tahi me nga kaituhi o tenei takawaenga rongonui. Ko tetahi ahuatanga nui ko te kaha ki te wehe i te mana whakahaere o nga rauemi Ingress ma te whakamahi i nga rauemi CRD IngressRoute. Mo nga whakahaere he maha nga roopu whanaketanga e whakamahi ana i te roopu kotahi, ka awhina tenei ki te whakanui ake i te haumarutanga o te mahi me nga waka i roto i nga koropiko tata me te tiaki ia ratou i nga hapa i te wa e huri ana i nga rauemi Ingress.

Ka tukuna ano e ia he huinga o nga tikanga whakataurite (he whakaata tono, tukurua-aunoa, he reiti tono, me te maha atu), he tirotiro taipitopito mo te rere o nga waka me nga rahunga. Tena pea mo tetahi ka tino raru te kore tautoko mo nga huihuinga piri (ahakoa te mahi kei te haere tonu).

Istio Ingress

paetukutuku: istio.io/docs/tasks/traffic-management/ingress
Raihana: Apache 2.0

He otinga mata whanui, ehara i te mea he kaiwhakahaere Ingress anake e whakahaere ana i nga waka taumai mai i waho, engari e whakahaere ana i nga waka katoa i roto i te tautau. I raro i te awhi, ka whakamahia te Envoy hei takawaenga taha mo ia ratonga. Ko te tikanga, he huinga nui tenei e "ka taea te mahi i tetahi mea", a ko tana whakaaro matua ko te tino whakahaere, te whakaroa, te haumaru me te marama. Ma te reira, ka taea e koe te whakatika i nga huarahi waka, te uru whakaaetanga i waenga i nga ratonga, te whakataurite, te aro turuki, te tuku canary, me te maha atu. Pānuihia atu mo Istio i roto i nga raupapa tuhinga "Hoki ki nga ratonga miihini me Istio".

Ambassador

paetukutuku: github.com/datawire/ambassador
Raihana: Apache 2.0

Ko tetahi atu otinga i runga i te Envoy. He putanga kore utu me te arumoni. Ka whakatauhia hei "tino taketake ki Kubernetes", e kawe mai ana i nga painga e rite ana (te whakaurunga ki nga tikanga me nga hinonga o te roopu K8s).

tepu whakarite

Na, ko te mutunga o te tuhinga ko tenei tepu nui:

Tirohanga me te whakataurite o nga kaiwhakahaere Ingress mo Kubernetes

Ka taea te panui mo te tirohanga tata, kei te waatea ano i te whakatakotoranga Ngā Papakupu Google.

Me whakariterite

Ko te kaupapa o te tuhinga ko te whakarato i te tino maramatanga (engari, kaore rawa i te tino pau!) he aha nga whiringa ka mahia mo to keehi. Pērā i ngā wā o mua, kei ia kaiwhakahaere tana ake painga me ona ngoikoretanga…

Ko te Ingress matarohia mai i Kubernetes he pai mo tona waatea me te pono, he nui nga ahuatanga - i roto i te keehi whanui, me "nui mo nga kanohi". Engari, ki te nui ake nga whakaritenga mo te pumau, te taumata o nga ahuatanga me te whanaketanga, me aro koe ki te Ingress me NGINX Plus me te ohaurunga utu. Kei a Kong te tino taonga o nga mono-mai (a, na reira, ko nga whai waahi ka whakaratohia e ratou), a, i roto i te utu utu he maha atu. He maha nga waahi ki te mahi hei API Gateway, whirihoranga hihiri i runga i nga rauemi CRD, me nga ratonga Kubernetes taketake.

Na te nui ake o nga whakaritenga mo te whakataurite me nga tikanga whakamana, tirohia a Traefik me HAProxy. He kaupapa Open Source enei, kua whakamatauria i roto i nga tau, tino pumau me te kaha te whakawhanake. Kua rua nga tau kua puta te Contour, engari he ahua nohinohi tonu, a he mea taapiri noa nga ahuatanga ki runga o Envoy. Mena he whakaritenga mo te aroaro / whakauru o WAF i mua o te tono, me aro koe ki taua Ingress mai i Kubernetes, HAProxy ranei.

A ko nga mea tino nui mo nga ahuatanga ko nga hua i hangaia i runga ake o Envoy, ina koa ko Istio. Te ahua nei he otinga matawhānui "ka taea te mahi i tetahi mea", heoi, ko te tikanga o te paepae urunga teitei ake mo te whirihoranga / whakarewatanga / whakahaere i era atu otinga.

Kua whiriwhiria e matou me te whakamahi tonu i te Ingress mai i Kubernetes hei kaiwhakahaere paerewa, e kapi ana i te 80-90% o nga hiahia. He tino pono, he ngawari ki te whirihora me te whakawhānui. I te nuinga o te waa, ki te kore he whakaritenga motuhake, me pai ki te nuinga o nga tautau / tono. Mai i nga hua o te ao me te ngawari noa, ka taea te taunaki a Traefik me HAProxy.

PS

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero