Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu

"Kotsi ke lebitso la ka la bohareng," Austin Powers, monna oa machaba oa liphiri, o ne a tloaetse ho rialo. Empa se nkoang e le sa bohlokoa haholo ke baemeli ba phahameng le litšebeletso tsa bohlale ho hang ha se tšoanelehe bakeng sa litšebeletso tsa k'homphieutha, moo ho jeoa ke bolutu ho leng molemo haholo ho feta kotsi.

Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu

'Me Istio, hammoho le OpenShift le Kubernetes, e etsa hore ho tsamaisa li-microservices e be ntho e tenang le e ka tsejoang esale pele - mme ho monate. Re tla bua ka sena le tse ling tse ngata posong ea bone le ea ho qetela letotong la Istio.

Ha bolutu bo lokile

Tabeng ea rona, bolutu bo etsahala feela karolong ea ho qetela, ha se setseng ke ho lula le ho shebella ts'ebetso. Empa bakeng sa sena o hloka ho lokisa ntho e 'ngoe le e' ngoe pele, 'me u letetse lintho tse ngata tse thahasellisang mona.

Ha u sebelisa mofuta o mocha oa software ea hau, ho bohlokoa ho nahana ka likhetho tsohle tsa ho fokotsa likotsi. Ho matha ka tsela e ts'oanang ke mokhoa o matla haholo le o tiisitsoeng oa ho hlahloba, 'me Istio e u lumella ho sebelisa "tšebeletso ea sekhukhu" (phetolelo e patiloeng ea microservice ea hau) ho etsa sena ntle le ho kena-kenana le tsamaiso ea tlhahiso. Ho na le lentsoe le ikhethileng bakeng sa sena - "Launch e Lefifi", eo le eona e hlahisoang ke ts'ebetso e nang le lebitso la bohloela "seipone sa sephethephethe".

Ka kopo hlokomela hore polelo ea pele ea serapa se fetileng e sebelisa lentsoe "deploy" ho fapana le "lokolla". U tlameha ho khona ho tsamaisa-'me, ehlile, sebelisa-microservice ea hau hangata kamoo u batlang. Ts'ebeletso ena e tlameha ho khona ho amohela le ho sebetsana le sephethephethe, ho hlahisa litholoana, hape le ho ngolla li-log le ho beha leihlo. Empa ka nako e ts'oanang, ts'ebeletso ena ka boeona ha e hloke hore e lokolloe tlhahiso. Ho tsamaisa le ho lokolla software ha se ntho e tšoanang kamehla. O ka tsamaisa neng kapa neng ha o batla, empa o lokolle ha o se o lokile.

Ho hlophisa bolutu hoa thahasellisa

Sheba molao o latelang oa Istio, o tsamaisang likopo tsohle tsa HTTP ho likhothaletso tsa microservice v1 (mehlala eohle e nkiloeng ho Istio Tutorial GitHub repo), ha ka nako e ts'oanang li li bonts'a ho khothaletso ea v2 microservice:

Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu
Ela hloko letšoao mirror: botlaaseng ba skrine - ke sena se behang seipone sa sephethephethe. E, ho bonolo hakaalo!

Sephetho sa molao ona e tla ba hore sistimi ea hau ea tlhahiso (v1) e tla tsoelapele ho sebetsana le likopo tse kenang, empa likopo ka botsona li tla bonts'oa ka mokhoa o ts'oanang ho v2, ke hore, likopi tsa bona tse felletseng li tla ea moo. Ka tsela ena, o ka hlahloba v2 ka maemo a sebele - ho data ea sebele le sephethephethe - ntle le ho kena-kenana ka tsela leha e le efe le ts'ebetso ea tsamaiso ea tlhahiso. Na see se etsa hore ho hlophisa liteko ho tena? E, ka sebele. Empa e entsoe ka tsela e khahlisang.

Ha re kenye terama

Ka kopo hlokomela hore ho khoutu ea v2 hoa hlokahala ho fana ka maemo ao likopo tse kenang li ka lebisang liphetohong tsa data. Likopo ka botsona li bonts'oa habonolo le ka mokhoa o pepeneneng, empa khetho ea mokhoa oa ho sebetsa tekong e ho uena - mme sena sea tšoenya.

Ha re pheteng ntlha ea bohlokoa

Ho qala ka lekunutu ka seipone sa sephethephethe (Launch e Lefifi / Kopa Mirroring) e ka etsoa ntle le ho ama khoutu ka tsela efe kapa efe.

Lijo tsa ho nahana

Ho thoe'ng haeba sebaka seo likopo li hlahisoang ho sona se romela tse ling tsa tsona ho v1, empa ho v2? Mohlala, peresente e le 'ngoe ea likopo tsohle kapa e kopa feela ho tsoa ho sehlopha se itseng sa basebelisi. 'Me joale, u se u ntse u shebile hore na v2 e sebetsa joang, butle-butle fetisetsa likōpo tsohle ho mofuta o mocha. Kapa ka tsela e fapaneng, khutlisetsa ntho e 'ngoe le e' ngoe ho v1 haeba ho na le ho hong ho sa tsamaeeng hantle ka v2. Ke nahana hore e bitsoa Canary Deployment. e khutlela morafong, ’me haeba e ne e le ea Serussia, mohlomong e ne e tla ba le moo ho buuoang ka teng likatse), 'me joale re tla sheba sena ka botlalo.

Canary Deployment in Istio: ho nolofatsa mosebetsi

Ka hloko le butle-butle

Moelelo oa mofuta oa phepelo ea Canary Deployment o bonolo haholo: ha o qala mofuta o mocha oa software ea hau (ho rona, microservice), o qala ka ho fana ka phihlello ho sehlopha se senyenyane sa basebelisi. Haeba ntho e 'ngoe le e' ngoe e tsamaea hantle, butle-butle u eketsa sehlopha sena ho fihlela phetolelo e ncha e qala ho sebetsa, kapa - haeba e sa tsamaee - qetellong u fallisetse basebelisi bohle ho eona. Ka ho hlahisa mofuta o mocha ka mokhoa o nahanang le butle-butle le ho fetolela basebelisi ho oona ka mokhoa o laolehileng, o ka fokotsa likotsi le ho eketsa maikutlo.

Ehlile, Istio e nolofatsa Canary Deployment ka ho fana ka likhetho tse 'maloa tse ntle bakeng sa ho tsamaisa likopo tse bohlale. E, sena sohle se ka etsoa ntle le ho ama khoutu ea hau ea mohloli ka tsela efe kapa efe.

Ho sefa sebatli

E 'ngoe ea mekhoa e bonolo ka ho fetisisa ea ho tsamaisa ke mokhoa oa ho tsamaisa sebatli. Ha re re u batla feela likopo tse tsoang ho libatli tsa Safari ho ea ho v2. Mona ke kamoo e etsoang kateng:

Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu
Ha re sebeliseng molao ona oa routing ebe re sebelisa taelo curl Re tla etsisa likopo tsa 'nete ho microservice ka loop. Joalokaha u bona skrineng, kaofela ba ea ho v1:

Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu
Sephethephethe se hokae ka v2? Kaha mohlaleng oa rona likopo tsohle li tsoa molaong oa rona oa taelo, ha e eo. Empa ela hloko lintlha tse ka tlase skrineng se kaholimo: sena ke karabelo ea hore re entse kopo ho tsoa ho sebatli sa Safari, se ileng sa hlahisa sena:

Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu

Matla a se nang moeli

Re se re ngotse hore lipolelo tse tloaelehileng li fana ka bokhoni bo matla haholo bakeng sa likopo tsa litsela. Sheba mohlala o latelang (re nahana hore o tla utloisisa seo o se etsang):

Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu
Hajoale mohlomong u na le mohopolo oa hore na mantsoe a tloaelehileng a ka etsa eng.

Etsa Bohlale

Smart routing, haholoholo ho sebetsana le lihlooho tsa lipakete u sebelisa mantsoe a tloaelehileng, e u lumella ho tsamaisa sephethephethe ka tsela eo u e batlang. 'Me sena se nolofatsa haholo ts'ebetsong ea khoutu e ncha - e bonolo, ha e hloke ho fetola khoutu ka boeona,' me haeba ho hlokahala, ntho e 'ngoe le e' ngoe e ka khutlisetsoa kapele kamoo e neng e le kateng.

Na u thahasella?

Na u labalabela ho leka Istio, Kubernetes le OpenShift komporong ea hau? Sehlopha Sehlopha sa Red Hat Developer lokisetsa e babatsehang sengoloa sehloohong sena mme a etsa hore lifaele tsohle tse tsamaeang le tsona li fumanehe phatlalatsa. Kahoo tsoela pele 'me u se ke ua itatola letho.

Istio Egress: tsoa ka lebenkeleng la lihopotso

Ka ho sebelisa Istio hammoho le Red Hat OpenShift le Kubernetes, o ka nolofatsa bophelo ba hau ka li-microservices. Mesh ea ts'ebeletso ea Istio e patiloe ka har'a li-pods tsa Kubernetes, 'me khoutu ea hau e sebetsa (haholo) e le mong. Ts'ebetso, boiketlo ba phetoho, ho ts'oara, joalo-joalo - tsena tsohle li bonolo ho li sebelisa ka lebaka la ts'ebeliso ea lijana tse ka thoko. Empa ho thoe'ng haeba microservice ea hau e hloka ho buisana le lits'ebeletso tse ling tse ka ntle ho sistimi ea hau ea OpenShift-Kubernetes?

Mona ke moo Istio Egress a tlang ho thusa. Ka bokhutšoanyane, e u lumella ho fumana lisebelisoa (bala: "litšebeletso") tseo e seng karolo ea tsamaiso ea hau ea Kubernetes pods. Haeba u sa etse tlhophiso e eketsehileng, joale sephethephethe sa tikoloho ea Istio Egress se tsamaisoa feela ka har'a sehlopha sa li-pods le pakeng tsa lihlopha tse joalo tse thehiloeng ho litafole tsa IP tse ka hare. Mme pupa e joalo e sebetsa hantle ha feela o sa hloke ho fumana lits'ebeletso ho tsoa kantle.

Egress e u fa monyetla oa ho feta litafole tsa IP tse kaholimo, ebang li ipapisitse le melao ea Egress kapa liaterese tse ngata tsa IP.

Ha re re re na le lenaneo la Java le etsang kopo ea GET ho httpbin.org/headers.

(httpbin.org ke sesebelisoa se bonolo sa ho leka likopo tsa litšebeletso tse tsoang.)

Haeba o kenya moleng oa taelo curl http://httpbin.org/headers, re tla bona tse latelang:

Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu
Kapa u ka bula aterese e tšoanang ho sebatli:

Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu
Joalokaha u bona, tšebeletso e teng moo e khutlisetsa lihlooho tse fetisitsoeng ho eona.

Re fetola lintho tse tsoang ka ntle ho naha

Joale a re nke khoutu ea Java ea tšebeletso ena, ka ntle ho tsamaiso ea rona, 'me re e tsamaise re le bang, moo, hopola, Istio e kenngoa. (U ka etsa sena ka bouena ka ho ikopanya thuto ea rona ea Istio.) Ha re se re hahile setšoantšo se loketseng le ho se tsebisa sethaleng sa OpenShift, re tla bitsa tšebeletso ena ka taelo curl egresshttpbin-istioegress.$(minishift ip).nip.io, ka mor'a moo re tla bona sena skrineng:

Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu
Oops, ho etsahetse'ng? Tsohle di ile tsa sebetsa feela. What does Not Found bolela? Re sa tsoa mo etsetsa eona curl.

Ho eketsa litafole tsa IP ho Marang-rang kaofela

Istio e lokela ho qosoa (kapa ho leboha) bakeng sa sena. Ntle le moo, Istio ke lijana tse ka thoko tse ikarabellang bakeng sa ho lemoha le ho tsamaisa (le lintho tse ling tse ngata tseo re buileng ka tsona pejana). Ka lebaka lena, litafole tsa IP li tseba feela se ka har'a sistimi ea hau ea sehlopha. Mme httpbin.org e fumaneha kantle mme ka hona ha e fihlellehe. 'Me mona ke moo Istio Egress a tlang ho u thusa - ntle le phetoho e nyane ho khoutu ea hau ea mohloli.

Molao oa Egress o ka tlase o qobella Istio ho batla (haeba ho hlokahala, ebe ho pholletsa le Marang-rang) bakeng sa tšebeletso e hlokahalang, tabeng ena, httpbin.org. Joalokaha u bona ho tsoa faeleng ena (egress_httpbin.yml), ts'ebetso mona e bonolo haholo:

Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu
Ho setseng ke ho sebelisa molao ona:

istioctl create -f egress_httpbin.yml -n istioegress

U ka sheba melao ea Egress ka taelo istioctl get egressrules:

Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu
'Me qetellong, re tsamaisa taelo hape sekonopo 'me rea bona hore tsohle lia sebetsa:

Ho Qala Lefifi ho Istio: Litšebeletso tsa Lekunutu

Re nahana pepeneneng

Joalokaha u ka bona, Istio e u lumella ho hlophisa tšebelisano le lefatše le ka ntle. Ka mantsoe a mang, o ntse o ka theha lits'ebeletso tsa OpenShift le ho li laola ka Kubernetes, ho boloka ntho e 'ngoe le e' ngoe ka har'a li-pods tse nyolohang le tlase kamoo ho hlokahalang. Mme ka nako e ts'oanang, o ka fihlella lits'ebeletso tse kantle ho tikoloho ea hau ka mokhoa o sireletsehileng. E, re pheta hape hore sena sohle se ka etsoa ntle le ho ama khoutu ea hau ka tsela efe kapa efe.

Ena e ne e le poso ea ho qetela letotong la Istio. Lula u mametse - ho na le lintho tse ngata tse khahlisang ka pele!

Source: www.habr.com

Eketsa ka tlhaloso