Обновление кластеров
AC CLI предоставляет команды администратора для подготовки метаданных обновления, просмотра статуса обновления кластера и запроса обновлений кластера.
Используйте эти команды, когда необходимо:
- Создать
ProductManifestдля целевой версии - Проверить текущую версию кластера и доступные обновления
- Запросить обновление до последней версии
- Запросить обновление до конкретной версии
- Просмотреть результаты предварительной проверки и ход выполнения обновления
Содержание
Перед началомПредварительные требованияСоздание ProductManifestПросмотр статуса обновления и доступных обновленийОбновление до последней версииОбновление до конкретной версииПросмотр подробного статуса обновленияРезультаты предварительной проверкиЭтапы обновленияРаспространённые сигналы и устранение неполадокПример рабочего процессаПеред началом
В ACP availableUpdates — это не статический список, который вы поддерживаете вручную. Контроллер обновления должен сначала увидеть ProductManifest для целевой версии, прежде чем сможет опубликовать доступные цели обновления для кластера.
Если вы не создадите ProductManifest сначала, типичные симптомы включают:
ac adm upgradeне показываетavailableUpdatesac adm upgrade --to-latestсразу завершается с ошибкой- Вы можете использовать только
--allow-explicit-upgradeдля ручного запроса версии
Рекомендуемый порядок действий:
- Определитесь, какую версию вы хотите опубликовать или обновить.
- Создайте
ProductManifestдля этой версии. - Подождите, пока метаданные обновления будут обработаны.
- Запустите
ac adm upgradeи убедитесь, чтоavailableUpdatesзаполнен. - Запросите обновление.
Предварительные требования
Перед выполнением команд, связанных с обновлением, убедитесь, что:
- Вы вошли в ACP платформу.
- У вас есть права администратора кластера или эквивалентные.
- Вы знаете имя целевого кластера. Если оно не указано,
ac adm upgradeпо умолчанию используетglobal. - В целевой среде уже установлены CRD
ProductManifestи контроллер обновления.
Вы можете сначала проверить текущий контекст:
Текущий контекст по-прежнему определяет, какие учетные данные и конечная точка используются AC для команды.
- Для
ac adm upgradeиac adm upgrade statusцелевой кластер выбирается явно с помощью--cluster, по умолчаниюglobal. - Для
ac adm release import-manifestAC сначала проверяет REST URL текущего контекста. Если он указывает на путь ACP workload, AC автоматически переписывает запрос на соответствующий глобальный путь. Если текущий контекст не является URL ACP workload/global, AC использует текущий контекст как есть и не требует расширения сессии kubeconfig.
При необходимости переключитесь на другую сессию ACP:
Создание ProductManifest
Используйте следующую команду для создания ProductManifest для целевой версии:
Эта команда создаёт минимальный объект метаданных обновления, необходимый контроллеру:
metadata.nameиспользует имя версии с префиксомv, напримерv4.20.0spec.versionиспользует переданную вами версию, например4.20.0
Если вы хотите, чтобы команда ждала, пока объект станет Ready, добавьте --wait:
Также можно переопределить таймаут ожидания:
Поведение команды:
--versionобязательный параметр.- Если
ProductManifestне существует, AC создаёт его. - Если
ProductManifestуже существует с той же версией, команда завершается успешно без изменений. - Если
ProductManifestуже существует с другой версией, команда завершается с ошибкой и не перезаписывает существующий объект. - По умолчанию команда не ждёт Ready. Ожидание происходит только при явном указании
--wait.
Просмотр статуса обновления и доступных обновлений
После создания ProductManifest используйте следующую команду для просмотра сводки обновления для кластера по умолчанию global:
Обычно команда показывает:
- Текущую версию кластера
- Желаемую версию, если обновление уже запрошено
- Текущий список доступных обновлений
- Общие условия обновления
Используйте её, чтобы быстро получить ответы на вопросы:
- Какую версию сейчас использует кластер?
- Запрошена ли уже целевая версия?
- Есть ли сейчас новые доступные цели обновления?
- Находится ли кластер в состоянии
Ready,ReconcilingилиDegraded?
Чтобы запросить конкретный кластер, добавьте --cluster:
Если вы только что создали ProductManifest и всё ещё не видите availableUpdates, контроллер может ещё обрабатывать метаданные. Подождите немного и запустите ac adm upgrade снова.
Обновление до последней версии
Когда availableUpdates присутствует, запросите обновление до последней версии командой:
AC выберет самую высокую версию из availableUpdates и отправит запрос на обновление.
--to-latest — булевый флаг с значением по умолчанию false, что означает:
- Если вы не указываете его, AC ведёт себя так, как будто использовано
--to-latest=false. - Если вы указываете только
--to-latest, AC воспринимает это какtrue. - Можно также явно написать
--to-latest=trueили--to-latest=false.
Если availableUpdates нет, команда завершается с ошибкой и не отправляет новый запрос на версию.
После запроса обновления просмотрите сводку снова:
Обновление до конкретной версии
Если хотите обновиться до конкретной версии, выполните:
Пример:
Типичные случаи:
- Вы не хотите самую новую доступную версию
- Следуете утверждённой цели выпуска из вашего процесса релизов
- Хотите повторно запросить известную целевую версию
По умолчанию запрошенная версия должна уже присутствовать в availableUpdates. Если её нет, команда завершается с ошибкой.
Если вы намеренно хотите запросить версию, отсутствующую в availableUpdates, добавьте:
--allow-explicit-upgrade по умолчанию false:
- Если не указывать, AC ведёт себя как
--allow-explicit-upgrade=false. - Если указать только
--allow-explicit-upgrade, AC воспринимает какtrue. - Можно явно написать
--allow-explicit-upgrade=trueили--allow-explicit-upgrade=false.
Пример:
Этот флаг меняет только валидацию на стороне клиента. Контроллер обновления и его проверки предварительного запуска по-прежнему решают, можно ли продолжить с запрошенной целью.
Просмотр подробного статуса обновления
Для более глубокой диагностики выполните:
Для просмотра конкретного кластера:
По сравнению с ac adm upgrade эта команда расширяет:
- Сводку текущей версии, желаемой версии и общих условий
- Результаты предварительной проверки для текущей цели обновления
- Этапы обновления и прогресс операций
Результаты предварительной проверки
Предварительная проверка описывает, можно ли перейти к выполнению обновления. Каждая проверка обычно включает:
- Имя проверки
- Политику повторного входа
- Состояние
- Причину
- Сообщение
Интерпретация состояний:
Passed: проверка пройдена.Retry: проверка ещё не может дать окончательный результат. Подождите и проверьте снова.Failed: существует блокирующее условие, которое нужно сначала устранить.
Если данных предварительной проверки ещё нет, считайте это "результат ещё не получен", а не "все проверки пройдены".
Этапы обновления
После начала выполнения обновления вывод статуса показывает этапы и прогресс операций.
Вывод этапа может включать:
- Имя этапа
- Приоритет
- Фазу
Вывод операции может включать:
- Имя операции
- Действие
- Текущую версию
- Целевую версию
- Фазу
Интерпретация фаз этапа:
Pending: этап ещё не начался.Running: этап выполняется.Finished: этап завершён.
Если данных по этапам нет, вероятно, обновление ещё не перешло в фазу выполнения.
Распространённые сигналы и устранение неполадок
Используйте следующие рекомендации при чтении статуса обновления:
Readyобычно означает, что кластер достиг желаемого состояния.Reconcilingобычно означает, что кластер всё ещё применяет текущий запрос обновления.Degradedобычно означает, что обновление заблокировано или возникла ошибка.
Если ac adm upgrade не показывает availableUpdates, проверьте сначала:
- Был ли создан
ProductManifestдля целевой версии? - Если использовали
--wait, достиг лиProductManifestсостоянияReady=True? - Было ли достаточно времени у контроллера для обработки новых метаданных?
Если ac adm upgrade показывает желаемую цель, но обновление не продвигается:
- Выполните
ac adm upgrade status. - Проверьте, нет ли элементов предварительной проверки в состоянии
RetryилиFailed. - Посмотрите, начались ли этапы обновления.
Если обновление уже в процессе:
- Выполните
ac adm upgrade status. - Просмотрите текущие фазы этапа и операции.
- Сравните текущую версию с целевой.