Compare languages | Release notes for Deckhouse Kubernetes Platform

Version 1.69

Версия 1.69

Important

Обратите внимание

  • Support for Kubernetes 1.32 has been added, while support for Kubernetes 1.27 has been discontinued. The default Kubernetes version has been changed to 1.30. In future DKP releases, support for Kubernetes 1.28 will be removed.
  • Добавлена поддержка Kubernetes 1.32 и прекращена поддержка Kubernetes 1.27. Версия Kubernetes используемая по умолчанию изменена на 1.30. В будущих релизах DKP поддержка Kubernetes 1.28 будет прекращена.
  • All DKP components will be restarted during the update.
  • Все компоненты DKP будут перезапущены в процессе обновления.

Major changes

Основные изменения

  • The ceph-csi module is now deprecated. Plan to migrate to the csi-ceph module instead. For details, refer to the Ceph documentation.
  • Модуль ceph-csi считается устаревшим. Запланируйте переход на модуль csi-ceph. Подробнее о работе с Ceph читайте в документации.
  • You can now grant access to Deckhouse web interfaces using user names via the auth.allowedUserEmails field. Access restriction is configured together with the auth.allowedUserGroups parameter in configuration of the following modules with web interfaces: cilium-hubble, dashboard, deckhouse-tools, documentation, istio, openvpn, prometheus, and upmeter (example for prometheus).
  • Теперь можно выдавать доступ к веб-интерфейсам Deckhouse по именам пользователей с помощью поля auth.allowedUserEmails. Разграничение доступа настраивается одновременно с параметром auth.allowedUserGroups в конфигурации модулей с веб-интерфейсами: cilium-hubble, dashboard, deckhouse-tools, documentation, istio, openvpn, prometheus и upmeter (пример для модуля prometheus).
  • A new dashboard Cilium Nodes Connectivity Status & Latency has been added to Grafana in the cni-cilium module. It helps monitor node network connectivity issues. The dashboard displays a connectivity matrix similar to the cilium-health status command, using metrics that are already available in Prometheus.
  • Для модуля cni-cilium добавлен дашборд Cilium Nodes Connectivity Status & Latency в Grafana, который позволяет отслеживать проблемы с сетевой связностью между узлами. Дашборд отображает матрицу доступности, аналогичную выводу команды cilium-health status. Данные собираются из метрик, которые уже доступны в Prometheus.
  • A new D8KubernetesStaleTokensDetected alert has been added in the control-plane-manager module that is triggered when stale service account tokens are detected in the cluster.
  • Для модуля control-plane-manager добавлен алерт D8KubernetesStaleTokensDetected, который срабатывает при обнаружении в кластере устаревших токенов сервисных аккаунтов.
  • You can now create a Project from an existing namespace and adopt existing objects into it. To do this, annotate the namespace and its resources with projects.deckhouse.io/adopt. This lets you switch to using Projects without recreating cluster resources.
  • Появилась возможность создавать проект на основе существующего пространства имен, а также включать существующие объекты в проект. Для этого на пространство имен и расположенные в нем объекты необходимо установить аннотацию projects.deckhouse.io/adopt. Это позволяет перейти на использование проектов без пересоздания ресурсов в кластере.
  • A Terminating status has been added to ModuleSource and ModuleRelease resources. The new status will be displayed when an attempt to delete one of them fails.
  • Добавлен статус Terminating для ресурсов ModuleSource и ModuleRelease, который будет отображаться в случае неудачной попытки удаления этих ресурсов.
  • The installer container now automatically configures cluster access after a successful bootstrap. A kubeconfig file is generated in ~/.kube/config, and a local TCP proxy is set up through an SSH tunnel. This allows you to use kubectl locally right away without manually connecting to the control-plane node via SSH.
  • В контейнере установщика теперь автоматически настраивается доступ к управлению кластером после успешного развёртывания (генерируется kubeconfig в ~/.kube/config, а также настраивается локальный TCP-прокси через SSH-туннель). Это позволяет сразу использовать kubectl локально, без необходимости вручную подключаться к узлу с control plane по SSH.
  • Changes to Kubernetes resources in multi-cluster and federation setups are now tracked directly via Kubernetes API. This enables faster synchronization between clusters and eliminates the use of outdated certificates. In addition, mounting of ConfigMap and Secret resources into Pods has been removed to eliminate family system compromise risks.
  • Теперь изменения в ресурсах Kubernetes при мультикластерных и федеративных конфигурациях отслеживаются напрямую через API Kubernetes. Это ускоряет синхронизацию данных между кластерами и исключает использование устаревших сертификатов. Также теперь полностью исключено монтирование ConfigMap и Secret в подах, что устраняет риски, связанные с компрометацией файловой системы внутри контейнеров.
  • A new dynamicforward plugin has been added to CoreDNS, improving DNS query processing in the cluster. It integrates with node-local-dns, continuously monitors kube-dns endpoints, and automatically updates the list of DNS forwarders. If the control-plane node is unavailable, DNS queries are still forwarded to available endpoints, improving cluster stability.
  • В CoreDNS добавлен новый плагин dynamicforward, который улучшает процесс обработки DNS-запросов в кластере. Плагин интегрируется с модулем node-local-dns и постоянно отслеживает изменения на эндпоинтах kube-dns, автоматически обновляя список DNS-переадресаторов. Если узел с control plane становится недоступен, DNS-запросы продолжают перенаправляться к доступным эндпоинтам, что повышает стабильность работы кластера.
  • A new log rotation approach has been introduced in the loki module. Now, old logs are automatically removed when disk usage exceeds a threshold: either 95% of PVC size or PVC size minus the size required to store two minutes of log data at the configured ingestion rate (ingestionRateMB). The retentionPeriodHours parameter no longer controls the data retention and is used for monitoring alerts only. If loki begins removing old logs before the set period is reached, a LokiRetentionPerionViolation alert will be triggered, informing the user that they must reduce the value of retentionPeriodHours or increase the PVC size.
  • В модуле loki реализована новая стратегия ротации логов. Теперь старые записи удаляются автоматически при достижении порога использования диска. Порог рассчитывается как минимум из двух значений: 95% размера PVC или размер PVC за вычетом объёма, необходимого для хранения двух минут логов при заданной скорости приёма (ingestionRateMB). Параметр retentionPeriodHours больше не управляет сроком хранения данных и используется только для алертов мониторинга. Если loki начнёт удалять записи до истечения заданного периода, пользователю будет отправлен алерт LokiRetentionPerionViolation и будет необходимо уменьшить значение retentionPeriodHours, либо увеличить размер PVC.
  • A new nodeDrainTimeoutSecond parameter lets you set the maximum timeout when attempting to drain a node (in seconds) for each NodeGroup resource. Previously, you could only use the default value (10 minutes) or reduce it to 5 minutes using the quickShutdown parameter, which is now deprecated.
  • Добавлен параметр nodeDrainTimeoutSecond, который позволяет задать максимальную продолжительность попыток выполнения операции drain на узле (в секундах) для каждого ресурса NodeGroup. Ранее можно было использовать либо вариант по умолчанию (10 минут), либо уменьшить время до 5 минут (параметр quickShutdown, который теперь следует считать устаревшим).
  • В настройках модуля openvpn теперь можно указать значение нового параметра defaultClientCertExpirationDays, который задаёт срок действия клиентских сертификатов.

Security

Безопасность

Known vulnerabilities have been addressed in the following modules: ingress-nginx, istio, prometheus, and local-path-provisioner.

Закрыты известные уязвимости в модулях ingress-nginx, istio, prometheus и local-path-provisioner.

Component version updates

Обновление версий компонентов

The following DKP components have been updated:

Обновлены следующие компоненты DKP:

  • cert-manager: 1.17.1
  • dashboard: 1.6.1
  • dex: 2.42.0
  • go-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.0
  • local-path-provisioner: 0.0.31
  • machine-controller-manager: v0.36.0-flant.19
  • pod-reloader: 1.2.1
  • prometheus: 2.55.1
  • Terraform providers:
  • OpenStack: 1.54.1
  • vCD: 3.14.1
  • cert-manager: 1.17.1
  • dashboard: 1.6.1
  • dex: 2.42.0
  • go-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.0
  • local-path-provisioner: 0.0.31
  • machine-controller-manager: v0.36.0-flant.19
  • pod-reloader: 1.2.1
  • prometheus: 2.55.1
  • Terraform-провайдеры:
  • OpenStack: 1.54.1
  • vCD: 3.14.1

Version 1.68

Версия 1.68

Important

Обратите внимание

  • After the update, the UID will change for all Grafana data sources created using the GrafanaAdditionalDatasource resource. If a data source was referenced by UID, that reference will no longer be valid.
  • После обновления у всех источников данных (DataSource) Grafana, созданных с помощью ресурса GrafanaAdditionalDatasource, изменится UID. Если на источник данных ссылались по UID, то такая связь нарушится.

Major changes

Основные изменения

  • A new parameter, iamNodeRole, has been introduced for the AWS provider. It lets you specify the name of the IAM role to bind to all AWS instances of cluster nodes. This can come in handy if you need to grant additional permissions (for example, access to ECR, etc.).
  • Новый параметр iamNodeRole для провайдера AWS. Параметр позволяет задать имя IAM-роли, которая будет привязана ко всем AWS-инстансам узлов кластера. Это может потребоваться, если в IAM-роль узла нужно добавить больше прав (например, доступ к ECR и т.п.)
  • Creating nodes of the CloudPermanent type now takes less time. Now, CloudPermanent nodes are created in parallel. Previously, they were created in parallel only within a single group.
  • Ускорено создание узлов с типом CloudPermanent. Теперь все такие узлы создаются параллельно. Ранее параллельно создавались CloudPermanent-узлы только в рамках одной группы.
  • Monitoring changes:
  • Support for monitoring certificates in secrets of the Opaque type has been added.
  • Support for monitoring images in Amazon ECR has been added.
  • A bug that could cause partial loss of metrics when Prometheus instances were restarted has been fixed.
  • Изменения в мониторинге:
  • добавлена возможность мониторинга сертификатов в секретах типа Opaque;
  • добавлена возможность мониторинга образов в Amazon ECR;
  • исправлена ошибка, из-за которой при перезапуске экземпляров Prometheus могла потеряться часть метрик.
  • When using a multi-cluster Istio configuration or federation, you can now explicitly specify the list of addresses used for inter-cluster requests. Previously, these addresses were determined automatically; however, in some configurations, they could not be resolved.
  • При использовании мультикластерной конфигурации Istio или федерации, теперь можно явно указать список адресов ingressgateway, которые нужно использовать для организации межкластерных запросов. Ранее эти адреса вычислялись только автоматически, но в некоторых конфигурациях их определить невозможно.
  • The DexAuthenticator resource now has a highAvailability parameter that controls high availability mode. In high availability mode, multiple replicas of the authenticator are launched. Previously, high availability mode of all authenticators was determined by a global parameter or by the user-authn module. All authenticators deployed by DKP now inherit the high availability mode of the corresponding module.
  • У аутентификатора (ресурс DexAuthenticator) появился параметр highAvailability, который управляет режимом высокой доступности. В режиме высокой доступности запускается несколько реплик аутентификатора. Ранее режим высокой доступности всех аутентификаторов определялся настройками глобального параметра или настройками модуля user-authn. Все аутентификаторы, развёрнутые самим DKP, теперь наследуют режим высокой доступности соответствующего модуля.
  • Node labels can now be added, removed, or modified using files stored on the node in the /var/lib/node_labels directory and its subdirectories. The full set of applied labels is stored in the node.deckhouse.io/last-applied-local-labels annotation.
  • Лейблы узлов теперь можно добавлять, удалять и изменять, используя файлы, хранящиеся на узле в директории /var/lib/node_labels и её поддиректориях. Полный набор применённых лейблов хранится в аннотации node.deckhouse.io/last-applied-local-labels.
  • The new keepDeletedFilesOpenedFor parameter in the log-shipper module allows you to configure the period to keep the deleted log files open. This way, you can continue reading logs from deleted pods for some time if log storage is temporarily unavailable.
  • Новый параметр keepDeletedFilesOpenedFor в модуле log-shipper позволяет настроить период, в течение которого будут храниться открытыми удалённые файлы логов. Опция позволит какое-то время читать логи удалённых подов в случае недоступности хранилища логов.
  • TLS encryption for log collectors (Elasticsearch, Vector, Loki, Splunk, Logstash, Socket, Kafka) can now be configured using secrets, rather than by storing certificates in the ClusterLogDestination resources. The secret must reside in the d8-log-shipper namespace and have the log-shipper.deckhouse.io/watch-secret: true label.
  • TLS-шифрование для сборщиков логов (Elasticsearch, Vector, Loki, Splunk, Logstash, Socket, Kafka) теперь можно настроить, используя секреты, вместо хранения сертификатов в ресурсах ClusterLogDestination. Секрет должен находиться в пространстве имён d8-log-shipper и иметь лейбл log-shipper.deckhouse.io/watch-secret: true.
  • In the project status under the resources section, you can now see which project resources have been installed. Those resources are marked with installed: true.
  • В статусе проекта в разделе resources теперь можно увидеть, какие ресурсы проекта были установлены. Такие ресурсы будут отмечены флагом installed: true.
  • A new parameter, --tf-resource-management-timeout, has been added to the installer. It controls the resource creation timeout in cloud environments. By default, the timeout is set to 10 minutes. This parameter applies only to the following clouds: AWS, Azure, GCP, OpenStack.
  • В инсталлятор добавлен параметр --tf-resource-management-timeout, позволяющий управлять таймаутом создания ресурсов в облаках. По умолчанию таймаут составляет 10 минут. Параметр имеет влияние только для следующих облаков: AWS, Azure, GCP, Yandex Cloud, OpenStack, Базис.DynamiX.

Security

Безопасность

Known vulnerabilities have been addressed in the following modules:

Закрыты известные уязвимости в следующих модулях:

  • 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
  • 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

Component version updates

Обновление версий компонентов

The following DKP components have been updated:

Обновлены следующие компоненты DKP:

  • Kubernetes Control Plane: 1.29.14, 1.30.10, 1.31.6
  • aws-node-termination-handler: 1.22.1
  • capcd-controller-manager: 1.3.2
  • cert-manager: 1.16.2
  • chrony: 4.6.1
  • cni-flannel: 0.26.2
  • docker_auth: 1.13.0
  • flannel-cni: 1.6.0-flannel1
  • gatekeeper: 3.18.1
  • jq: 1.7.1
  • kubernetes-cni: 1.6.2
  • kube-state-metrics: 2.14.0
  • vector (log-shipper): 0.44.0
  • prometheus: 2.55.1
  • snapshot-controller: 8.2.0
  • yq4: 3.45.1
  • Kubernetes Control Plane: 1.29.14, 1.30.10, 1.31.6
  • aws-node-termination-handler: 1.22.1
  • capcd-controller-manager: 1.3.2
  • cert-manager: 1.16.2
  • chrony: 4.6.1
  • cni-flannel: 0.26.2
  • docker_auth: 1.13.0
  • flannel-cni: 1.6.0-flannel1
  • gatekeeper: 3.18.1
  • jq: 1.7.1
  • kubernetes-cni: 1.6.2
  • kube-state-metrics: 2.14.0
  • vector (log-shipper): 0.44.0
  • prometheus: 2.55.1
  • snapshot-controller: 8.2.0
  • yq4: 3.45.1

Mandatory component restart

Перезапуск компонентов

The following components will be restarted after updating DKP to 1.68:

После обновления 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
  • 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