Fanamarihana. transl.: Ny ampahany voalohany Ity andiany ity dia natokana hampahafantarana ny fahaizan'i Istio sy hanehoana azy ireo amin'ny asa. Amin'izao fotoana izao dia hiresaka momba ny lafiny sarotra kokoa amin'ny fanamafisana sy ny fampiasana an'ity mesh serivisy ity isika, ary indrindra ny momba ny zotra voarindra tsara sy ny fitantanana ny fifamoivoizana.
Mampahatsiahy anao ihany koa izahay fa ny lahatsoratra dia mampiasa configurations (sehatra ho an'ny Kubernetes sy Istio) avy amin'ny tahiry. istio-fifehezana.
Fitantanana ny fifamoivoizana
Miaraka amin'i Istio, misy fahaiza-manao vaovao hita ao amin'ny cluster mba hanomezana:
Raha mbola mitohy ny lahatsoratra, ireo fahaiza-manao ireo dia ho aseho amin'ny fampiasana ny fampiharana voafantina ho ohatra ary hisy hevitra vaovao hampidirina eny an-dalana. Ny hevitra voalohany toy izany dia ho DestinationRules(izany hoe fitsipika momba ny mpandray ny fifamoivoizana/fangatahana - eo amin'ny transl.), miaraka amin'ny fanampian'ny fampahavitrihana ny fitiliana A/B.
Midika izany fa index.html, mangataka dika iray amin'ny rakitra static, dia azo alefan'ny mpandrindra entana mankany amin'ny pods izay manana dikan-teny hafa, izay, noho ny antony mazava, dia tsy misy ny rakitra toy izany. Noho izany, mba hahombiazan'ny fampiharana dia mila mametraka fameperana isika: "ny dikan-teny mitovy amin'ny fampiharana index.html dia tokony hanolotra fangatahana manaraka".
Ho tonga any isika miaraka amin'ny fampifandanjana entana mifototra amin'ny hash (Loadbalancing Hash tsy miovaova)... Raha izany dia Ny fangatahana avy amin'ny mpanjifa iray ihany dia alefa any amin'ny ohatra backend mitovy, izay ampiasaina ny fananana efa voafaritra mialoha - ohatra, lohatenin'ny HTTP. Nampiharina tamin'ny fampiasana DestinationRules.
DestinationRules
taorian'ny VirtualService nandefa fangatahana tany amin'ny serivisy irina, amin'ny fampiasana DestinationRules dia azontsika atao ny mamaritra ny politika izay hampiharina amin'ny fifamoivoizana natokana ho an'ity serivisy ity:
Fitantanana ny fifamoivoizana miaraka amin'ny loharanon'i Istio
fanamarihana: Ny fiantraikan'ny loharanon-karena Istio amin'ny fifamoivoizana amin'ny tambajotra dia aseho eto amin'ny fomba mora azo. Raha ny marina, ny fanapahan-kevitra momba ny fandefasana ny fangatahana dia ataon'ny iraka ao amin'ny vavahadin'ny Ingress voarindra ao amin'ny CRD.
Miaraka amin'ny Lalàn'ny Destination, dia afaka manitsy ny fampifandanjana entana izahay mba hampiasana ny hash tsy miovaova ary hiantoka fa mamaly mpampiasa iray ihany ny ohatra serivisy mitovy. Ity fanitsiana manaraka ity dia ahafahanao manatratra izany (destinationrule-sa-frontend.yaml):
fanamarihana: Mba hanampiana soatoavina samihafa ao amin'ny lohapejy sy hizaha toetra ny valiny mivantana amin'ny navigateur dia azonao ampiasaina ity fanitarana ity mankany Chrome (na miaraka amin'ity ho an'ny Firefox - eo ho eo. transl.).
Amin'ny ankapobeny, DestinationRules dia manana fahaiza-manao bebe kokoa amin'ny sehatry ny fampifandanjana entana - jereo ny antsipiriany ao antontan-taratasy ofisialy.
Alohan'ny handinihana bebe kokoa ny VirtualService, andao hamafa ny "dikan-teny maitso" amin'ny fampiharana sy ny fitsipika momba ny fifamoivoizana mifandraika amin'izany amin'ny alàlan'ny fampandehanana ireto baiko manaraka ireto:
mpampiantrano (host) dia mamaritra fa ity fitsipika ity dia mihatra amin'ny tranga rehefa mankany amin'ny serivisy ihany ny lalana sa-logic;
Lohateny (name) ny zana-tsipìka dia ampiasaina rehefa mitondra mankany amin'ny tranga subset;
Label (label) dia mamaritra ny tsiroaroa manan-danja izay tsy maintsy mifanandrify ny tranga mba ho anisan'ny ampahany.
Ampiharo ny fanamafisana amin'ny baiko manaraka:
$ kubectl apply -f resource-manifests/istio/shadowing/sa-logic-subsets-destinationrule.yaml
destinationrule.networking.istio.io/sa-logic created
Amin'izao fotoana izao dia voafaritra ny sobika, afaka mandroso sy manamboatra ny VirtualService isika hampihatra fitsipika amin'ny fangatahana amin'ny sa-logic ka:
Eto izahay dia nahita voalohany ny fomba ampiharana ny VirtualService amin'ny iraky ny serivisy: rahoviana sa-web-app manao fangatahana sa-logic, mandeha amin'ny alàlan'ny Envoy sidecar, izay - amin'ny alàlan'ny VirtualService - dia namboarina mba handefasana ny fangatahana mankany amin'ny subset v1 ary mitaratra ny fangatahana mankany amin'ny subset v2 amin'ny serivisy. sa-logic.
Fantatro, mety efa mieritreritra ianao fa tsotra ny serivisy virtoaly. Ao amin'ny fizarana manaraka dia hanitatra izany isika amin'ny filazana fa tena tsara koa izy ireo.
Famoahana Canary
Ny Canary Deployment dia ny dingan'ny famoahana dikan-teny vaovao amin'ny mpampiasa vitsivitsy. Ampiasaina mba hahazoana antoka fa tsy misy olana amin'ny famoahana ary aorian'izay, efa matoky ny kalitaony (famoahana), mizara izany amin'ny mpampiasa hafa.оmpihaino lehibe kokoa.
Mba hampisehoana ny fandefasana canary, dia hanohy hiasa miaraka amin'ny ampahany kely izahay buggy у sa-logic.
Aza mandany fotoana amin'ny zavatra tsy misy dikany ary mandefa avy hatrany ny 20% amin'ny mpampiasa amin'ny dikan-teny misy bibikely (izany dia hisolo tena ny canary rollout), ary ny 80% sisa amin'ny serivisy mahazatra. Mba hanaovana izany, ampiasao ity VirtualService manaraka ity (sa-logic-subsets-canary-vs.yaml):
... ary ho hitantsika avy hatrany fa mitarika tsy fahombiazana ny fangatahana sasany:
$ while true; do
curl -i http://$EXTERNAL_IP/sentiment
-H "Content-type: application/json"
-d '{"sentence": "I love yogobella"}'
--silent -w "Time: %{time_total}s t Status: %{http_code}n"
-o /dev/null; sleep .1; done
Time: 0.153075s Status: 200
Time: 0.137581s Status: 200
Time: 0.139345s Status: 200
Time: 30.291806s Status: 500
Ny serivisy virtoaly dia mamela ny famoahana canary: Amin'ity tranga ity, dia nahenanay ho 20% amin'ny fototry ny mpampiasa ny mety ho fiantraikan'ny olana. Mahafinaritra! Ankehitriny, amin'ny toe-javatra rehetra rehefa tsy azontsika antoka ny kaodinay (amin'ny teny hafa - foana ...), dia afaka mampiasa ny fitaratra sy ny canary rollouts.
Fotoana tapitra sy andrana indray
Saingy ny bibikely dia tsy miafara amin'ny kaody. Ao amin'ny lisitry ny "8 Hevi-diso momba ny Computing Distributed"Ny toerana voalohany dia ny finoana diso fa" azo itokisana ny tambajotra. Raha ny marina dia ny tambajotra tsy azo itokisana, ary noho izany antony izany dia mila fotoana fiatoana isika (fotoana farany) ary manandrana indray (andrana indray).
Ho an'ny fampisehoana dia hanohy hampiasa ilay olana mitovy amin'izany izahay sa-logic (buggy), ary hanao simulation ny tsy fahatokisana ny tambajotra miaraka amin'ny tsy fahombiazana kisendrasendra.
Avelao ny serivisintsika miaraka amin'ny bibikely manana vintana 1/3 haharitra ela loatra vao hamaly, vintana 1/3 hifarana amin'ny Error Server anatiny, ary vintana 1/3 hamerenana ny pejy.
Mba hanalefahana ny fiantraikan'ny olana toy izany sy hanatsara ny fiainana ho an'ny mpampiasa dia afaka:
ampio fe-potoana raha maharitra mihoatra ny 8 segondra ny serivisy vao mamaly,
Ny fiafaran'ny fangatahana dia apetraka ho 8 segondra;
Averina in-3 ny fangatahana;
Ary ny andrana tsirairay dia heverina ho tsy nahomby raha mihoatra ny 3 segondra ny fotoana famaliana.
Fanamafisana izany satria tsy mila miandry mihoatra ny 8 segondra ny mpampiasa ary hanao fanandramana vaovao telo izahay mba hahazoana valiny raha sendra tsy fahombiazana, hampitombo ny fahafahan'ny valiny mahomby.
Ampiharo ny fanovana nohavaozina miaraka amin'ity baiko manaraka ity:
Circuit Breaker("mpamoaka rivotra") ampiasaina hanajanonana ny fangatahana tonga amin'ny ohatra iray amin'ny serivisy iray izay heverina ho tsy salama ary mamerina azy io raha toa kosa ny fangatahan'ny mpanjifa dia averina mankany amin'ny tranga salama amin'io serivisy io (izay mampitombo ny isan-jaton'ny valiny mahomby). (Fanamarihana: Misy famaritana amin'ny antsipiriany kokoa ny lamina azo jerena, ohatra, eto.)
Bulkhead("fizarana") manasaraka ny tsy fahombiazan'ny serivisy tsy hisy fiantraikany amin'ny rafitra manontolo. Ohatra, tapaka ny Serivisy B ary misy serivisy hafa (mpanjifa an'ny serivisy B) manao fangatahana amin'ny serivisy B, ka mahatonga azy ho reraka ny dobo filomanosana ary tsy afaka manompo fangatahana hafa (na dia tsy avy amin'ny serivisy B aza). (Fanamarihana: Misy famaritana amin'ny antsipiriany kokoa ny lamina azo jerena, ohatra, eto.)
Hafoiko ny antsipirian'ny fampiharana ireo lamina ireo satria mora hita ao antontan-taratasy ofisialy, ary tena tiako koa ny mampiseho ny fanamarinana sy ny fanomezan-dàlana, izay horesahina ao amin'ny tapany manaraka amin'ny lahatsoratra.