В этой статье мы рассмотрим самые важные обновления Deckhouse Kubernetes Platform версий 1.48–1.60, произошедшие почти за год — именно столько времени прошло с момента выхода нашего последнего обзора новых фичей.

Помимо перечисленных здесь изменений, в каждом релизе велись постоянные активности, такие как закрытие уязвимостей разного уровня критичности в различных компонентах и переход на distroless-образы для компонентов платформы. А полный список изменений можно найти по ссылкам в каждом релизе.

Содержание

Deckhouse 1.48: режим высокой доступности Ingress Nginx и перенос групп пользователя в Group

Версия Deckhouse 1.48 на канале обновлений Stable появилась 25 июля 2023 года. Из ключевых изменений можно выделить добавление поддержки Kubernetes 1.27 и прекращение поддержки Kubernetes 1.22.

Рассмотрим изменения подробнее:

  • Добавлена возможность управления режимом отказоустойчивости для модуля ingress-nginx (параметр highAvailability). Это позволяет включить режим высокой доступности для компонентов control plane Ingress Nginx при выключенном глобальном режиме высокой доступности.

  • В модуле user-authn, который отвечает за настройку единой системы аутентификации, интегрированной с Kubernetes и веб-интерфейсами, устарел параметр groups — он описывал список групп, в которых состоит пользователь. Теперь эти параметры настраиваются в ресурсе Group.

  • В модуле admission-policy-engine добавлен новый параметр SecurityPolicy, который позволяет точнее настраивать политики безопасности.

  • Добавлена возможность управления ресурсами sidecar-контейнера Istio (параметр sidecar.resourcesManagement).

  • Добавлена возможность управлять размером диска под данные etcd у некоторых cloud-провайдеров (параметр etcdDiskSizeGb).

Полный список изменений версии 1.48.

Deckhouse 1.49: прекращение поддержки Docker CRI и новый модуль для создания окружений

Версия Deckhouse 1.49 на канале обновлений Stable появилась 8 августа 2023 года. Из основных изменений можно выделить прекращение поддержки Docker CRI и добавление нового модуля multitenancy-manager.

Рассмотрим их подробнее:

  • Прекращена поддержка Docker на узлах. В качестве CRI для групп узлов или всего кластера можно выбрать либо Containerd, либо NotManaged.

  • Добавлен новый модуль multitenancy-manager, позволяющий с помощью custom resource’ов создавать в кластере шаблонизированные окружения. Это дает возможность удобно создавать в кластере окружения с настроенными ограничениями по доступу и использованию ресурсов (пример). Использование этого модуля может быть полезно в следующих случаях:

    • для создания окружений разработчика при тестировании или демонстрации работы кода;

    • при развертывании приложений с предоставлением разработчику ограниченного доступа в кластер;

    • при предоставлении услуг по аренде ресурсов кластера.

  • В инсталлятор Deckhouse (dhctl) добавлен набор предварительных проверок, которые позволяют выявить возможные проблемы до начала установки: проверка доступности узла localhost, портов 6443, 2379 и 2380 на сервере, а также проверка возможности создать SSH-туннель.

  • Добавлена возможность управления резервированием ресурсов для системных служб на узле (с помощью параметра resourceReservation). Резервирование включено в автоматическом режиме, но это отразится только на новых NodeGroup’ах.

Полный список изменений версии 1.49.

Deckhouse 1.50: обновление версии Kubernetes и Ingress-контроллера, отправка логов в Grafana Cloud

Версия Deckhouse 1.50 на канале обновлений Stable появилась 29 августа 2023 года. Из основных изменений можно отметить смену версий Kubernetes на 1.25 и Ingress-контроллера на 1.6, а также появление модуля виртуализации.

Рассмотрим подробнее:

  • Версия по умолчанию Ingress-контроллера изменена с 1.1 на 1.6.

  • Версия по умолчанию Kubernetes изменена с 1.23 на 1.25.

  • Повышена безопасность модулей extended-monitoring и monitoring-kubernetes за счёт использования distroless-образов.

  • В модуле виртуализации добавлена возможность указывать приоритет виртуальной машины (параметр priorityClassName ресурса VirtualMachine).

  • Повышена стабильность cluster autoscaler. Реализовано использование различных версий cluster autoscaler для соответствующих версий Kubernetes.

  • В модуле log-shipper добавлена поддержка мультитенантных инсталляций loki для отправки логов (параметр loki.tenantID ресурса ClusterLogDestination). Теперь, например, можно отправлять логи в Grafana Cloud.

  • Добавлен псевдоним для ресурса NodeGroupConfiguration — ngc. Например, теперь достаточно написать kubectl get ngc, вместо kubectl get NodeGroupConfiguration.

Полный список изменений версии 1.50.

Deckhouse 1.51: веб-интерфейс администратора в Enterprise-версии и возможность отложить минорные обновления

Версия Deckhouse 1.51 на канале обновлений Stable появилась 26 сентября 2023 года. Среди основных изменений можно отметить появление веб-интерфейса администратора в Enterprise-версии платформы и возможность более тонкой настройки минорных обновлений.

Рассмотрим их более детально:

  • Начиная с этой версии, в Enterprise-редакции платформы появилась возможность использовать веб-интерфейс пользователя. Для этого необходимо выполнить команду kubectl -n d8-system exec deploy/deckhouse -c deckhouse -- deckhouse-controller module enable deckhouse-admin, предварительно убедившись, что в кластере используется хранилище образов контейнеров registry.deckhouse.io.

    Модуль упрощает управление кластером и делает состояние системы наглядным. Если шаблон публичных доменов %s.example.com, то в веб-приложение можно зайти по адресу https://deckhouse-admin.example.com. Доступ к интерфейсу будет у администраторов, а для не-администраторов доступ запрещён.

    Основные возможности модуля:

    • Обзор кластера, версий, состояния системы и обновлений.

    • Управление модулями и их настройками.

    • Управление узлами: конфигурация узлов, масштабирование, параметры обновления.

    • Управление тенантами: проекты, созданные на основании шаблонов.

    • Управление доступом: провайдеры аутентификации, права групп и пользователей.

    • Ingress-контроллеры: заведение трафика в кластер.

    • Журналирование: сбор логов с узлов и подов, отправка в различные типы хранилищ.

    • Мониторинг: обработка и отправка метрик, создание алертов и recording rule, дашборды и источники данных для Grafana, настройки Prometheus и список горящих алертов.

    • Поддержка GitOps: специально отмечены ресурсы Kuberentes, созданные автоматикой (werf, Argo CD, Helm).

    • Метрики и мониторинг в узлах, группах узлов и в Ingress-контроллерах.

    • Состояние подов Prometheus, Ingress-контроллеров и поды на узлах.

  • Новый параметр namespaceSelector ресурса ClusterAuthorizationRule пришёл на замену устаревшим параметрам allowAccessToSystemNamespaces и limitNamespaces. С помощью параметра namespaceSelector можно ограничить список доступных пользователю/группе пространств имён.

  • Улучшение минорных обновлений:

    • Теперь можно откладывать минорные обновления Deckhouse на определённое время с помощью параметра minimalNotificationTime. Ранее этот параметр можно было использовать только при указании URL webhook’а, но теперь его можно использовать независимо. Это может быть удобным, если вы хотите, чтобы новая версия Deckhouse применилась с определённой задержкой после появления информации о ней в канале обновлений (в кластере автоматически будет создан ресурс DeckhouseRelease). Тем самым вы получите время, чтобы подготовиться к обновлению, отложить его или применить немедленно. Параметр не влияет на обновление patch-версий.

    • Минорные обновления Deckhouse теперь всегда применяются последовательно. Ранее, при смене режима или канала обновлений, был возможен пропуск минорных версий.

Полный список изменений версии 1.51.

Deckhouse 1.52: новые дашборды в Grafana и NTP-серверы на master-узлах

Версия Deckhouse 1.52 на канале обновлений Stable появилась 17 октября 2023 года. Среди главных изменений можно выделить продолжение перехода на distroless-образы для компонентов платформы, появление нескольких новых дашбордов в Grafana и включение master-узлов в качестве NTP-серверов для остальных узлов по умолчанию.

Рассмотрим их подробнее:

  • К обновлениям безопасности можно отнести появление возможности с помощью параметра denyVulnerableImages запретить запуск в кластере контейнеров, использующих образы с уязвимостями уровня High и Critical.

  • Синхронизация времени на узлах теперь осуществляется по умолчанию через master-узлы, которые выступают NTP-серверами (модуль chrony).

Полный список изменений версии 1.52.

Deckhouse 1.53: Kubernetes 1.28 и поддержка ALT Linux 10.0 и 10.2

Версия Deckhouse 1.53 на канале обновлений Stable появилась 2 ноября 2023 года. Из основных изменений можно выделить прекращение поддержки Kubernetes 1.23 и добавление поддержки Kubernetes 1.28, а также добавление поддержки ALT Linux 10.0 и 10.2.

Рассмотрим их подробнее:

  • Добавлена поддержка Kubernetes 1.28, удалена поддержка Kubernetes 1.23.

  • Добавлена поддержка ALT Linux 10.0, 10.2.

  • Удалена поддержка AlterOS.

Полный список изменений версии 1.53.

Deckhouse 1.54: анонс переработки модуля виртуализации и настройка модулей

Версия Deckhouse 1.54 на канале обновлений Stable появилась 21 ноября 2023 года. Из основных изменений можно выделить анонс переработки модуля виртуализации и настройку модулей.

Рассмотрим их подробнее:

  • Модуль virtualization ожидает скорой значительной переработки. Начиная с релиза 1.54 Deckhouse, текущую реализацию модуля нельзя будет включить, но можно продолжать использовать, если она была включена ранее (изменение конфигурации модуля также заблокировано).

  • Параметр configOverrides ресурса InitConfiguration устарел. Теперь настройка модулей при установке Deckhouse и после установки осуществляется одинаково — с помощью ресурсов ModuleConfig.

Полный список изменений версии 1.54.

Deckhouse 1.55: новая политика безопасности, обновления Cilium

Версия Deckhouse 1.55 на канале обновлений Stable появилась 12 декабря 2023 года. Из основных изменений можно выделить обновление Cilium и улучшения безопасности.

Рассмотрим их подробнее:

  • Обновлена версия Cilium в модуле cni-cilium с версии 1.12 до 1.14. Важные примечания:

    • Возможны регрессии в сетевой подсистеме, в том числе связанные с сетевыми политиками.

    • Потребление ресурсов агентами Cilium должно сократиться.

    • Большой объём сетевых политик теперь подгружается быстрее.

    • Удалены устаревшие CRD CiliumEgressNATPolicy и CiliumBGPLoadBalancerIPPool.

  • В модуле istio появилась возможность устанавливать тайм-аут TCP-соединения между сайдкаром istio и сервисом (параметр idleTimeout).

  • Установлена политика безопасности (PSS) по умолчанию в кластере (управляется новым параметром defaultPolicy модуля admission-policy-engine). При новой установке Deckhouse, начиная с версии 1.55, в кластере будет использоваться политика безопасности Baseline (предотвращает наиболее известные и популярные способы повышения привилегий).

  • Добавлен алерт о выводе из эксплуатации зоны доступности ru-central1-c Yandex Cloud.

Полный список изменений версии 1.55.

Deckhouse 1.56: поддержка Istio 1.19 и возможность принудительного обновления кластера

Версия Deckhouse 1.56 на канале обновлений Stable появилась 16 января 2024 года. Из основных изменений можно выделить появление поддержки Istio 1.19, отключение модуля виртуализации и добавление возможности принудительного обновления кластера.

Рассмотрим их подробнее:

  • Прекращена поддержка текущей реализации модуля virtualization. Виртуальные машины, если они были развёрнуты, нужно удалить, а модуль отключить, иначе Deckhouse не сможет обновиться. (Новый модуль уже доступен.) 

  • Изменился формат именования ресурсов, создаваемых модулем multitenancy-manager. Имена ресурсов стали короче (удален префикс проекта из имени ресурса).

  • Добавлена поддержка Istio 1.19.

  • Ingress-контроллер версии 1.1 теперь считается устаревшим, рекомендуется обновиться до актуальной версии 1.9. Добавлен алерт об использовании в кластере контроллера устаревшей версии.

  • Закрыты критическая уязвимость в библиотеке по работе с JWT и 14 уязвимостей высокого уровня в библиотеках модуля runtime-audit-engine.

  • Применить обновление Deckhouse теперь можно принудительно, пропустив установленные окна обновлений (аннотация release.deckhouse.io/apply‑now: "true")

  • Модуль trivy-operator, настраивающий в кластере сканирование образов контейнеров на наличие уязвимостей, теперь работает и при установке Deckhouse в закрытых контурах с registry, имеющими самоподписанный сертификат.

  • В политиках контроля (модуль admission-policy-engine) теперь можно настраивать ограничение количества реплик контроллеров (секция параметров replicaLimits).

  • Добавлена поддержка зоны ru-central1-d в Yandex Cloud.

Полный список изменений версии 1.56.

Deckhouse Kubernetes Platform 1.57: прекращение поддержки текущей реализации LINSTOR и новый механизм работы с модулями

Версия DKP 1.57 на канале обновлений Stable появилась 13 февраля 2024 года. В конце декабря 2023 года мы представили экосистему Deckhouse, а чтобы не было путаницы с названием флагманского продукта, переименовали его в DKP (Deckhouse Kubernetes Platform). Из основных изменений можно выделить прекращение поддержки модуля linstor, сам модуль мы удалили в версии 1.59. Также был введён новый механизм работы с модулями.

Рассмотрим их подробнее:

  • Прекращена поддержка модуля linstor. Модуль будет удален в релизе 1.59 Deckhouse Kubernetes Platform. Необходимо перейти на использование модулей sds-local-volume, sds-node-configurator и sds-replicated-volume.

  • В ресурсе PrometheusRemoteWrite, который настраивает передачу данных мониторинга по протоколу Prometheus remote-write, теперь можно указать сертификат ЦС (параметр tlsConfig.ca). Это актуально при использовании самоподписанных сертификатов, в закрытых окружениях и т. д.

  • В модуле upmeter установлен фиксированный период ротации данных — полтора года.

  • Теперь можно подключать дополнительные модули из источника модулей (ресурс ModuleSource), которые обновляются независимо от обновления Deckhouse Kubernetes Platform (работа с внутренними модулями не изменилась, они продолжают обновляться вместе с новой версией Deckhouse). При обновлении Deckhouse Kubernetes Platform до версии 1.57 источник ModuleSource deckhouse подключается автоматически.

    • Управлять обновлением модулей можно с помощью ресурса ModuleUpdatePolicy, который создается автоматически и настраивается по умолчанию согласно текущему в кластере режиму обновлений Deckhouse Kubernetes Platform.

    • Некоторые команды, чтобы:

      • получить список модулей, доступных в ModuleSource deckhouse: kubectl get ms deckhouse -o yaml;

      • получить историю релизов и доступные обновления модулей: kubectl get mr;

      • посмотреть режим обновления модулей (для ModuleSource deckhouse): kubectl get mup deckhouse -o yaml.

    • Список модулей и документация доступны на сайте Deckhouse Kubernetes Platform в разделе Документация → Модули.

Полный список изменений версии 1.57.

Deckhouse Kubernetes Platform 1.58: Kubernetes 1.29 и поддержка VMware Cloud Director

Версия DKP 1.58 на канале обновлений Stable появилась 26 марта 2024 года. Из основных изменений можно выделить добавление поддержки Kubernetes 1.29 и VMware Cloud Director.

Рассмотрим их подробнее:

  • Добавлена поддержка Kubernetes 1.29 и прекращена поддержка Kubernetes 1.24. Версия Kubernetes по умолчанию остаётся прежней (1.25), но в следующем релизе будет изменена на 1.27.

  • Добавлена поддержка работы с VMware Cloud Director. Активно развивается соответствующий облачный провайдер.

  • Изменения при работе с проектами (модуль multitenancy-manager):

    • Проект описывается ресурсами ProjectTemplate (шаблон проекта, новый ресурс) и Project (экземпляр проекта). Ресурс ProjectType считается устаревшим и будет удалён в будущих релизах.

    • Добавлены три преднастроенных шаблона проекта: базовый, безопасный и безопасный, с выделенными узлами. Теперь для создания проекта достаточно создать ресурс Project (пример). Читайте подробнее про доступные шаблоны проектов в документации.

  • В схеме размещения WithNATInstance, провайдера для Yandex Cloud, появилась секция параметров управления ресурсами NAT-инстанса (параметр natInstanceResources).

Полный список изменений версии 1.58.

Deckhouse Kubernetes Platform 1.59: новые редакции SE и BE и новая Grafana

Версия DKP 1.59 на канале обновлений Stable появилась 15 мая 2024 года. Из основных изменений можно выделить появление новых редакций платформы и обновление Grafana.

Рассмотрим их подробнее:

  • Прекращена поддержка модуля linstor. Deckhouse Kubernetes Platform не обновится, если модуль linstor включён. Перед обновлением DKP необходимо перейти на использование модуля sds-replicated-volume.

  • Добавлены редакции BE и SE Deckhouse Kubernetes Platform. Краткое содержание версий:

    • Community Edition — версия платформы для свободного использования.

    • Basic Edition — редакция с поддержкой российских ОС для развёртывания в Public Cloud или On-Premise с доступом в интернет.

    • Standard Edition — для некритичных сред без динамического скейлинга и повышенных требований по безопасности, в том числе в закрытых окружениях без доступа в интернет.

    • Enterprise Edition — для продуктивных сред в приватных облаках и On-Premise, в том числе для мультиЦОД- и мультиклауд-инсталляций, с повышенными требованиями по безопасности.

    • Certified Security Edition — сертифицированная ФСТЭК России версия для защиты конфиденциальной информации в информационных системах будет доступна в Q2 2024.

Также можно ознакомиться со сводной таблицей по редакциям:

  • Добавлен режим высокой доступности для Deckhouse. В кластерах с более чем одним мастер-узлом ядро DKP теперь, как и многие другие компоненты, будет автоматически работать в нескольких репликах. Режимом высокой доступности можно управлять глобально или на уровне модуля (параметр highAvailability модуля).

  • Добавлен агрегирующий прокси для метрик мониторинга (на базе promxy и mimir). Это позволит использовать один источник данных в Grafana (datasource), в котором будут объединённые данные от всех реплик Prometheus Main и Prometheus Longterm.

  • Добавлена Grafana v10:

    • Для новой Grafana выделен отдельный домен — grafana-v10 (согласно установленному в кластере шаблону имён), но в будущем новая Grafana заменит текущую версию по привычному адресу.

    • Некоторые дашборды не смогут работать в Grafana v10 без исправлений, поэтому какое-то время в кластере будут работать две Grafana.

    • Добавлены алерты про наличие дашборд, которым необходимы миграции из-за использования неподдерживаемых плагинов или алертов. В алертах вы найдёте подробности о том, какие шаги необходимо выполнить для миграции на Grafana v10.

Полный список изменений версии 1.59.

Deckhouse Kubernetes Platform 1.60: файлы конфигурации инсталлятора и метод вычисления маршрутов на узлах для OpenStack

Версия DKP 1.60 на канале обновлений Stable появилась 5 июня 2024 года. Из основных изменений можно выделить возможность разбивать конфигурацию инсталлятора DKP на любое количество файлов, а также обновление метода вычисления маршрутов на узлах для провайдера OpenStack.

Рассмотрим их подробнее:

  • Конфигурацию инсталлятора DKP (утилита dhctl) можно разбивать на любое количество файлов, указывая их через множественное использование параметра --config. Инсталлятор сам определит нужный порядок применения ресурсов. Параметр --resources считается устаревшим и будет удалён в будущих релизах.

  • Для провайдера Yandex Cloud добавлена поддержка высокопроизводительных SSD-дисков с типом network-ssd-io-m3.

  • Для провайдера OpenStack обновлен метод вычисления маршрутов на узлах. Теперь новые узлы с несколькими сетевыми интерфейсами на Ubuntu 22.04 и выше настраиваются корректно.

  • Исправлена ошибка, из-за которой DKP мог откатываться на версию ниже после установки.

Полный список изменений версии 1.60.

Заключение

Deckhouse Kubernetes Platform активно развивается и разрабатывается. В этой статье мы постарались кратко рассмотреть историю изменений, произошедших с платформой за последний год.

Для знакомства с платформой Deckhouse рекомендуем изучить раздел «Быстрый старт» (доступен на русском и английском языках).

Полезные ссылки на ресурсы проекта:

P. S.

Читайте также в нашем блоге:

Комментарии (1)


  1. Razorr1996
    06.07.2024 02:48

    В начале года изучал разные способы установки Kubernetes на Bare Metal, и, помня ваши прекрасные статьи, захотел попробовать Deckhouse локально, на виртуалках. И не получилось из-за отсутствия поддержки ARM64. Да, я пользователь MacBook на Apple Silicon. Но они же уже как 4 выпускаются, и 3 года — это основная архитектура у Apple. Как и многие в мире сейчас переходят на ARM64, взять те же Amazon Graviton уже в котором поколении.

    Когда добавите поддержку ARM64? Issue на GitHub висит уже 3 года. https://github.com/deckhouse/deckhouse/issues/24