Надамо се да сте прочитали Први део, где смо укратко објаснили шта су Цанари Деплоиментс. Такође смо показали како то имплементирати користећи стандардне Кубернетес ресурсе.
Арго Роллоутс
Арго Роллоутс је домаћи контролер за примену Кубернетеса. Обезбеђује ЦРД (прилагођену дефиницију ресурса) за Кубернетес. Захваљујући томе, можемо користити нови ентитет: Rollout, који управља плаво-зеленим и канаринским применама са различитим опцијама конфигурације.
Арго Роллоутс контролер који користи прилагођени ресурс Rollout, Омогућава додатне стратегије примене као што су плаво-зелена и канаринац за Кубернетес. Ресурс Rollout пружа еквивалентну функционалност Deployment, само са додатним стратегијама примене.
ресурс Deployments има две стратегије за примену: RollingUpdate и Recreate. Иако су ове стратегије погодне за већину случајева, за примену на сервере у веома великом обиму, користе се додатне стратегије, као што су плаво-зелена или канаринац, које нису доступне у контролеру примене. Да би користили ове стратегије у Кубернетес-у, корисници су морали да напишу скрипте поврх својих имплементација. Арго Роллоутс Цонтроллер излаже ове стратегије као једноставне, декларативне, конфигурабилне параметре. https://argoproj.github.io/argo-rollouts
Постоји и Арго ЦИ који пружа веб интерфејс прилагођен кориснику за употребу са Роллоутс-има, то ћемо погледати у следећем чланку.
У нашој инфраструктурној репи (види доле) већ смо додали инсталл.иамл као и/к8с/арго-роллоутс/инсталл.иамл. На овај начин ће га ГитлабЦИ инсталирати у кластер.
Ово је веома једноставан Питхон+Фласк АПИ који враћа одговор као ЈСОН. Направићемо пакет користећи ГитлабЦИ и гурнути резултат у Гитлаб Регистри. У регистру имамо две различите верзије издања:
вуесткамп/к8с-деплоимент-екампле-апп:в1
вуесткамп/к8с-деплоимент-екампле-апп:в2
Једина разлика између њих је враћена ЈСОН датотека. Користимо ову апликацију да што лакше визуелизујемо са којом верзијом комуницирамо.
Репозиторијум инфраструктуре
У овом спремишту ћемо користити ГитлабЦИ за примену у Кубернетес, .гитлаб-ци.имл изгледа овако:
Rollout ради исто као и Деплоимент. Ако не поставимо стратегију ажурирања (као што је канаринац овде), она ће се понашати као подразумевана имплементација са сталним ажурирањем.
Дефинишемо два корака у иамл-у за примену Цанари:
10% саобраћаја ка канаринцу (сачекајте да се ручно у реду)
50% саобраћаја до канаринца (сачекајте 2 минута па наставите до 100%)
Извођење почетног постављања
Након почетног постављања, наши ресурси ће изгледати овако:
А одговор добијамо само од прве верзије апликације:
Извођење Цанари Деплоимент
Корак 1: 10% саобраћаја
Да бисмо започели примену канаринца, само треба да променимо верзију слике као што обично радимо са применама:
Заиста препоручујем овај видео, он показује како Арго Роллоутс и Арго ЦИ раде заједно:
Укупан
Заиста ми се свиђа идеја да користим ЦРД-ове који управљају креирањем додатних типова имплементација или скупова реплика, преусмерава саобраћај итд. Рад са њима иде глатко. Затим бих желео да тестирам интеграцију са Арго ЦИ.
Међутим, изгледа да долази до великог спајања Арго ЦИ и Флук ЦИ, тако да бих могао сачекати док ново издање не изађе: Арго Флук.
Да ли сте имали искуства са Арго Роллоутс или Арго ЦИ?