Версия 1.70
Обратите внимание
-
Модуль
ceph-csi
удален. Вместо него используйтеcsi-ceph
. Deckhouse не будет обновляться, если в кластере включенceph-csi
. Шаги по миграции с модуля ceph-csi приведены в документации модуля csi-ceph. -
Добавлена версия 1.12
контроллера Ingress NGINX
. Версия контроллера используемая по умолчанию изменена на 1.10. Все Ingress-контроллеры, версия которых не задана явно (параметрcontrollerVersion
ресурса IngressNginxController или параметрdefaultControllerVersion
модуляingress-nginx
), будут перезапущены. -
Удалена метрика
falco_events
(модульruntime-audit-engine
). Начиная с DKP 1.68, метрикаfalco_events
считалась устаревшей. Используйте метрику falcosecurity_falcosidekick_falco_events_total. Дашборды и оповещения, основанные на метрикеfalco_events
, могут не работать. -
Все компоненты DKP будут перезапущены в процессе обновления.
Основные изменения
-
Теперь, в режиме обновления
Auto
, обновление патч-версий (например, сv1.70.1
наv1.70.2
) применяется с учетом окон обновлений, если они заданы. Ранее, в этом режиме с учетом окон обновлений применялись только обновления минорных версий (например с1.69.х
на1.70.х
), а обновления патч-версий применялись по мере их появления на канале обновлений. -
Добавлена возможность перезагрузки узла, если на соответствующем объекте Node установлена аннотация
update.node.deckhouse.io/reboot
. -
При очистке статического узла теперь удаляются и созданные Deckhouse Kubernetes Platform локальные пользователи.
- Добавлен мониторинг состояния синхронизации Istio в мультикластерной конфигурации. Добавлен алерт мониторинга
D8IstioRemoteClusterNotSynced
, который появляется в следующих случаях:- удаленный кластер находится в автономном режиме;
- удаленная конечная точка API недоступна;
- токен удаленного
ServiceAccount
недействителен или истек; - между кластерами существует проблема с TLS или сертификатом.
- Команда
deckhouse-controller collect-debug-info
теперь собирает и отладочную информацию проIstio:
- ресурсы в пространстве имен
d8-istio
; - CRD групп
istio.io
иgateway.networking.k8s.io
; - журналы
Istio
; - журналы
Sidecar
одного случайно выбранного пользовательского приложения.
- ресурсы в пространстве имен
- Добавлен дашборд мониторинга с информацией о состоянии сертификатов OpenVPN. По истечении срока действия теперь сертификаты сервера будут перевыпущены, а сертификаты клиентов удалены. Добавлены алерты:
OpenVPNClientCertificateExpired
— о наличии просроченных клиентских сертификатов,OpenVPNServerCACertificateExpired
— об истечении сертификата OpenVPN CA,OpenVPNServerCACertificateExpiringSoon
иOpenVPNServerCACertificateExpiringInAWeek
— о скором окончании срока действия сертификата OpenVPN CA (менее 30 дней или 7 дней до окончания срока действия сертификата соответственно),OpenVPNServerCertificateExpired
— появляется, если срок действия сертификата сервера OpenVPN истек.OpenVPNServerCertificateExpiringSoon
иOpenVPNServerCertificateExpiringInAWeek
— о скором окончании срока действия сертификата сервера OpenVPN (менее 30 дней или 7 дней до окончания срока действия сертификата соответственно).
- Переименованы и изменены дашборды мониторинга:
- «L2LoadBalancer» переименован в «MetalLB L2». Добавлена фильтрация пулов и колонок;
- «Metallb» переименован в «MetalLB BGP». Добавлена фильтрация пулов и колонок. Удалена панель, отвечавшая за отображение ARP-запросов;
- «L2LoadBalancer / Pools» переименован в «MetalLB / Pools».
-
Для модуля
upmeter
увеличен размер PVC, чтобы вместить данные за период хранения (13 месяцев). В некоторых случаях предыдущего размера PVC было недостаточно. -
В статусе ресурса ModuleSource добавлен вывод информации о версии модулей в источнике.
-
В статусе ресурса Module добавлен вывод информации о стадии жизненного цикла модуля. Модуль в процессе своего жизненного цикла может проходить следующие стадии:
Experimental
(экспериментальная версия),Preview
(предварительная версия),General Availability
(общедоступная версия) иDeprecated
(модуль устарел). Подробнее о жизненном цикле модуля и о том, как понять насколько модуль стабилен, можно узнать в документации. -
Теперь можно выбирать более сильные или современные алгоритмы шифрования (такие как
RSA-3072
,RSA-4096
илиECDSA-P256
) для сертификатов control plane кластера вместо стандартногоRSA-2048
. Для выбора алгоритма используется параметрencryptionAlgorithm
ресурса ClusterConfiguration. -
Для модуля
descheduler
теперь можно настроить вытеснение подов, использующих локальное хранилище. Для этого используется параметрevictLocalStoragePods
конфигурации модуля. - Добавлена возможность управлять уровнем логирования Ingress-контроллера (параметр
controllerLogLevel
ресурса IngressNginxController). По умолчанию установлен уровень логированияInfo
. Управление уровнем логирования позволяет, например, предотвратить переполнение сборщика логов при перезапуске Ingress-контроллера.
Безопасность
-
Уровень критичности (severity) алертов, сигнализирующих о нарушении политик безопасности, повышен с 7 до 3.
-
В провайдерах для
Yandex Cloud
,Zvirt
иDynamix
вместо Terraform теперь используетсяOpenTofu
. Это позволит приносить изменения в провайдер, например, чтобы устранять известные уязвимости (CVE). -
Исправлены CVE-уязвимости в модулях:
chrony
,descheduler
,dhctl
,node-manager
,registry-packages-proxy
,falco
,cni-cilium
,vertical-pod-autoscaler
.
Обновление версий компонентов
Обновлены следующие компоненты DKP:
containerd
: 1.7.27runc
: 1.2.5go
: 1.24.2, 1.23.8golang.org/x/net
: v0.38.0mcm
: v0.36.0-flant.23ingress-nginx
: 1.12.1terraform-provider-aws
: 5.83.1Deckhouse CLI
: 0.12.1etcd
: v3.5.21
Версия 1.69
Обратите внимание
-
Добавлена поддержка Kubernetes 1.32 и прекращена поддержка Kubernetes 1.27. Версия Kubernetes используемая по умолчанию изменена на 1.30. В будущих релизах DKP поддержка Kubernetes 1.28 будет прекращена.
-
Все компоненты DKP будут перезапущены в процессе обновления.
Основные изменения
-
Модуль
ceph-csi
считается устаревшим. Запланируйте переход на модульcsi-ceph
. Подробнее о работе с Ceph читайте в документации. -
Теперь можно выдавать доступ к веб-интерфейсам Deckhouse по именам пользователей с помощью поля
auth.allowedUserEmails
. Разграничение доступа настраивается одновременно с параметромauth.allowedUserGroups
в конфигурации модулей с веб-интерфейсами:cilium-hubble
,dashboard
,deckhouse-tools
,documentation
,istio
,openvpn
,prometheus
иupmeter
(пример для модуляprometheus
). -
Для модуля
cni-cilium
добавлен дашборд Cilium Nodes Connectivity Status & Latency в Grafana, который позволяет отслеживать проблемы с сетевой связностью между узлами. Дашборд отображает матрицу доступности, аналогичную выводу командыcilium-health status
. Данные собираются из метрик, которые уже доступны в Prometheus. -
Для модуля
control-plane-manager
добавлен алертD8KubernetesStaleTokensDetected
, который срабатывает при обнаружении в кластере устаревших токенов сервисных аккаунтов. -
Появилась возможность создавать проект на основе существующего пространства имен, а также включать существующие объекты в проект. Для этого на пространство имен и расположенные в нем объекты необходимо установить аннотацию
projects.deckhouse.io/adopt
. Это позволяет перейти на использование проектов без пересоздания ресурсов в кластере. -
Добавлен статус
Terminating
для ресурсов ModuleSource и ModuleRelease, который будет отображаться в случае неудачной попытки удаления этих ресурсов. -
В контейнере установщика теперь автоматически настраивается доступ к управлению кластером после успешного развёртывания (генерируется
kubeconfig
в~/.kube/config
, а также настраивается локальный TCP-прокси через SSH-туннель). Это позволяет сразу использоватьkubectl
локально, без необходимости вручную подключаться к узлу с control plane по SSH. -
Теперь изменения в ресурсах Kubernetes при мультикластерных и федеративных конфигурациях отслеживаются напрямую через API Kubernetes. Это ускоряет синхронизацию данных между кластерами и исключает использование устаревших сертификатов. Также теперь полностью исключено монтирование ConfigMap и Secret в подах, что устраняет риски, связанные с компрометацией файловой системы внутри контейнеров.
-
В CoreDNS добавлен новый плагин dynamicforward, который улучшает процесс обработки DNS-запросов в кластере. Плагин интегрируется с модулем
node-local-dns
и постоянно отслеживает изменения на эндпоинтахkube-dns
, автоматически обновляя список DNS-переадресаторов. Если узел с control plane становится недоступен, DNS-запросы продолжают перенаправляться к доступным эндпоинтам, что повышает стабильность работы кластера. -
В модуле
loki
реализована новая стратегия ротации логов. Теперь старые записи удаляются автоматически при достижении порога использования диска. Порог рассчитывается как минимум из двух значений: 95% размера PVC или размер PVC за вычетом объёма, необходимого для хранения двух минут логов при заданной скорости приёма (ingestionRateMB
). ПараметрretentionPeriodHours
больше не управляет сроком хранения данных и используется только для алертов мониторинга. Еслиloki
начнёт удалять записи до истечения заданного периода, пользователю будет отправлен алертLokiRetentionPerionViolation
и будет необходимо уменьшить значениеretentionPeriodHours
, либо увеличить размер PVC. -
Добавлен параметр
nodeDrainTimeoutSecond
, который позволяет задать максимальную продолжительность попыток выполнения операции drain на узле (в секундах) для каждого ресурса NodeGroup. Ранее можно было использовать либо вариант по умолчанию (10 минут), либо уменьшить время до 5 минут (параметрquickShutdown
, который теперь следует считать устаревшим). -
В настройках модуля
openvpn
теперь можно указать значение нового параметраdefaultClientCertExpirationDays
, который задаёт срок действия клиентских сертификатов.
Безопасность
Закрыты известные уязвимости в модулях ingress-nginx
, istio
, prometheus
и local-path-provisioner
.
Обновление версий компонентов
Обновлены следующие компоненты DKP:
cert-manager
: 1.17.1dashboard
: 1.6.1dex
: 2.42.0go-vcloud-director
: 2.26.1- Grafana: 10.4.15
- Kubernetes control plane: 1.29.14, 1.30.1, 1.31.6, 1.32.2
kube-state-metrics
(monitoring-kubernetes
): 2.15.0local-path-provisioner
: 0.0.31machine-controller-manager
: v0.36.0-flant.19pod-reloader
: 1.2.1prometheus
: 2.55.1- Terraform-провайдеры:
- OpenStack: 1.54.1
- vCD: 3.14.1
Версия 1.68
Обратите внимание
- После обновления у всех источников данных (DataSource) Grafana, созданных с помощью ресурса GrafanaAdditionalDatasource, изменится UID. Если на источник данных ссылались по UID, то такая связь нарушится.
Основные изменения
-
Новый параметр
iamNodeRole
для провайдера AWS. Параметр позволяет задать имя IAM-роли, которая будет привязана ко всем AWS-инстансам узлов кластера. Это может потребоваться, если в IAM-роль узла нужно добавить больше прав (например, доступ к ECR и т.п.) -
Ускорено создание узлов с типом CloudPermanent. Теперь все такие узлы создаются параллельно. Ранее параллельно создавались CloudPermanent-узлы только в рамках одной группы.
- Изменения в мониторинге:
- добавлена возможность мониторинга сертификатов в секретах типа
Opaque
; - добавлена возможность мониторинга образов в Amazon ECR;
- исправлена ошибка, из-за которой при перезапуске экземпляров Prometheus могла потеряться часть метрик.
- добавлена возможность мониторинга сертификатов в секретах типа
-
При использовании мультикластерной конфигурации Istio или федерации, теперь можно явно указать список адресов ingressgateway, которые нужно использовать для организации межкластерных запросов. Ранее эти адреса вычислялись только автоматически, но в некоторых конфигурациях их определить невозможно.
-
У аутентификатора (ресурс DexAuthenticator) появился параметр
highAvailability
, который управляет режимом высокой доступности. В режиме высокой доступности запускается несколько реплик аутентификатора. Ранее режим высокой доступности всех аутентификаторов определялся настройками глобального параметра или настройками модуляuser-authn
. Все аутентификаторы, развёрнутые самим DKP, теперь наследуют режим высокой доступности соответствующего модуля. -
Лейблы узлов теперь можно добавлять, удалять и изменять, используя файлы, хранящиеся на узле в директории
/var/lib/node_labels
и её поддиректориях. Полный набор применённых лейблов хранится в аннотацииnode.deckhouse.io/last-applied-local-labels
. -
Добавлена поддержка облачного провайдера Huawei Cloud.
-
Новый параметр
keepDeletedFilesOpenedFor
в модулеlog-shipper
позволяет настроить период, в течение которого будут храниться открытыми удалённые файлы логов. Опция позволит какое-то время читать логи удалённых подов в случае недоступности хранилища логов. -
TLS-шифрование для сборщиков логов (Elasticsearch, Vector, Loki, Splunk, Logstash, Socket, Kafka) теперь можно настроить, используя секреты, вместо хранения сертификатов в ресурсах ClusterLogDestination. Секрет должен находиться в пространстве имён
d8-log-shipper
и иметь лейблlog-shipper.deckhouse.io/watch-secret: true
. -
В статусе проекта в разделе
resources
теперь можно увидеть, какие ресурсы проекта были установлены. Такие ресурсы будут отмечены флагомinstalled: true
. - В инсталлятор добавлен параметр
--tf-resource-management-timeout
, позволяющий управлять таймаутом создания ресурсов в облаках. По умолчанию таймаут составляет 10 минут. Параметр имеет влияние только для следующих облаков: AWS, Azure, GCP, Yandex Cloud, OpenStack, Базис.DynamiX.
Безопасность
Закрыты известные уязвимости в следующих модулях:
admission-policy-engine
chrony
cloud-provider-azure
cloud-provider-gcp
cloud-provider-openstack
cloud-provider-yandex
cloud-provider-zvirt
cni-cilium
control-plane-manager
extended-monitoring
descheduler
documentation
ingress-nginx
istio
loki
metallb
monitoring-kubernetes
monitoring-ping
node-manager
operator-trivy
pod-reloader
prometheus
prometheus-metrics-adapter
registrypackages
runtime-audit-engine
terraform-manager
user-authn
vertical-pod-autoscaler
static-routing-manager
Обновление версий компонентов
Обновлены следующие компоненты DKP:
- Kubernetes Control Plane: 1.29.14, 1.30.10, 1.31.6
aws-node-termination-handler
: 1.22.1capcd-controller-manager
: 1.3.2cert-manager
: 1.16.2chrony
: 4.6.1cni-flannel
: 0.26.2docker_auth
: 1.13.0flannel-cni
: 1.6.0-flannel1gatekeeper
: 3.18.1jq
: 1.7.1kubernetes-cni
: 1.6.2kube-state-metrics
: 2.14.0vector
(log-shipper
): 0.44.0prometheus
: 2.55.1snapshot-controller
: 8.2.0yq4
: 3.45.1
Перезапуск компонентов
После обновления DKP до версии 1.68 будут перезапущены следующие компоненты:
- Kubernetes Control Plane
- Ingress controller
- Prometheus, Grafana
admission-policy-engine
chrony
cloud-provider-azure
cloud-provider-gcp
cloud-provider-openstack
cloud-provider-yandex
cloud-provider-zvirt
cni-cilium
control-plane-manager
descheduler
documentation
extended-monitoring
ingress-nginx
istio
kube-state-metrics
log-shipper
loki
metallb
monitoring-kubernetes
monitoring-ping
node-manager
openvpn
operator-trivy
prometheus
prometheus-metrics-adapter
pod-reloader
registrypackages
runtime-audit-engine
service-with-healthchecks
static-routing-manager
terraform-manager
user-authn
vertical-pod-autoscaler