Anyị nwere olileanya na ị gụrụ akụkụ nke mbụ, Ebe anyị kọwara nkenke ihe Canary Deployments bụ. Anyị gosikwara otu esi eme ya site na iji akụrụngwa Kubernetes ọkọlọtọ.
Argo Rollouts
Argo Rollouts bụ onye Kubernetes onye na-ahụ maka mbubata. Ọ na-enye CRD (Nkọwa akụrụngwa omenala) maka Kubernetes. Ekele dịrị ya, anyị nwere ike iji ụlọ ọrụ ọhụrụ: Rollout, nke na-ejikwa blue-green na canary deployments na nhọrọ nhazi dị iche iche.
Onye njikwa Argo Rollouts nke akụrụngwa omenala na-eji Rollout, Na-enye ohere maka usoro mbugharị ndị ọzọ dị ka acha anụnụ anụnụ-acha ndụ ndụ na canary maka Kubernetes. Akụrụngwa Rollout na-enye ọrụ nhata Deployment, naanị ya na atụmatụ mbugharị ọzọ.
resource Deployments nwere usoro abụọ maka itinye: RollingUpdate и Recreate. Ọ bụ ezie na atumatu ndị a dabara adaba maka ọtụtụ ikpe, maka ibuga na sava n'ọtụtụ buru ibu, a na-eji atụmatụ ndị ọzọ eme ihe, dị ka acha anụnụ anụnụ-acha ndụ ndụ ma ọ bụ canary, nke na-adịghị na njikwa ntinye. Iji jiri usoro ndị a na Kubernetes, ndị ọrụ ga-ede edemede n'elu Nrụnye ha. Onye njikwa Argo Rollouts na-ekpughe atụmatụ ndị a dị ka ihe dị mfe, nkwuputa, nhazi nhazi. https://argoproj.github.io/argo-rollouts
Enwekwara Argo CI, nke na-enye interface webụ dabara adaba maka iji Rollouts, anyị ga-elele nke ahụ n'isiokwu na-esote.
Na turnip akụrụngwa anyị (lee n'okpuru) anyị agbakwunyela install.yaml dị ka i/k8s/argo-rollouts/install.yaml. Otu a GitlabCI ga-etinye ya n'ime ụyọkọ.
Nke a bụ Python+Flask API dị mfe nke na-eweghachi nzaghachi dị ka JSON. Anyị ga-eji GitlabCI wuo ngwugwu ahụ wee mee ka nsonaazụ ya gaa na ndekọ Gitlab. N'ime ndekọ ahụ anyị nwere ụdị ntọhapụ abụọ dị iche iche:
wuestkamp/k8s-ihe atụ-ngwa:v1
wuestkamp/k8s-ihe atụ-ngwa:v2
Naanị ihe dị iche n'etiti ha bụ faịlụ JSON weghachite. Anyị na-eji ngwa a iji anya nke uche hụ ngwa ngwa nke ụdị anyị na-akpakọrịta.
Ebe nchekwa akụrụngwa
N'ime ebe nchekwa a, anyị ga-eji GitlabCI maka ibuga Kubernetes, .gitlab-ci.yml dị ka nke a:
Ana m akwado vidiyo a n'ezie, ọ na-egosi ka Argo Rollouts na Argo CI si arụkọ ọrụ ọnụ:
Nsonaazụ
Enwere m mmasị n'echiche nke iji CRD na-achịkwa mmepụta nke ụdị ntinye ma ọ bụ replicasets, redirect trafic, wdg. Soro ha na-arụkọ ọrụ na-aga nke ọma. Ọzọ, ọ ga-amasị m ịnwale njikọta na Argo CI.
Agbanyeghị, ọ dị ka enwere nnukwu njikọ nke Argo CI na Flux CI na-abịa, yabụ enwere m ike chere ruo mgbe ntọhapụ ọhụrụ ga-apụta: Argo Flux.
Ị nwere ahụmahụ ọ bụla na Argo Rollouts ma ọ bụ Argo CI?