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.

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 .
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 tsheb thauj khoom, Istio khiav hauv Linux- ib lub thawv uas nyob hauv ib qho -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 и 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:

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 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 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 los ntawm Istio (ua lus Askiv). Nws khiav ntawm Linux, MacOS thiab Windows, thiab cov lej tau nthuav tawm hauv Java thiab Node.js versions.
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.
Kev xa tawm microservices hauv Istio
30 feeb
Peb siv Istio los xa peb microservices nrog Spring Boot thiab Vert.x.
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.
Yooj yim routing hauv Istio
60 feeb
Kawm paub yuav ua li cas tswj routing hauv Istio siv cov cai yooj yim.
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.
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.
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.
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.
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.
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.
Thaiv 3.1 - Sib Nqus Dej: Istio Service Mesh rau Microservices

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.
Cov kab lus ntawm kev pabcuam meshes thiab Istio
Sim nws tus kheej
Cov ntawv tshaj tawm no tsis yog los qhia koj txog lub ntiaj teb ntawm Istio. Peb tsuas xav qhia koj txog lub tswv yim thiab tej zaum yuav txhawb koj kom sim Istio koj tus kheej. Nws pub dawb kiag li, thiab Red Hat muab txhua yam cuab yeej tsim nyog los pib nrog OpenShift, Kubernetes, Linux- thawv thiab Istio, uas yog: , thiab lwm yam kev pab cuam ntawm peb . Tsis txhob ncua, pib hnub no!
Istio routing cov cai: directing service thov qhov twg lawv yuav tsum mus
и ua haujlwm zoo heev ntawm kev hais lus 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:

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- ...:

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:

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:

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:

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 ? 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 Kuv tau npaj ib phau ntawv qhia ntxaws (ua lus Askiv) uas yuav pab koj paub siv cov thev naus laus zis no sai li sai tau. Phau ntawv qhia no kuj yog 100% qhib rau pej xeem siv, yog li nws muaj rau pej xeem nkag mus saib tau. Cov ntaub ntawv khiav ntawm macOS, Linux и Windows, thiab cov lej qhov chaw muaj nyob rau hauv Java thiab Node.js (cov qauv hauv lwm hom lus yuav los sai sai no). Tsuas yog qhib lub chaw khaws ntaub ntawv Git sib xws hauv koj tus browser. .
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
