KanÄriju izvietoÅ”ana, izmantojot Jenkins-X Istio Flagger
KanÄriju izvietoÅ”ana
MÄs ceram, ka jÅ«s izlasÄ«sit pirmÄ daļa, kur mÄs Ä«si paskaidrojÄm, kas ir Canary Deployments. MÄs arÄ« parÄdÄ«jÄm, kÄ to ieviest, izmantojot standarta Kubernetes resursus.
Argo Rollouts
Argo Rollouts ir Kubernetes vietÄjais izvietoÅ”anas kontrolieris. Tas nodroÅ”ina Kubernetes CRD (pielÄgoto resursu definÄ«ciju). Pateicoties tam, mÄs varam izmantot jaunu entÄ«tiju: Rollout, kas pÄrvalda zili zaļo un kanÄriju izvietoÅ”anu ar dažÄdÄm konfigurÄcijas opcijÄm.
Argo Rollouts kontrolieris, ko izmanto pielÄgots resurss Rollout, Ä»auj Kubernetes papildu izvietoÅ”anas stratÄÄ£ijas, piemÄram, zili zaļo un kanÄrijputnu. Resurss Rollout nodroÅ”ina lÄ«dzvÄrtÄ«gu funkcionalitÄti Deployment, tikai ar papildu izvietoÅ”anas stratÄÄ£ijÄm.
resursi Deployments ir divas izvietoÅ”anas stratÄÄ£ijas: RollingUpdate Šø Recreate. Lai gan Ŕīs stratÄÄ£ijas ir piemÄrotas vairumam gadÄ«jumu, izvietoÅ”anai serveros ļoti lielÄ mÄrogÄ tiek izmantotas papildu stratÄÄ£ijas, piemÄram, zili zaļa vai kanÄrijas, kas nav pieejamas izvietoÅ”anas kontrollerÄ«. Lai izmantotu Ŕīs stratÄÄ£ijas pakalpojumÄ Kubernetes, lietotÄjiem bija jÄraksta skripti papildus izvietoÅ”anai. Argo Rollouts Controller Ŕīs stratÄÄ£ijas atklÄj kÄ vienkÄrÅ”us, deklaratÄ«vus, konfigurÄjamus parametrus. https://argoproj.github.io/argo-rollouts
Ir arÄ« Argo CI, kas nodroÅ”ina Ärtu tÄ«mekļa saskarni lietoÅ”anai ar Rollouts, mÄs to aplÅ«kosim nÄkamajÄ rakstÄ.
Å Ä« ir ļoti vienkÄrÅ”a Python+Flask API, kas atgriež atbildi kÄ JSON. MÄs izveidosim pakotni, izmantojot GitlabCI, un nosÅ«tÄ«sim rezultÄtu Gitlab reÄ£istram. ReÄ£istrÄ mums ir divas dažÄdas laidiena versijas:
wuestkamp/k8s-deployment-example-app:v1
wuestkamp/k8s-deployment-example-app:v2
VienÄ«gÄ atŔķirÄ«ba starp tÄm ir atgrieztais JSON fails. MÄs izmantojam Å”o lietojumprogrammu, lai pÄc iespÄjas vienkÄrÅ”Äk vizualizÄtu, ar kuru versiju mÄs sazinÄmies.
Es tieÅ”Äm iesaku Å”o video, tas parÄda, kÄ Argo Rollouts un Argo CI strÄdÄ kopÄ:
Kopsavilkums
Man ļoti patÄ«k ideja izmantot CRD, kas pÄrvalda papildu izvietoÅ”anas vai replikÄtu veidu izveidi, trafika novirzÄ«Å”anu utt. Darbs ar viÅiem norit raiti. TÄlÄk es vÄlÄtos pÄrbaudÄ«t integrÄciju ar Argo CI.
TomÄr Ŕķiet, ka gaidÄma liela Argo CI un Flux CI apvienoÅ”anÄs, tÄpÄc es varÄtu pagaidÄ«t, lÄ«dz iznÄks jaunais laidiens: Argo Flux.
Vai jums ir bijusi pieredze ar Argo Rollouts vai Argo CI?