Aiwatar da Canary ta amfani da Jenkins-X Istio Flagger
Za mu yi jigilar Canary da hannu ta hanyar GitOps da ƙirƙirar/gyara manyan albarkatun Kubernetes. An yi nufin wannan labarin da farko don gabatarwa tare da yadda ƙaddamarwa ke aiki a Kubernetes Canary, tun da akwai hanyoyin da za a iya amfani da su ta atomatik, waɗanda za mu yi la'akari da su a cikin labaran da ke gaba.
Tare da dabarun Canary, ana fara amfani da sabuntawa ga rukunin masu amfani kawai. Ta hanyar saka idanu, bayanan log, gwajin hannu, ko wasu tashoshi na amsawa, ana gwada sakin kafin a fitar da shi ga duk masu amfani.
Aiwatar da Kubernetes (sabuntawa)
Tsohuwar dabarun don Kubernetes Deployment shine sabuntawa, inda aka ƙaddamar da takamaiman adadin kwasfan fayiloli tare da sabbin nau'ikan hotuna. Idan an ƙirƙira su ba tare da matsala ba, an ƙare kwas ɗin da ke da tsoffin nau'ikan hotuna, kuma ana ƙirƙirar sabbin kwasfa a layi daya.
GitOps
Muna amfani da GitOps a cikin wannan misalin saboda mu:
amfani da Git azaman tushen gaskiya guda ɗaya
muna amfani da Ayyukan Git don ginawa da turawa (babu umarni ban da git tag / haɗawa da ake buƙata)
Alal misali:
Bari mu ɗauki kyakkyawan aiki - don samun wurin ajiya guda don lambar aikace-aikacen da ɗaya don abubuwan more rayuwa.
Ma'ajiyar aikace-aikace
Wannan API ɗin Python+Flask ne mai sauƙi wanda ke mayar da martani azaman JSON. Za mu gina kunshin ta hanyar GitlabCI kuma mu tura sakamakon zuwa Gitlab Registry. A cikin rajista muna da nau'ikan saki daban-daban guda biyu:
wuestkamp/k8s-deployment-example-app:v1
wuestkamp/k8s-deployment-example-app:v2
Iyakar abin da ke tsakanin su shine canji a cikin fayil ɗin JSON da aka dawo. 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 turnip za mu tura ta GitlabCI zuwa Kubernetes, .gitlab-ci.yml kama da wannan:
Muna tura waɗannan canje-canje zuwa ma'ajiyar da za a fara turawa (ta hanyar GitlabCI) kuma mu ga sakamakon:
Sabis ɗinmu zai nuna duka abubuwan turawa, tunda duka biyun suna da zaɓin app. Saboda bazuwar Kubernetes, yakamata mu ga amsoshi daban-daban na ~10% na buƙatun:
Halin yanayin aikace-aikacenmu na yanzu (GitOps, wanda aka karɓa daga Git azaman Tushen Gaskiya guda ɗaya) kasancewar turawa biyu tare da kwafi masu aiki, ɗaya don kowane sigar.
~10% na masu amfani sun saba da sabon sigar kuma ba da gangan ba. Yanzu shine lokaci don bincika kurakurai a cikin rajistan ayyukan da bayanan saka idanu don nemo matsaloli.
Mataki 2: Saki sabon sigar ga duk masu amfani
Mun yanke shawarar cewa komai ya tafi daidai kuma yanzu muna buƙatar fitar da sabon sigar ga duk masu amfani. Don yin wannan kawai mu sabunta deploy.yaml shigar da sabon sigar hoton da adadin kwafi daidai da 10. In deploy-canary.yaml mun saita adadin kwafi zuwa 0. Bayan turawa, sakamakon zai kasance kamar haka:
Don taƙaita
A gare ni, gudanar da aikin da hannu ta wannan hanya yana taimakawa wajen fahimtar yadda za'a iya daidaita shi cikin sauƙi ta amfani da k8s. Tun da Kubernetes yana ba ku damar sabunta komai ta hanyar API, waɗannan matakan za a iya sarrafa su ta atomatik ta hanyar rubutun.
Wani abu kuma da ake buƙatar aiwatarwa shine wurin shigar gwaji (LoadBalancer ko ta hanyar Ingress) wanda kawai sabon sigar za a iya shiga. Ana iya amfani da shi don bincike da hannu.
A cikin kasidu masu zuwa, za mu duba wasu hanyoyin warwarewa ta atomatik waɗanda ke aiwatar da yawancin abubuwan da muka yi.