Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo

"O le lamatiaga o loʻu igoa ogatotonu," o le tala lea a Austin Powers, o se tagata faʻavaomalo o mea lilo. Ae o le mea o loʻo faʻamaualugaina e super agents ma auʻaunaga atamai e le talafeagai mo auaunaga komepiuta, lea e sili atu le le fiafia nai lo le lamatiaga.

Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo

Ma o Istio, faʻatasi ai ma OpenShift ma Kubernetes, e faʻaaogaina ai microservices e matua manaia ma vaʻaia - ma e manaia tele. O le a tatou talanoa e uiga i lenei mea ma sili atu i le lona fa ma le faʻailoga mulimuli i le faasologa Istio.

A sa'o le fiu

I lo tatou tulaga, o le le fiafia e tupu na o le vaega mulimuli, pe a na o le pau lava le mea e totoe o le nofo ma matamata i le faagasologa. Ae mo lenei mea e te manaʻomia e faʻatulaga muamua mea uma, ma le tele o mea manaia o loʻo faʻatali mo oe iinei.

A faʻapipiʻi se faʻamatalaga fou o lau polokalama, e aoga le mafaufau i filifiliga uma mo le faʻaitiitia o lamatiaga. O le taʻavale faʻatasi o se auala sili ona mamana ma faʻamaonia e faʻataʻitaʻi ai, ma Istio e faʻatagaina oe e faʻaaoga se "auaunaga faalilolilo" (o se faʻamatalaga natia o lau microservice) e faia ai lenei mea e aunoa ma le faʻalavelaveina o le gaosiga o faiga. E i ai foi se faaupuga faʻapitoa mo lenei mea - "Dark Launch", lea e faʻagaoioia e se galuega faʻatasi ma se igoa sipai tutusa "faʻata o feoaiga".

Faamolemole ia matau o le fuaiupu muamua o le parakalafa muamua e faaaoga ai le faaupuga "deploy" nai lo le "faamalolo". E tatau ona mafai moni ona e faʻapipiʻi-ma, ioe, faʻaaoga-lau microservice i taimi uma e te manaʻo ai. O lenei 'au'aunaga e tatau ona mafai ona maua ma fa'agasolo feoaiga, maua ai fa'ai'uga, ma tusi fo'i i ogalaau ma mata'itū. Ae i le taimi lava e tasi, o lenei auaunaga lava ia e le tatau ona tuʻuina atu i le gaosiga. O le fa'atulagaina ma le tu'uina atu o polokalama e le o taimi uma e tutusa ai. E mafai ona e fa'apipi'i so'o se taimi e te mana'o ai, ae fa'amatu'u pe a e sauni.

O le faʻatulagaina o le le fiafia e manaia

Va'ai i le tulafono fa'asolosolo Istio o lo'o mulimuli mai, lea e fa'atautaia uma talosaga HTTP i le microservice recommendation v1 (fa'ata'ita'iga uma mai Istio Tutorial GitHub repo), a'o fa'atusaina i latou i le fautuaga v2 microservice:

Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo
Fa'alogo lelei ile fa'ailoga mirror: i le pito i lalo o le lau - o le mea lea e faʻatulagaina ai le faʻataʻitaʻiga. Ioe, e matua faigofie lava!

O le taunuuga o lenei tulafono o le a faʻaauau pea ona faʻagasolo talosaga o loʻo oʻo mai lau faiga (v1), ae o talosaga lava latou o le a faʻataʻitaʻia i le v2, o lona uiga, o latou kopi atoa o le a alu iina. I lenei auala, e mafai ona e suʻeina le v2 i tulaga moni - i luga o faʻamatalaga moni ma fefaʻatauaiga - e aunoa ma le faʻalavelave i soʻo se auala i le faʻaogaina o le faiga o gaosiga. O le mea lea e fa'afiafiaina ai le fa'atulagaina o su'ega? Ioe, mautinoa. Ae e faia i se auala manaia.

Tatou faaopoopo i ai tala faatino

Faamolemole ia matau i totonu o le v2 code e tatau ona tuʻuina atu mo tulaga e ono oʻo mai ai talosaga i suiga o faʻamatalaga. O talosaga lava latou e faʻaali faigofie ma manino, ae o le filifiliga o le faiga o le suʻega e oʻo ia te oe - ma o se mea e popole ai.

Sei o tatou toe fai se manatu taua

Fa'alilolilo fa'alilolilo fa'atasi ma fa'ata fa'ata (Dark Launch/Request Mirroring) e mafai ona faia e aunoa ma le a'afiaina o le code i so'o se auala.

Mea'ai mo mafaufauga

Ae fa'afefea pe a fai o le nofoaga o lo'o fa'aata ai talosaga e lafo atu nisi o latou e le o le v1, ae o le v2? Mo se faʻataʻitaʻiga, tasi le pasene o talosaga uma pe naʻo talosaga mai se vaega patino o tagata faʻaoga. Ma, ua uma ona vaʻavaʻai i le auala e galue ai le v2, faʻasolosolo faʻafeiloaʻi uma talosaga i le lomiga fou. Po'o le isi itu, toe fa'afo'i mea uma ile v1 pe a iai se mea e faaletonu ile v2. Ou te manatu e taʻua o Canary Deployment. toe foi i le maina, ma afai e tupuga mai i Rusia, atonu o le a iai se faasinomaga i pusi), ma o lenei o le a tatou vaʻavaʻai atili i lenei mea.

Canary Deployment i Istio: fa'afaigofieina le fa'atonuina

Ma le faaeteete ma faasolosolo malie

O le aano o le Canary Deployment faʻataʻitaʻiga faʻataʻitaʻiga e matua faigofie lava: pe a e faʻalauiloa se faʻamatalaga fou o lau polokalama (i la matou tulaga, microservice), e te tuʻuina muamua le avanoa i se vaega toʻaitiiti o tagata faʻaoga. Afai e sologa lelei mea uma, e te fa'atupula'ia lemu le vaega lea se'ia o'o ina amata ona fa'agaoioi le fa'aaliga fou, po'o - a leai - e i'u ina fa'asolo uma tagata fa'aoga i ai. E ala i le mafaufau loloto ma faasolosolo malie le faʻaofiina o se faʻamatalaga fou ma fesuiaʻi tagata faʻaoga i se faiga faʻatonutonu, e mafai ona e faʻaitiitia tulaga lamatia ma faʻateleina manatu faaalia.

Ioe, Istio faʻafaigofieina Canary Deployment e ala i le ofoina atu o ni filifiliga lelei mo le faʻaogaina o talosaga atamai. Ma ioe, o nei mea uma e mafai ona faia e aunoa ma le paʻi i lau faʻailoga puna i soʻo se auala.

Filifili le su'ega

O se tasi o ta'iala sili ona faigofie o le fa'aogaina o le su'esu'ega. Fa'apea e te mana'o na'o talosaga mai Safari su'esu'e e alu ile v2. O le auala lenei e fai ai:

Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo
Se'i o tatou fa'aoga le tulafono fa'ata'avalevale ona fa'aaoga lea o le fa'atonuga curl O le a matou faʻataʻitaʻiina talosaga moni i le microservice i se matasele. E pei ona mafai ona e vaʻai i le faʻamalama, latou te alu uma i le v1:

Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo
O fea oi ai le feoaiga i luga ole v2? Talu ai i la tatou faʻataʻitaʻiga o talosaga uma na sau mai la tatou lava laina faʻatonu, e le o iai. Ae faʻalogo lelei i laina pito i lalo o le lau i luga: o se tali lea i le mea moni na matou faia se talosaga mai le Safari browser, lea na maua ai lenei mea:

Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo

Malosi e le gata

Ua uma ona matou tusia o faʻamatalaga masani e maua ai le malosi malosi mo le faʻaogaina o talosaga. Va'ai i le fa'ata'ita'iga o lo'o mulimuli mai (matou te manatu o le a e malamalama i le mea e fai):

Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo
I le taimi nei atonu o loʻo i ai sou manatu i mea e mafai e faʻamatalaga masani ona fai.

Galue Atamai

Fa'ata'ita'iga fa'ata'ita'i, fa'apena fa'auluuluga fa'apipi'i e fa'aaoga ai fa'amatalaga masani, e mafai ai ona e fa'atonuina feoaiga i le auala e te mana'o ai. Ma o lenei mea e matua faafaigofieina ai le faʻatinoina o le tulafono fou - e faigofie, e le manaʻomia le suia o le code lava ia, ma afai e tatau ai, e mafai ona vave toe faʻafoʻi mea uma e pei ona i ai.

Fiafia?

O e naunau e fa'ata'ita'i Istio, Kubernetes ma OpenShift i lau komepiuta? Au Red Hat Developer Team saunia se tulaga lelei le tusi i luga o lenei autu ma fa'asalalau uma faila fa'atasi. O lea alu i luma ma aua le faafitia oe lava i se mea.

Istio Egress: alu i fafo i le faleoloa souvenir

I le faʻaaogaina o Istio faʻatasi ma Red Hat OpenShift ma Kubernetes, e mafai ona faʻafaigofie lou olaga i microservices. O lo'o natia le 'au'aunaga a Istio i totonu o Kubernetes pods, ma o lau code e fa'asolo (tele) i le tu'ufua. Faʻatinoga, faigofie o suiga, suʻeina, ma isi - o nei mea uma e faigofie ona faʻaaoga faʻafetai i le faʻaogaina o pusa taʻavale. Ae faʻafefea pe a manaʻomia e lau microservice ona fesoʻotaʻi ma isi auʻaunaga o loʻo i fafo atu o lau OpenShift-Kubernetes system?

O le mea lea e sau ai Istio Egress e laveai. I se faapuupuuga, e faigofie lava ona faʻatagaina oe e maua punaoa (faitau: "auʻaunaga") e le o se vaega o lau polokalama o Kubernetes pods. Afai e te le faia se faʻaopoopoga faʻaopoopo, ona faʻaogaina lea i totonu o le Istio Egress siosiomaga fefaʻatauaʻiga naʻo totonu o se fuifui o pods ma le va o ia fuifui faʻavae i luga ole laulau IP totonu. Ma o ia pupation e aoga tele pe afai e te le manaʻomia le avanoa i auaunaga mai fafo.

Egress e mafai ai e oe ona pasi le laulau IP o loʻo i luga, pe faʻavae i luga o tulafono a le Egress poʻo luga ole tele o tuatusi IP.

Fa'apea e iai sau polokalame Java e fai ai se talosaga GET ile httpbin.org/headers.

(httpbin.org ua na o se punaoa faigofie mo le suʻeina o talosaga o auaunaga i fafo.)

Afai e te ulufale i luga o le laina poloaiga curl http://httpbin.org/headers, o le a tatou vaʻai i mea nei:

Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo
Pe mafai foi ona e tatalaina le tuatusi lava e tasi i le browser:

Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo
E pei ona e va'aia, o le 'au'aunaga o lo'o i ai iina e na'o le toe fa'afo'iina o ulutala na pasi atu i ai.

O lo'o matou sui fa'aulufale mai

Seʻi o tatou ave le Java code o lenei auaunaga, i fafo atu o la tatou polokalama, ma taʻavale i tatou lava, lea, manatua, faʻapipiʻi Istio. (E mafai ona e faia lenei mea e ala i le faʻafesoʻotaʻi la matou Istio tutorial.) O le fausiaina o le ata talafeagai ma faʻalauiloa i luga o le OpenShift platform, matou te taʻua lenei auaunaga ma le faʻatonuga curl egresshttpbin-istioegress.$(minishift ip).nip.io, a maeʻa ona matou vaʻaia lea i luga o le lau:

Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo
Oi, o le a le mea na tupu? Na aoga mea uma. O le a le uiga o le Le Maua? Sa matou faia lava mo ia curl.

Fa'alautele laulau IP ile Initaneti atoa

E tatau ona tuuaia (pe faafetai) Istio mo lenei mea. A uma mea uma, o Istio ua naʻo pusa taʻavale e nafa ma le suʻeina ma le taʻavale (ma le tele o isi mea na matou talanoa muamua). Mo lenei mafua'aga, na'o laulau IP e iloa mea o lo'o i totonu o lau fa'aputuga. Ma o le httpbin.org o loʻo tu i fafo ma o lea e le mafai ai ona maua. Ma o le mea lea e sau ai Istio Egress e laveai - e aunoa ma se suiga itiiti i lau faʻailoga puna.

O le tulafono a le Egress o loʻo i lalo e faʻamalosia ai Istio e suʻe (pe a manaʻomia, i le Initaneti atoa) mo le auaunaga manaʻomia, i lenei tulaga, httpbin.org. E pei ona mafai ona e vaʻai mai i lenei faila (egress_httpbin.yml), o le gaioiga iinei e faigofie lava:

Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo
Pau lava le mea o loʻo totoe o le faʻaaogaina o lenei tulafono:

istioctl create -f egress_httpbin.yml -n istioegress

E mafai ona e vaʻai i tulafono a le Egress ma le faʻatonuga istioctl get egressrules:

Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo
Ma le mea mulimuli, matou te toe faʻatautaia le poloaiga curl - ma matou vaʻai e aoga mea uma:

Pogisa Fa'alauiloa i Istio: Auaunaga Faalilolilo

Matou te mafaufau fa'aalia

E pei ona mafai ona e vaʻai, Istio faʻatagaina oe e faʻatulagaina fegalegaleaiga ma le lalolagi i fafo. I se isi faaupuga, e mafai lava ona e fatuina auaunaga OpenShift ma pulea i latou e ala i Kubernetes, faʻapipiʻi mea uma i pods e fua i luga ma lalo pe a manaʻomia. Ma i le taimi lava e tasi, e mafai ona e mauaina ma le saogalemu auaunaga i fafo atu o lou siosiomaga. Ma ioe, matou te toe fai atu o nei mea uma e mafai ona faia e aunoa ma le paʻi i lau code i soo se auala.

Ole pou mulimuli lea ile faasologa ile Istio. Fa'alogo - e tele mea mananaia o lo'o lumana'i!

puna: www.habr.com

Faaopoopo i ai se faamatalaga