Ndipo tikuganiza kuti powerenga nkhaniyi mukudziwa kale kuti Istio ndi chiyani. Ngati ayi, ndiye inu mukhoza kuwerenga za izo apa.
Kufunsira mayeso
Podi iliyonse imakhala ndi zotengera ziwiri: ntchito yathu ndi istio-proxy.
Tidzagwiritsa ntchito kuyesa kosavuta ndi frontend-nginx ndi backend python pods. Pod ya nginx imangotumiza pempho lililonse ku pod yakumbuyo ndikugwira ntchito ngati proxy. Zambiri zitha kupezeka m'mayaml otsatirawa:
Tikayambitsa Deployment yoyamba, tikuwona kuti ma pods omwe timagwiritsa ntchito ali ndi zotengera ziwiri zokha, ndiye kuti, Istio sidecar ikungokhazikitsidwa:
Ndipo tikuwonanso Istio Gateway Loadbalancer m'malo a mayina istio-system:
Kupanga magalimoto
Tidzagwiritsa ntchito ma IP otsatirawa kupanga magalimoto omwe adzalandilidwe ndi ma pods akutsogolo ndikutumizidwa ku ma pods akumbuyo:
while true; do curl -s --resolve 'frontend.istio-test:80:35.242.202.152' frontend.istio-test; sleep 0.1; done
Tiwonjezeranso frontend.istio-test ku fayilo yathu yosungira.
Onani Mesh kudzera pa Kiali
Tidayika pulogalamu yoyeserera ndi Istio pamodzi ndi Tracing, Grafana, Prometheus ndi Kiali (onani pansipa kuti mumve zambiri). projekiti readme). Chifukwa chake titha kugwiritsa ntchito Kiali kudzera:
istioctl dashboard kiali # admin:admin
Kiali akuwona kuchuluka kwa magalimoto omwe alipo kudzera pa Mesh
Monga tikuonera, 100% ya magalimoto amapita ku utumiki wakutsogolo, kenako kumapangidwe akutsogolo okhala ndi chizindikiro v1, popeza tikugwiritsa ntchito proxy yophweka ya nginx yomwe imatumizanso zopempha ku utumiki wakumbuyo, womwe umawatsogolera ku ma pods a backend. ndi chizindikiro v1.
Kiali imagwira ntchito bwino ndi Istio ndipo imapereka yankho la bokosi la Mesh. Zabwino basi.
Kutumiza kwa Canary
Kumbuyo kwathu kuli kale ndi ma k8s awiri, imodzi ya v1 ndi ina ya v2. Tsopano tikungoyenera kuuza Istio kuti itumize magawo ena a zopempha ku v2.
Gawo 1: 10%
Ndipo zomwe tiyenera kuchita ndikusintha kulemera kwa VirtualService mkati istio.yaml:
Zopempha zopanda mutu zidzayendetsedwa ndi chiŵerengero cha 1/10:
Canary kwa mitundu iwiri yodalira
Tsopano tiwona njira yomwe tili ndi v2 yamitundu yonse yakutsogolo ndi yakumbuyo. Kwa onse awiri, tidatchula kuti 10% yamagalimoto ayenera kupita ku v2:
Tikuwona kuti kutsogolo kwa v1 ndi v2 onse kutsogolo kwa magalimoto pa chiŵerengero cha 1/10 ku backend v1 ndi v2.
Nanga bwanji tikadayenera kupititsa patsogolo magalimoto kuchokera kutsogolo-v2 kupita ku backend-v2 chifukwa sizigwirizana ndi v1? Kuti tichite izi, tidzakhazikitsa chiŵerengero cha 1/10 cha kutsogolo, chomwe chimayang'anira zomwe magalimoto amafika kumbuyo-v2 pogwiritsa ntchito kukambirana. sourceLabels :
В gawo loyamba Tidagwiritsa ntchito Canary pamanja, kugwiritsanso ntchito ma k8s awiri. Kumeneko tinawongolera chiŵerengero cha zopempha posintha chiwerengero cha zofananira. Njirayi imagwira ntchito, koma ili ndi zovuta zake zazikulu.
Istio imapangitsa kuti zitheke kudziwa kuchuluka kwa zopempha mosasamala kuchuluka kwa zofananira. Izi zikutanthauza, mwachitsanzo, kuti titha kugwiritsa ntchito ma HPAs (Horizontal Pod Autoscalers) ndipo sitiyenera kukonzedwa molingana ndi momwe Canary ikutumizira.
Zotsatira
Istio imagwira ntchito bwino ndikuigwiritsa ntchito limodzi ndi Kiali imapanga kuphatikiza kwamphamvu kwambiri. Chotsatira pamndandanda wanga wazokonda ndikuphatikiza Spinnaker ndi Istio ya automation ndi Canary analytics.