Manually manually per GitOps instruere faciemus et/modificantes praecipuas opes Kubernetes. Hic articulus est introductio principaliter in animo est quam instruere opera in Kubernetes Canary, cum efficaciores sint methodi automationis, quas in sequentibus articulis considerabimus.
Cum belli Canariis, updates primum solum ad subsess utentium utentium applicantur. Per vigilantia, stipes datae, probatio manualis, vel alii canales feedback, emissio probatur antequam omnibus usoribus dimittatur.
Kubernetes instruere (renovatio volubilem)
Defectus consilii Kubernetes instruere est volubilem-renovationem, ubi certae siliquae cum novis imaginum versionibus immittuntur. Si sine problematibus creatae sunt, siliquae cum antiquis versionibus imaginum terminantur, et siliquae novae in parallelis fiunt.
GitOps
GitOps in hoc exemplo utimur quia nos:
usura Git ut unum fontem veritatis
utimur Git Operations pro constructum et instruere (nec praecepta quam git tag/merge opus sunt)
exempli gratia
Sumamus bonam praxim - unum repositio pro applicatione codicis et unum pro infrastructura.
Applicationem repositio
Haec Python+Flask API simplicissima est quae responsionem reddit ut JSON. Nos sarcinam per GitlabCI aedificabimus et eventum Gitlab Subcriptio ventilabimus. In registro habemus duas versiones varias emissio:
wuestkamp/k8s-deployment-example-app:v1
wuestkamp/k8s-deployment-example-app:v2
Sola differentia inter eos est mutatio in file JSON rediit. Hac applicatione utimur ad visualize quam facillime quam cum versione communicamus.
Infrastructure repositio
In hac rapa explicabimus per GitlabCI ad Kubernetes; .gitlab-ci.yml Ea est huiusmodi:
Has mutationes repositorium impellimus ex quibus instruere incipiet (per GitlabCI) et consequenter videbis:
Munus nostrum utrumque instruere demonstrabit, cum utrumque electrix app. Ob defectum randomization Kubernetarum, videre debemus diversa responsa pro ~10% petitionum:
Praesens status nostrae applicationis (GitOps e Git ut Unico Veritatis fonte sumptae) praesentia est duorum inceptorum cum replicationibus activis, una pro singulis versionibus.
~10% utentium nota facta est cum nova versione et praeter intentionem illam. Nunc tempus est errores in truncis et vigilantia notitias invenire problemata.
Gradus II: dimitte novam versionem ad omnes users
Placuimus omnia bene esse et nunc opus est nobis novam versionem omnibus notis evolvere. Ad hoc enim simpliciter update deploy.yaml novam versionem imaginis et numerum replicationum insertis ad 10. In deploy-canary.yaml numerum replicationum ponemus retro ad 0. Post instruere, fiet hoc modo:
quoquo
Mihi, currit instruere manually hoc modo adiuvat ad intellegendum quam facile configurari possit uti k8s. Cum Kubernetes sinit te omnia per API renovare, hi gradus per scripta automari possunt.
Aliud quod efficiendum eget est punctum probatoris (LoadBalancer vel per Ingress) per quod solum nova versio accedere potest. Adhiberi potest ad carpendos manuales.
In futuris articulis, alias solutiones automated solvemus quae maxime efficiunt quod fecimus.