Aiwatar da Canary ta amfani da Jenkins-X Istio Flagger
Canary turawa
Muna fatan kun karanta kashi na farko, Inda muka ɗan yi bayanin abin da Canary Deployments suke. Mun kuma nuna yadda ake aiwatar da shi ta amfani da daidaitattun albarkatun Kubernetes.
Argo Rollouts
Argo Rollouts ɗan asalin Kubernetes ne mai sarrafa tura turawa. Yana ba da CRD (Ma'anar Albarkatun Al'ada) don Kubernetes. Godiya gare shi, za mu iya amfani da sabon mahalli: Rollout, wanda ke sarrafa shuɗi-kore da kayan aikin canary tare da zaɓuɓɓukan daidaitawa daban-daban.
Mai sarrafa Argo Rollouts wanda wata hanya ta al'ada ke amfani da ita Rollout, Yana ba da damar ƙarin dabarun tura aiki kamar shuɗi-kore da canary don Kubernetes. Albarkatu Rollout yana ba da aiki daidai Deployment, kawai tare da ƙarin dabarun turawa.
hanya Deployments yana da tsari guda biyu don turawa: RollingUpdate и Recreate. Ko da yake waɗannan dabarun sun dace da mafi yawan lokuta, don turawa zuwa sabobin a kan ma'auni mai girma, ana amfani da ƙarin dabaru, irin su blue-kore ko canary, waɗanda ba su samuwa a cikin Mai sarrafa Deployment. Don amfani da waɗannan dabarun a cikin Kubernetes, masu amfani dole ne su rubuta rubutun a saman Ayyukan su. Mai sarrafa Argo Rollouts yana fallasa waɗannan dabarun a matsayin masu sauƙi, bayyananni, sigogi masu daidaitawa. https://argoproj.github.io/argo-rollouts
Hakanan akwai Argo CI, wanda ke ba da ingantaccen haɗin yanar gizo don amfani tare da Rollouts, za mu kalli hakan a cikin labarin na gaba.
A cikin kayan aikin mu na turnip (duba ƙasa) mun riga mun ƙara install.yaml kamar yadda i/k8s/argo-rollouts/install.yaml. Ta wannan hanyar GitlabCI zai shigar da shi cikin tari.
Wannan API ɗin Python+Flask ne mai sauƙi wanda ke mayar da martani azaman JSON. Za mu gina kunshin ta amfani da GitlabCI kuma mu tura sakamakon zuwa Gitlab Registry. A cikin rajista muna da nau'ikan saki daban-daban guda biyu:
wuestkamp/k8s-aikin-misali-app:v1
wuestkamp/k8s-aikin-misali-app:v2
Bambancin kawai tsakanin su shine fayil ɗin JSON da aka dawo dashi. Muna amfani da wannan aikace-aikacen don ganin sauƙi cikin sauƙi wanda muke sadarwa da shi.
Ma'ajiyar kayan more rayuwa
A cikin wannan wurin ajiyar za mu yi amfani da GitlabCI don turawa zuwa Kubernetes, .gitlab-ci.yml yayi kama da wannan:
Ina ba da shawarar wannan bidiyon da gaske, yana nuna yadda Argo Rollouts da Argo CI suke aiki tare:
Sakamakon
Ina matukar son ra'ayin yin amfani da CRDs waɗanda ke sarrafa ƙirƙirar ƙarin nau'ikan turawa ko kwafi, tura zirga-zirga, da sauransu. Yin aiki tare da su yana tafiya lafiya. Na gaba Ina so in gwada haɗin kai tare da Argo CI.
Koyaya, da alama akwai babban haɗin gwiwa na Argo CI da Flux CI suna zuwa, don haka zan iya jira har sai sabon sakin ya fito: Argo Flux.
Shin kun taɓa samun gogewa tare da Argo Rollouts ko Argo CI?