Поиск по сайту:

Как обновить управляемые DigitalOcean кластеры Kubernetes


Управляемая служба Kubernetes (DOKS) от DigitalOcean позволяет быстро и легко запускать готовые к эксплуатации кластеры в облаке. При создании кластера вы можете выбрать один из трех последних дополнительных выпусков Kubernetes. Вот как обращаться с обновлениями, чтобы не отставать от новых функций и исправлений безопасности.

Типы обновлений

При работе с кластером вы столкнетесь с двумя разными типами обновлений Kubernetes:

  • Выпуски исправлений. Они увеличивают номер исправления в семантической схеме управления версиями, например, с 1.20.1 до 1.20.2. Обновления исправлений всегда должны быть безопасными для обновления, без устаревших или критических изменений.
  • Вспомогательные выпуски. Незначительные выпуски предполагают изменение функций, например с 1.20 до 1.21. Эти изменения по-прежнему должны быть обратно совместимыми, поэтому у вас не возникнет немедленных проблем. Некоторые функции могут быть объявлены устаревшими в второстепенном выпуске для удаления в будущем основном выпуске (от 1.x до 2.x).

Как для исправлений, так и для второстепенных выпусков DigitalOcean предлагает услугу автоматического обновления, которая будет действовать от вашего имени. Обновления будут установлены в течение установленного периода обслуживания. Незначительные обновления не применяются, если вы сначала вручную не включите параметр на уровне кластера.

DigitalOcean иногда может принудительно установить обновление в случае неотложной проблемы с безопасностью. Это может произойти, даже если вы отключили автоматические обновления. Кроме того, ваш кластер в конечном итоге будет обновлен, если вы будете использовать самую старую поддерживаемую версию Kubernetes так долго, что DigitalOcean полностью прекратит ее выпуск.

Обновления — это двухэтапный процесс. Сначала обновляется плоскость управления Kubernetes, во время которой ваши рабочие нагрузки остаются доступными. После этого ваши рабочие узлы будут обновлены до новой версии. Это может привести к простою в зависимости от размера вашего кластера и его рабочих нагрузок.

Настройка расписания обновлений

Расписание автоматического обновления вашего кластера устанавливается в панели управления DigitalOcean. Войдите в свою учетную запись и щелкните свой кластер на главной странице. Вы также можете нажать «Kubernetes» на левой боковой панели и выбрать там свой кластер.

Когда вы окажетесь на странице своего кластера, щелкните вкладку «Настройки» вверху. Нажмите кнопку «Изменить» рядом с категорией «Окно обновления». Используйте два раскрывающихся списка, чтобы выбрать день и время. Нажмите «Сохранить», чтобы подтвердить свой выбор. DigitalOcean запланирует установку автоматических обновлений в течение четырех часов, начиная с установленного времени.

Если вы хотите, чтобы второстепенные выпуски Kubernetes также применялись автоматически, нажмите кнопку «Изменить» рядом с «Автоматически обновлять исправления второстепенных версий». Когда флажок установлен, ваш кластер будет переходить на новые минорные версии без какого-либо ручного вмешательства. Вы должны оценить это решение с точки зрения минимальной стабильности, необходимой для ваших рабочих нагрузок.

Обновление вручную

Вы всегда можете обновить свой кластер вручную из панели управления облаком. Вам нужно будет сделать это, когда вы обновите минорную версию, и у вас не включена автоматическая опция. Ручное обновление также полезно, если вы хотите установить исправление раньше обычного графика.

Перейдите к своему кластеру в панели управления. Прокрутите вниз вкладку «Обзор» и нажмите синюю кнопку «Просмотреть доступные обновления». Если эта кнопка не отображается, ваш кластер уже обновлен, и никаких дополнительных исправлений нет.

Если вы переходите на новую дополнительную версию, DigitalOcean проверит ресурсы вашего кластера, чтобы обнаружить любые потенциальные проблемы совместимости. Эта проверка может занять несколько минут. Вы увидите результаты, отображаемые во всплывающем окне.

Любые проблемы с линтингом должны быть решены до того, как вы продолжите обновление. Хотя небольшие обновления Kubernetes не должны создавать серьезных проблем с обратной совместимостью, обновления также включают изменения в базовой платформе DOKS. DigitalOcean иногда корректирует конфигурацию DOKS таким образом, что это может привести к блокировке обновлений для более старых версий.

Если проверка не удалась, вам следует обратиться к документации DigitalOcean, поскольку шаги по разрешению будут отличаться от кластера к кластеру. Справочник DigitalOcean по линтингу включает пошаговые инструкции по устранению наиболее распространенных проблем. Когда вы закончите, нажмите «Повторить проверку», чтобы убедиться, что ваши исправления эффективны.

Как только ворс будет пройден, нажмите синюю кнопку «Обновить сейчас», чтобы начать обновление. Это может занять несколько минут в зависимости от размера вашего кластера. Прогресс отображается в пользовательском интерфейсе панели управления. Сначала обновляется Control Plane, а затем каждый рабочий узел в вашем кластере.

Обновление из CLI

Вы можете автоматизировать обновления в своей собственной инфраструктуре с помощью интерфейса командной строки DigitalOcean, Doctl. Убедитесь, что у вас установлен Doctl и подключен к вашей учетной записи.

Сначала получите информацию о вашем кластере:

doctl kubernetes cluster list

Эта команда отображает все ваши кластеры. Запишите идентификатор кластера, который вы хотите обновить.

Затем найдите версии Kubernetes, на которые может перейти ваш кластер:

doctl kubernetes cluster get-upgrades <ID>
doctl kubernetes cluster upgrade <ID> --version 1.20.8

Если вы хотите сразу перейти к последней версии, вы можете опустить флаг --version.

Процесс обновления может занять несколько минут, как и установка, инициированная через веб-интерфейс.

Всплеск обновлений

Обновление кластера с одним узлом раньше приводило к простою. Узлы заменяются новыми экземплярами в процессе обновления, поэтому может быть период, когда ваши рабочие нагрузки отключаются. Если в вашем кластере несколько узлов, планировщик Kubernetes будет перемещать модули Pod с каждого обновляемого узла для поддержания доступности. Вы все еще можете столкнуться с простоями, если емкость вашего кластера не может поддерживать все ваши рабочие нагрузки при работе «узла не работает».

Surge Upgrades — это необязательная функция, которая позволяет гарантировать доступность во время обновлений даже в кластерах с одним узлом. Когда Surge Upgrades активны, DigitalOcean запускает дополнительные рабочие узлы перед установкой исправления. Поды будут перемещены на временные «перенапряженные» узлы, пока обновление кластера будет завершено.

К вашей учетной записи будет добавлено не более 10 дополнительных узлов. Плата за них будет взиматься по обычному тарифу. Для большинства кластеров влияние на стоимость должно быть незначительным, поскольку дополнительные капли будут существовать только на время обновления.

Вы можете активировать Surge Upgrades на странице настроек вашего кластера. После включения они будут использоваться для всех будущих обновлений, как автоматических, так и ручных. Опция Surge Upgrades также отображается в запросе подтверждения, когда вы собираетесь начать обновление вручную.

Заключение

У вас есть несколько вариантов обновления кластеров DigitalOcean Kubernetes. Обычно лучше, чтобы обновления исправлений применялись автоматически, в то время как второстепенные выпуски можно автоматизировать или установить вручную с помощью панели управления облаком или Doctl.

Обновления не должны приводить к простоям для ваших пользователей, если у вас включена функция Surge Upgrades. DigitalOcean автоматически создаст новые рабочие узлы для поддержания доступности сервиса, пока основные узлы обновляются. Если вы не используете Surge Upgrades, вы можете столкнуться с простоем, если вы используете кластер с одним узлом, или у вас останется недостаточная емкость, поскольку каждый узел отключается для обновления.