Руководство по миграции версий API DynaKube¶
- Актуальная версия Dynatrace
Обзор¶
В зависимости от версии Dynatrace Operator поддерживаются различные apiVersion ресурса DynaKube. На этой странице собраны руководства по миграции для каждой apiVersion с учётом версии Operator.
Начиная с Dynatrace Operator версии 1.8.0+, Dynatrace Operator создаёт предупреждающее событие Kubernetes, если версия установленного CRD DynaKube не соответствует версии, ожидаемой данным релизом Operator.
Обзор версий API¶
| Версия API DynaKube | Введена | Устарела | Удалена 1 | Руководства по миграции |
|---|---|---|---|---|
| v1beta5 | 1.6.0 | |||
| v1beta4 | 1.5.0 | до v1beta5 | ||
| v1beta3 | 1.3.0 | 1.7.0 | до v1beta5, до v1beta4 | |
| v1beta2 | 1.2.0 | 1.6.0 | 1.7.0 | до v1beta5, до v1beta4 |
| v1beta1 | 0.3.0 | 1.6.0 | 1.7.0 | до v1beta5, до v1beta4 |
1
Соответствующая версия API больше не обслуживается указанной версией Dynatrace Operator. Она будет удалена из CRD в последующей версии.
Стратегии конвертации¶
Автоматическая конвертация¶
Каждая версия Dynatrace Operator конвертирует развёрнутые DynaKube со старой apiVersion в последнюю apiVersion, поддерживаемую данной версией Dynatrace Operator.
- Пример: Dynatrace Operator v1.6.x всегда будет конвертировать
DynaKubeвv1beta5.
Таким образом, когда вы проверяете с помощью kubectl, какую apiVersion используете, вы всегда увидите последнюю apiVersion, поддерживаемую данной версией Dynatrace Operator. Вы можете использовать этот механизм вместо ручной конвертации.
- Скачайте сконвертированную версию вашего DynaKube. Следующая команда выдаст DynaKube, сконвертированный в последнюю поддерживаемую
apiVersion:
- соответствующие части раздела
.metadata - полный раздел
.spec
Ручная конвертация¶
- Сначала проверьте версию Operator, которая в данный момент развёрнута. Если вы не знаете, какую версию используете, вот несколько способов это выяснить.
С помощью Helm:
-
Используйте команду
helm list, полеAPP VERSIONпокажет версию установленного Dynatrace Operator.- Пример:
С помощью kubectl:
-
На деплойменте Dynatrace Operator есть метка
app.kubernetes.io/version, которая показывает используемую версию.- Пример:
> kubectl get deployment dynatrace-operator -n dynatrace -o jsonpath='{.metadata.labels.app\.kubernetes\.io/version}'
1.6.2
apiVersion используемого DynaKube и следуйте соответствующему руководству по миграции в обзоре выше.
Процесс удаления¶
Dynatrace Operator следует структурированному процессу прекращения поддержки в соответствии с официальными рекомендациями Kubernetes, чтобы обеспечить плавный переход между версиями API DynaKube с предоставлением достаточного времени для миграции.
Фаза 1: Объявление о прекращении поддержки¶
Предварительное уведомление: объявление публикуется в примечаниях к релизу как минимум за один релиз Dynatrace Operator до вступления прекращения поддержки в силу.
Маркировка устаревшей версии: версия API официально помечается как устаревшая в последующем релизе, но остаётся полностью функциональной и поддерживаемой.
Фаза 2: Период поддержки устаревшей версии¶
Продолжение поддержки: устаревшая версия API продолжает быть полностью поддерживаемой и функциональной в течение периода прекращения поддержки.
Рекомендация по миграции: пользователям настоятельно рекомендуется выполнить миграцию на новую версию API в этот период, используя предоставленные руководства по миграции.
Автоматическая конвертация: Operator автоматически конвертирует устаревшие версии API в последнюю поддерживаемую версию в фоновом режиме, обеспечивая совместимость.
Фаза 3: Подготовка к удалению¶
Отключение обслуживания API: по окончании периода поддержки устаревшая версия API помечается как served: false в определении пользовательского ресурса (CRD).
Режим только для конвертации: схема версии API сохраняется в CRD только для целей конвертации, позволяя читать и конвертировать существующие ресурсы.
Крайний срок миграции: пользователи должны завершить миграцию на новую версию API до наступления этой фазы, чтобы обеспечить дальнейшую работоспособность своих ресурсов DynaKube.
Фаза 4: Полное удаление¶
Удаление схемы: схема устаревшей версии API полностью удаляется из CRD в будущем релизе Operator.
Отсутствие поддержки конвертации: после удаления поддержка конвертации или совместимости для устаревшей версии API недоступна.
Рекомендации по срокам миграции¶
- Немедленные действия: планируйте миграцию сразу после объявления о прекращении поддержки
- Период тестирования: используйте период прекращения поддержки для тестирования миграции в непроизводственных средах
- Миграция на продакшене: завершите миграцию на продакшене задолго до отключения обслуживания API
- Проверка: убедитесь, что все ресурсы DynaKube используют актуальную версию API после миграции