Виконання послідовного оновлення (rolling update)

Цілі

  • Виконати послідовне оновлення, використовуючи kubectl.

Оновлення застосунку

Користувачі очікують від застосунків високої доступності у будь-який час, а розробники - оновлення цих застосунків декілька разів на день. У Kubernetes це стає можливим завдяки послідовному оновленню. Послідовні оновлення дозволяють оновити Deployment без простою, шляхом послідовної заміни одних Pod'ів іншими. Нові Pod'и розподіляються по вузлах з доступними ресурсами.

У попередньому модулі ми масштабували наш застосунок, запустивши його на декількох Pod'ах. Масштабування - необхідна умова для проведення оновлень без шкоди для доступності застосунку. За типовими налаштуваннями, максимальна кількість Pod'ів, недоступних під час оновлення, і максимальна кількість нових Pod'ів, які можуть бути створені, дорівнює одиниці. Обидві опції можна налаштувати в числовому або відсотковому (від кількості Pod'ів) еквіваленті. У Kubernetes оновлення версіонуються, тому кожне оновлення Deployment'а можна відкотити до попередньої (стабільної) версії.

Зміст:

  • Оновлення застосунку

Послідовне оновлення дозволяє оновити Deployment без простою шляхом послідовної заміни одних Pod'ів іншими.


Загальна інформація про послідовне оновлення


Як і у випадку з масштабуванням, якщо Deployment "відкритий у світ", то під час оновлення Service розподілятиме трафік лише на доступні Pod'и. Під доступним мається на увазі Pod, готовий до експлуатації користувачами застосунку.

Послідовне оновлення дозволяє вам:

  • Просувати застосунок з одного оточення в інше (шляхом оновлення образу контейнера)
  • Відкочуватися до попередніх версій
  • Здійснювати безперервну інтеграцію та розгортання застосунків без простою

Якщо Deployment "відкритий у світ", то під час оновлення Service розподілятиме трафік лише на доступні Pod'и.


В інтерактивному уроці ми оновимо наш застосунок до нової версії, а потім відкотимося до попередньої.


Змінено April 14, 2020 at 3:31 PM PST: "Introduction tutorial" internal linking (ec4588070b)