Ib cov lus tshaj tawm ntawm Istio Service Mesh

Peb tab tom pib ua ntau cov ntawv tshaj tawm qhia txog qee lub peev xwm ntawm Istio Service Mesh thaum ua ke nrog Red Hat OpenShift thiab Kubernetes.

Ib cov lus tshaj tawm ntawm Istio Service Mesh

Part XNUMX, hnub no:

  • Cia peb piav qhia lub tswv yim ntawm Kubernetes sidecar ntim thiab tsim cov leitmotif ntawm cov kab lus no: "koj tsis tas yuav hloov dab tsi hauv koj tus lej".
  • Cia peb qhia qhov tseem ceeb tshaj plaws ntawm Istio - txoj cai routing. Tag nrho lwm yam Istio nta tau tsim rau lawv, vim nws yog cov cai uas tso cai rau koj coj mus rau hauv microservices, siv YAML cov ntaub ntawv sab nraud rau cov kev pabcuam. Peb kuj tseem tab tom xav txog Canary Deployment scheme. Xyoo tshiab lawm – 10 kev sib tham sib tshooj ntawm Istio


Qhov thib ob, los sai sai no, yuav qhia rau koj:

  • Yuav ua li cas Istio siv Pool Ejection ua ke nrog Circuit Breaker thiab yuav ua kom pom tias Istio tso cai rau koj kom tshem tawm cov neeg tuag lossis ua tsis zoo ntawm lub ntsuas hluav taws xob.
  • Peb kuj tseem yuav saib lub ntsiab lus Circuit Breaker los ntawm thawj tus ncej kom pom tias Istio tuaj yeem siv li cas ntawm no. Peb yuav qhia koj yuav ua li cas rau kev khiav tsheb khiav thiab daws cov teeb meem hauv lub network siv YAML teeb tsa cov ntaub ntawv thiab cov lus txib davhlau ya nyob twg yam tsis muaj kev hloov pauv me ntsis hauv cov kev pabcuam.

Ntu peb:

  • Ib zaj dab neeg txog kev taug qab thiab saib xyuas, uas twb tau tsim los lossis yooj yim ntxiv rau Istio. Peb mam li qhia koj siv cov cuab yeej xws li Prometheus, Jaeger, thiab Grafana ua ke nrog OpenShift scaling los tswj microservice architectures.
  • Peb txav los ntawm kev saib xyuas thiab tuav qhov yuam kev los qhia lawv rau hauv qhov system txhob txwm ua. Hauv lwm lo lus, peb kawm yuav ua li cas ua txhaum kev txhaj tshuaj yam tsis hloov qhov chaws, uas yog ib qho tseem ceeb heev los ntawm qhov kev ntsuam xyuas pom - txij li yog tias koj hloov cov cai nws tus kheej rau qhov no, muaj kev pheej hmoo ntawm kev qhia qhov yuam kev ntxiv.

Thaum kawg, hauv tsab ntawv kawg ntawm Istio Service Mesh:

  • Wb mus rau qhov tsaus ntuj. Ntau qhov tseeb, peb yuav kawm siv Dark Launch scheme, thaum cov cai raug xa mus thiab sim ncaj qha rau ntawm cov ntaub ntawv tsim khoom, tab sis tsis cuam tshuam rau kev ua haujlwm ntawm lub system nyob rau hauv ib txoj kev. Qhov no yog qhov uas Istio lub peev xwm los faib cov tsheb thauj mus los tau yooj yim. Thiab lub peev xwm los ntsuas ntawm cov ntaub ntawv tsim tawm nyob tsis muaj kev cuam tshuam rau kev ua haujlwm ntawm kev sib ntaus sib tua hauv txhua txoj kev yog txoj kev ntseeg siab tshaj plaws ntawm kev txheeb xyuas.
  • Lub tsev ntawm Tsaus Launch, peb yuav qhia koj yuav ua li cas siv Canary Deployment qauv kom txo tau qhov kev pheej hmoo thiab ua kom yooj yim dua kom tau txais cov cai tshiab rau hauv ntau lawm. Canary Deployment nws tus kheej nyob deb ntawm qhov tshiab, tab sis Istio tso cai rau koj los siv cov tswv yim no nrog cov ntaub ntawv YAML yooj yim xwb.
  • Thaum kawg, peb yuav qhia koj yuav ua li cas siv Istio Egress muab kev pabcuam rau cov neeg uas nyob sab nraud koj pawg txhawm rau siv lub peev xwm ntawm Istio thaum ua haujlwm nrog Is Taws Nem.

Yog li ntawd, peb mus ...

Istio saib xyuas thiab tswj cov cuab yeej - txhua yam koj xav tau los tswj hwm microservices hauv kev pabcuam mesh kev pabcuam mesh.

Istio Service Mesh yog dab tsi

Ib qho kev pabcuam mesh siv cov haujlwm xws li kev saib xyuas tsheb, kev tswj xyuas kev nkag mus, kev tshawb pom, kev ruaj ntseg, kev ua txhaum cai thiab lwm yam tseem ceeb rau ib pab pawg. Istio tso cai rau koj ua txhua yam no yam tsis muaj kev hloov pauv me ntsis rau cov cai ntawm cov kev pabcuam lawv tus kheej. Dab tsi yog qhov zais cia ntawm khawv koob? Istio muab nws tus kheej tso cai rau txhua qhov kev pabcuam hauv daim ntawv ntawm lub thawv sab hauv (sidecar yog lub tsheb maus taus), tom qab ntawd tag nrho cov tsheb khiav mus rau qhov kev pabcuam no mus dhau lub npe, uas, coj los ntawm cov cai tswjfwm, txiav txim siab yuav ua li cas, thaum twg thiab seb qhov kev tsheb no yuav tsum ncav cuag qhov kev pabcuam txhua. Istio kuj tseem ua rau nws muaj peev xwm los siv cov txuj ci DevOps siab heev xws li kev xa tawm canary, Circuit Court breakers, txhaum kev txhaj tshuaj thiab ntau lwm yam.

Istio ua haujlwm li cas nrog ntim thiab Kubernetes

Istio cov kev pabcuam mesh yog ib qho kev siv sab hauv ntawm txhua yam uas yuav tsum tau tsim thiab tswj cov microservices: kev soj ntsuam, tracing, circuit breakers, routing, load balancing, fault injection, retry, timeouts, mirroring, access control, rate limiting and much more. Thiab txawm hais tias niaj hnub no muaj ntau lub tsev qiv ntawv los siv cov haujlwm no ncaj qha hauv cov lej, nrog Istio koj tuaj yeem tau txais txhua yam zoo ib yam yam tsis tau hloov dab tsi hauv koj cov cai.

Raws li tus qauv sidecar, Istio khiav hauv lub thawv Linux, uas nyob hauv ib qho Kubernetes-pod nrog cov kev pabcuam tswj thiab txhaj tshuaj thiab tshem tawm cov haujlwm thiab cov ntaub ntawv raws li kev teeb tsa. Peb hais tias qhov no yog koj tus kheej configuration, thiab nws nyob sab nraum koj cov cai. Yog li ntawd, cov cai yuav yooj yim dua thiab luv dua.

Dab tsi tseem ceeb yog qhov kev ua haujlwm ntawm microservices hloov mus rau qhov tsis muaj kev sib txuas nrog cov cai nws tus kheej, uas txhais tau hais tias lawv txoj haujlwm tuaj yeem xa mus rau cov kws tshaj lij IT. Tseeb tiag, vim li cas tus tsim tawm yuav tsum muaj lub luag haujlwm rau kev sib tsoo hluav taws xob thiab kev txhaj tshuaj txhaum cai? Teb, yog, tab sis ua lawv thiab tsim lawv? Yog tias koj tshem tag nrho cov no los ntawm cov cai, cov programmers yuav tuaj yeem tsom mus rau kev ua haujlwm ntawm daim ntawv thov. Thiab tus lej nws tus kheej yuav ua luv thiab yooj yim dua.

Kev pabcuam mesh

Istio, uas ua haujlwm rau kev tswj hwm microservices sab nraud ntawm lawv cov cai, yog lub tswv yim ntawm Kev Pabcuam Mesh. Hauv lwm lo lus, nws yog ib pab pawg sib koom ua ke ntawm ib lossis ntau dua binaries uas tsim lub mesh ntawm kev ua haujlwm hauv network.

Istio ua haujlwm li cas nrog microservices

Qhov no yog dab tsi ua hauj lwm ntawm sidecar ntim zoo li ua ke nrog Kubernetes ΠΈ Minishift noog lub qhov muag pom: tso ib qho piv txwv ntawm Minishift, tsim ib qhov project rau Istio (cia hu nws "istio-system"), nruab thiab khiav tag nrho Istio-txog cov khoom. Ces, thaum koj tsim tej yaam num thiab pods, koj ntxiv configuration ntaub ntawv rau koj deployments, thiab koj pods pib siv Istio. Ib daim duab yooj yim zoo li no:

Ib cov lus tshaj tawm ntawm Istio Service Mesh

Tam sim no koj tuaj yeem hloov Istio chaw nyob rau hauv kev txiav txim, piv txwv li, los npaj kev txhaj tshuaj txhaum cai, kev txhawb nqa Canary Deployment los yog lwm yam Istio nta - thiab tag nrho cov no tsis tas kov cov cai ntawm daim ntawv thov lawv tus kheej. Cia peb hais tias koj xav hloov pauv txhua lub vev xaib los ntawm cov neeg siv ntawm koj cov neeg siv khoom loj tshaj plaws (Foo Corporation) mus rau lub vev xaib tshiab. Txhawm rau ua qhov no, tsuas yog tsim Istio routing txoj cai uas yuav saib rau @foocorporation.com hauv tus neeg siv ID thiab hloov pauv raws li. Rau tag nrho lwm cov neeg siv, tsis muaj dab tsi yuav hloov. Nyob rau hauv lub meantime, koj yuav calmly sim lub tshiab version ntawm lub site. Thiab nco ntsoov tias koj tsis tas yuav koom nrog cov tsim tawm txhua rau qhov no.

Thiab koj puas yuav tau them nyiaj ntau rau nws?

Tsis yog kiag li. Istio ceev heev thiab sau rau hauv Go thiab tsim me ntsis nyiaj siv ua haujlwm. Tsis tas li ntawd, qhov ua tau poob hauv online productivity yog offset los ntawm kev nce hauv kev tsim khoom tsim tawm. Tsawg kawg hauv txoj kev xav: tsis txhob hnov ​​​​qab tias cov neeg tsim khoom lub sijhawm muaj txiaj ntsig. Raws li cov nqi software, Istio yog qhib qhov software, yog li koj tuaj yeem tau txais thiab siv nws dawb.

Master nws tus kheej

Red Hat Developer Experience Team tau tsim qhov tob tob ntawm tes kev ua thawj coj los ntawm Istio (ua lus Askiv). Nws khiav ntawm Linux, MacOS thiab Windows, thiab cov cai muaj nyob hauv Java thiab Node.js.

10 kev sib tham sib tshooj ntawm Istio

Thaiv 1 - Rau Beginners

Taw qhia rau Istio
30 feeb
Cia peb paub nrog Service Mesh, kawm yuav ua li cas rau nruab Istio hauv OpenShift Kubernetes pawg.
Yuav pib

Kev xa tawm microservices hauv Istio
30 feeb
Peb siv Istio los xa peb microservices nrog Spring Boot thiab Vert.x.
Yuav pib

Thaiv 2 - theem nrab

Saib xyuas thiab taug qab hauv Istio
60 feeb
Peb yuav tshawb xyuas Istio cov cuab yeej saib xyuas ua ke, kev ntsuas kev cai, thiab OpenTracing ntawm Prometheus thiab Grafana.
Yuav pib

Yooj yim routing hauv Istio
60 feeb
Kawm paub yuav ua li cas tswj routing hauv Istio siv cov cai yooj yim.
Yuav pib

Advanced routing cov cai
60 feeb
Cia peb saib ntawm Istio txoj kev ntse, kev nkag mus rau kev tswj hwm, ntsuas qhov ntsuas thiab ntsuas tus nqi.
Yuav pib

Thaiv 3 - cov neeg siv siab heev

Txhaum Txhaum hauv Istio
60 feeb
Peb kawm txog kev ua tsis tiav ntawm cov xwm txheej hauv cov ntawv thov sib faib, tsim HTTP yuam kev thiab kev ncua sij hawm hauv lub network, thiab kawm siv chaos engineering los kho ib puag ncig.
Yuav pib

Circuit Breaker hauv Istio
30 feeb
Peb nruab Siege rau qhov chaw kuaj kev ntxhov siab thiab kawm paub yuav ua li cas kom ntseeg tau qhov kev ua txhaum ntawm kev ua haujlwm rov qab siv cov replays, Circuit Court breaker thiab pas dej ejection.
Yuav pib

Egress thiab Istio
10 feeb
Peb siv Egress txoj hauv kev los tsim cov cai rau kev sib cuam tshuam ntawm cov kev pabcuam sab hauv nrog APIs thiab cov kev pabcuam sab nraud.
Yuav pib

Istio thiab Kiali
15 feeb
Kawm siv Kiali kom tau txais cov ntsiab lus ntawm cov kev pabcuam mesh thiab tshawb nrhiav kev thov thiab cov ntaub ntawv ntws.
Yuav pib

Mutual TLS in Istio
15 feeb
Peb tsim Istio Gateway thiab VirtualService, tom qab ntawd peb kawm kev sib nrig sib TLS (mTLS) thiab nws cov chaw hauv kev nthuav dav.
Yuav pib

Thaiv 3.1 - Sib Nqus Dej: Istio Service Mesh rau Microservices

Ib cov lus tshaj tawm ntawm Istio Service Mesh
Phau ntawv yog dab tsi:

  • Qhov kev pabcuam mesh yog dab tsi?
  • Istio system thiab nws lub luag haujlwm hauv microservice architecture.
  • Siv Istio los daws cov teeb meem hauv qab no:
    • Ua txhaum cai;
    • Txoj kev;
    • Kev sim kev ntxhov siab;
    • Kev nyab xeeb;
    • Telemetry sau siv cov kab, ntsuas thiab Grafana.

Txhawm rau rub phau ntawv

Cov kab lus ntawm kev pabcuam meshes thiab Istio

Sim nws tus kheej

Cov ntawv tshaj tawm no tsis yog npaj los muab kev dhia dej tob rau hauv lub ntiaj teb ntawm Istio. Peb tsuas yog xav qhia koj txog lub tswvyim thiab tej zaum yuav txhawb koj kom sim Istio rau koj tus kheej. Nws yog dawb xwb ua, thiab Red Hat muab tag nrho cov cuab yeej koj xav tau los pib nrog OpenShift, Kubernetes, Linux ntim, thiab Istio, suav nrog: Red Hat Developer OpenShift Container Platform, peb phau ntawv qhia rau Istio thiab lwm yam kev pab cuam ntawm peb microsite ntawm Service Mesh. Tsis txhob ncua, pib hnub no!

Istio routing cov cai: directing service thov qhov twg lawv yuav tsum mus

OpenShift ΠΈ Kubernetes ua haujlwm zoo heev ntawm kev hais lus microservices tau xa mus rau qhov xav tau pods. Qhov no yog ib qho laj thawj rau lub hav zoov ntawm Kubernetes - routing thiab load ntsuas. Tab sis yuav ua li cas yog tias koj xav tau kev hloov maj mam thiab sophisticated routing? Piv txwv li, ib txhij siv ob versions ntawm microservice. Istio Route Rules pab tau li cas ntawm no?

Routing cov cai yog cov cai uas txiav txim siab txoj kev xaiv. Txawm hais tias theem ntawm cov txheej txheem tsis yooj yim, txoj hauv kev ua haujlwm dav dav ntawm cov cai no tseem yooj yim: kev thov raug xa mus raws li qee qhov kev txwv thiab HTTP header qhov tseem ceeb.
Cia peb saib cov piv txwv:

Kubernetes default: tsis tseem ceeb "50/50"

Hauv peb qhov piv txwv, peb yuav qhia yuav ua li cas ib txhij siv ob lub qauv ntawm microservice hauv OpenShift, cia peb hu lawv v1 thiab v2. Txhua lub version khiav hauv nws tus kheej Kubernetes pod, thiab los ntawm lub neej ntawd nws khiav sib npaug sib npaug puag ncig robin routing. Txhua lub pod tau txais nws qhov kev sib koom ntawm kev thov raws li tus naj npawb ntawm nws cov microservice zaus, hauv lwm lo lus, replicas. Istio tso cai rau koj hloov qhov nyiaj tshuav no manually.

Cia peb hais tias peb tau siv ob lub qauv ntawm peb qhov kev pom zoo ntawm OpenShift, kev pom zoo-v1 thiab kev pom zoo-v2.
Hauv daim duab. Daim duab 1 qhia tau hais tias thaum txhua qhov kev pabcuam raug sawv cev rau hauv ib qho piv txwv, thov hloov qhov sib npaug ntawm lawv: 1-2-1-2-... Qhov no yog li cas Kubernetes routing ua haujlwm los ntawm lub neej ntawd:

Ib cov lus tshaj tawm ntawm Istio Service Mesh

Weighted faib ntawm versions

Hauv daim duab. Daim duab 2 qhia tias yuav ua li cas yog tias koj nce tus naj npawb ntawm v2 kev pabcuam replicas los ntawm ib mus rau ob (qhov no ua tiav nrog oc scale β€”replicas = 2 deployment/recommendation-v2 command). Raws li koj tuaj yeem pom, kev thov ntawm v1 thiab v2 tam sim no muab faib ua ib-rau-peb piv: 1-2-2-1-2-2- ...:

Ib cov lus tshaj tawm ntawm Istio Service Mesh

Tsis quav ntsej version siv Istio

Istio ua rau nws yooj yim los hloov qhov kev faib tawm ntawm kev thov raws li peb xav tau. Piv txwv li, xa tag nrho cov tsheb mus rau kev pom zoo-v1 siv Istio yaml cov ntaub ntawv hauv qab no:

Ib cov lus tshaj tawm ntawm Istio Service Mesh

Ntawm no koj yuav tsum tau xyuam xim rau qhov no: pods raug xaiv raws li cov ntawv sau. Peb qhov piv txwv siv daim ntawv lo v1. Qhov "qhov hnyav: 100" parameter txhais tau hais tias 100% ntawm cov tsheb yuav raug xa mus rau txhua qhov kev pabcuam pods uas muaj daim ntawv lo v1.

Kev faib tawm ntawm cov qauv (Canary Deployment)

Tom ntej no, siv qhov ntsuas qhov hnyav, koj tuaj yeem coj tsheb mus rau ob lub pods, tsis quav ntsej tus naj npawb ntawm microservice zaus khiav hauv ib qho ntawm lawv. Piv txwv li, ntawm no peb coj 90% ntawm kev khiav mus rau v1 thiab 10% rau v2:

Ib cov lus tshaj tawm ntawm Istio Service Mesh

Sib cais routing rau cov neeg siv mobile

Hauv kev xaus, peb yuav qhia yuav ua li cas yuam cov neeg siv mobile tsheb khiav mus rau kev pabcuam v2, thiab txhua tus neeg rau v1. Txhawm rau ua qhov no, peb siv cov lus qhia tsis tu ncua los txheeb xyuas tus nqi siv tus neeg sawv cev hauv daim ntawv thov header:

Ib cov lus tshaj tawm ntawm Istio Service Mesh

Tam sim no nws yog koj tig

Cov piv txwv nrog cov lus qhia tsis tu ncua rau kev txheeb xyuas cov ntsiab lus yuav tsum txhawb koj kom pom koj tus kheej siv Istio routing cov cai. Ntxiv mus, qhov muaj peev xwm ntawm no yog qhov dav heev, txij li header qhov tseem ceeb tuaj yeem tsim nyob rau hauv daim ntawv thov qhov chaws.

Thiab nco ntsoov tias Ops, tsis yog Dev

Txhua yam uas peb tau pom hauv cov piv txwv saum toj no yog ua tiav yam tsis muaj kev hloov pauv me ntsis hauv qhov chaws, zoo, tshwj tsis yog rau cov xwm txheej thaum nws tsim nyog los tsim cov ntawv thov tshwj xeeb. Istio yuav muaj txiaj ntsig zoo rau ob qho tib si rau cov neeg tsim khoom, uas, piv txwv li, yuav siv tau ntawm qhov kev sim, thiab rau cov kws tshaj lij hauv kev ua haujlwm ntawm IT systems, uas nws yuav pab tau zoo heev hauv kev tsim khoom.

Yog li cia peb rov hais dua cov leitmotif ntawm no series ntawm cov posts: koj tsis tas yuav hloov dab tsi hauv koj cov cai. Tsis tas yuav tsim cov duab tshiab lossis tso cov thawv tshiab. Tag nrho cov no yog siv sab nraum lub chaws.

Siv koj lub tswv yim

Tsuas yog xav txog qhov muaj peev xwm ntawm kev txheeb xyuas header siv cov lus hais tsis tu ncua. Xav redirect koj cov neeg siv khoom loj tshaj plaws rau qhov tshwj xeeb version ntawm koj microservices? Yooj yim! Xav tau ib qho txawv version rau Chrome browser? Tsis muaj teeb meem! Koj tuaj yeem taug kev mus los raws li yuav luag txhua tus yam ntxwv.

Sim nws tus kheej

Nyeem txog Istio, Kubernetes thiab OpenShift yog ib qho, tab sis vim li cas ho tsis kov txhua yam koj tus kheej? Pab neeg Red Hat Developer Program tau npaj cov lus qhia ntxaws ntxaws (ua lus Askiv) uas yuav pab koj paub cov thev naus laus zis sai li sai tau. Phau ntawv tseem yog 100% qhib qhov chaw, yog li nws tau muab tso rau hauv pej xeem sau. Cov ntaub ntawv ua haujlwm ntawm macOS, Linux thiab Windows, thiab qhov chaws muaj nyob hauv Java thiab node.js versions (versions hauv lwm hom lus yuav los sai sai). Tsuas yog qhib qhov sib txuas git repository hauv koj tus browser Red Hat Developer Demo.

Hauv cov ncej tom ntej: peb ua haujlwm tawm cov teeb meem zoo nkauj

Hnub no koj pom dab tsi Istio routing txoj cai yuav ua tau. Tam sim no xav txog qhov qub, tab sis tsuas yog cuam tshuam nrog kev ua yuam kev. Qhov no yog raws nraim qhov peb yuav tham txog hauv tsab xov xwm tom ntej.

Tau qhov twg los: www.hab.com

Ntxiv ib saib