Облачная платформаAdvanced

Kubernetes 1.27 (EOM) Release Notes

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

CCE прошла сертификацию программы соответствия Kubernetes и является сертифицированным предложением Kubernetes. Теперь CCE поддерживает функции кластера Kubernetes версии 1.27. Этот раздел описывает изменения, внесенные в Kubernetes 1.27 по сравнению с Kubernetes 1.25.

Индекс

Новые возможности

Kubernetes 1.27

  • SeccompDefault стабилен.

    Чтобы использовать SeccompDefault, добавьте флаг командной строки --seccomp-default используя kubelet на каждом узле. Если эта функция включена, профиль RuntimeDefault будет использоваться по умолчанию для всех рабочих нагрузок вместо профиля Unconfined (seccomp отключён).

  • Директивы планирования задач настраиваются.

    Эта возможность была представлена в Kubernetes 1.22 и стала стабильной в Kubernetes 1.27. Обычно вы используете задачу для того, чтобы повлиять на то, где будут выполняться поды, например, все в одной зоне доступности. Эта особенность позволяет изменять директивы планирования перед началом задачи. Вы можете приостановить выполнение задачи с помощью поля suspend. Во время фазы приостановки можно изменить директивы планирования (такие как селектор узлов, привязка к узлам, анти-привязка и допуски), указанные в шаблоне пода задачи. Для подробностей см. Изменяемые директивы планирования

  • Поддержка огромных страниц Downward API стабилизирована.

    В Kubernetes 1.20 были введены requests.hugepages-<pagesize> и limits.hugepages-<pagesize> в downward API. Запросы и ограничения могут быть настроены для больших страниц так же, как и для других ресурсов.

  • Готовность планировщика подов перешла в бета-версию.

    После создания пода планировщик Kubernetes выбирает подходящий узел для выполнения пода в состоянии ожидания. На практике некоторые поды могут оставаться в ожидании длительное время из-за нехватки ресурсов. Эти поды могут влиять на работу других компонентов, таких как Cluster Autoscaler, в кластере. Указывая или удаляя поле .spec.schedulingGates для пода, вы можете контролировать момент готовности пода к планированию. Подробности см. в разделе Готовность планировщика подов

  • Доступ к логам узла через Kubernetes API поддерживается.

    Данная функция находится на этапе альфа-тестирования. Администратор кластера может напрямую запрашивать журналы узлов для отладки неисправных сервисов, работающих на узле. Чтобы воспользоваться этой функцией, убедитесь, что для данного узла включен параметр конфигурации kubelet "NodeLogQuery" и опции feature gate enableSystemLogHandler и enableSystemLogQuery установлены в значение trueРежим доступа ReadWriteOncePod перешёл в бета-версию.

  • Kubernetes 1.22 ввёл режим доступа ReadWriteOncePod для PV и PVC. Данная функция эволюционировала до стадии бета-версии. Том может быть примонтирован к одному поду в режиме чтения/записи. Используйте этот режим доступа, если хотите убедиться, что только один под в кластере может читать PVC или записывать в него. Подробнее см.

    Режимы доступаПоле

  • matchLabelKeys в ограничении топологии подов переходит в бета-версию.matchLabelKeys

    представляет собой список ключей меток подов. Он используется для выбора группы подов, среди которых будет рассчитываться распространение. С использованием matchLabelKeys, вам не требуется обновлять pod.spec между различными ревизиями. Контроллер или оператор просто должен установить разные значения одного и того же ключа метки для разных ревизий. Планировщик автоматически определит значения на основе matchLabelKeys. Более подробно см. Ограничения распределения топологии подов

  • Функция эффективного присвоения меток томам SELinux переведена в бета-версию.

    По умолчанию среда выполнения контейнера рекурсивно присваивает метку SELinux всем файлам во всех объёмах подов. Для ускорения этого процесса Kubernetes использует опцию монтирования -o context=<label> для немедленного задания метки SELinux тома. Подробнее см. Эффективное повторное присвоение меток тому SELinux

  • Реконструкция VolumeManager переведена в бета-версию.

    После реконструкции VolumeManager, если включено свойство конфигурации feature gate NewVolumeManagerReconstruction, тома, уже установленные при запуске kubelet, будут получены более эффективно.

  • Проверка полей сервером и OpenAPI V3 стали стабильными.

    OpenAPI V3 был добавлен в Kubernetes 1.23. В Kubernetes 1.24 он перешел в стадию бета-тестирования. В Kubernetes 1.27 он стал стабильным.

  • Начальные порядковые номера StatefulSet перешли в бета-версию.

    Kubernetes 1.26 представил новую функцию уровня альфа для StatefulSets, позволяющую управлять нумерацией реплик подов. Начиная с Kubernetes 1.27, данная функция переходит в бета-стадию. Начальные порядковые номера могут начинаться с произвольного неотрицательного числа. См. подробнее Kubernetes 1.27: упрощает миграцию начального порядкового номера StatefulSet

  • Метрика ContainerResource в HorizontalPodAutoscaler перешла в бета-версию.Kubernetes 1.20 представил

    метрики контейнерных ресурсовв горизонтальных автомасштаберах подов (HPAs). В Kubernetes 1.27 эта функция переходит в бета-версию, а шлюз функции HPAContainerMetrics по умолчанию включен.

  • Автоматическое удаление PVC StatefulSet переходит в стадию бета-тестирования.

    Kubernetes 1.27 предоставляет новую политику для контроля жизненного цикла PVC StatefulSets. Эта политика позволяет пользователям указать, следует ли автоматически удалять или сохранять PVC, созданные из шаблона спецификации StatefulSet, когда StatefulSet удаляется или реплики в StatefulSet масштабируются вниз. Для получения дополнительной информации см.PersistentVolumeClaim retention.

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

    Снимки группы томов представлены как альфа-функция в Kubernetes 1.27. Эта функция позволяет пользователям создавать снимки нескольких томов для обеспечения согласованности данных в случае сбоя. Она использует селектор меток для группировки нескольких PVC для снимков. Эта функция поддерживает только драйверы томов CSI. Подробнее см.Kubernetes 1.27: Introducing an API for Volume Group Snapshots.

  • kubectl applyудаление становится более безопасным и эффективным.

    В Kubernetes 1.5 был представлен флаг --prune в kubectl applyдля удаления ненужных ресурсов. Это позволило kubectl applyавтоматически очищать ресурсы, удаленные из текущей конфигурации. Однако существующая реализация флага --pruneимеет недостатки проектирования, которые снижают производительность и приводят к неожиданному поведению. В Kubernetes 1.27 команда kubectl applyпредоставляет обрезку на основе ApplySet, которая находится в стадии альфа-тестирования. Подробную информацию см.Declarative Management of Kubernetes Objects Using Configuration Files.

  • Можно избежать конфликтов при выделении портов службе NodePort.

    В Kubernetes 1.27 вы можете включить новый флаг функции ServiceNodePortStaticSubrange для использования различных политик выделения портов для сервисов NodePort. Это снижает риск возникновения конфликтов портов. Функция находится в фазе альфа.

  • Поддерживается изменение размера ресурсов, назначенных подам, без перезапуска контейнеров.

    Kubernetes 1.27 позволяет пользователям изменять размер ЦПУ и памяти, назначаемых подам, без перезагрузки контейнера. Эта функция находится в фазе альфа. Подробности см.Kubernetes 1.27: In-place Resource Resize for Kubernetes Pods (alpha).

  • Запуск пода ускоряется.

    В Kubernetes 1.27 внесены изменения ряда параметров, таких как параллельная загрузка образов и увеличенный предел запросов API по умолчанию для kubelet в секунду, чтобы ускорить запуск пода. Подробности см.Kubernetes 1.27: updates on speeding up Pod startup.

  • KMS V2 переходит в бета-версию.

    Интерфейс API KMS V2 для управления ключами переходит в бета-версию. Это значительно улучшило производительность поставщика шифрования KMS. Подробности см.Using a KMS provider for data encryption.

Kubernetes 1.26

  • Удалён интерфейс CRI v1alpha2.

    Kubernetes 1.26 больше не поддерживает интерфейс CRI v1alpha2. Используйте интерфейс CRI v1 (версия containerd должна быть 1.5.0 или выше). В Kubernetes 1.26 не поддерживается версия containerd 1.5.x или ранее. Перед обновлением kubelet до версии 1.26 убедитесь, что ваша версия containerd равна 1.6.x или выше.

    Note

    Версия containerd, используемая в CCE, составляет 1.6.14, что соответствует требованиям. Если существующие узлы не соответствуют требованиям к версии containerd, сбросьте их до последней версии.

  • Добавлен альфа-интерфейс динамического распределения ресурсов.

    В Kubernetes 1.26 добавлена возможность Dynamic Resource Allocationдля запроса и совместного использования ресурсов между подами и между контейнерами в одном поде. Ресурсы инициализируются на основании параметров, предоставляемых пользователем. Данная функция пока находится в фазе альфа. Необходимо активировать шлюз функций DynamicResourceAllocation и группу API resource.k8s.io/v1alpha1. Также необходимо установить драйверы для конкретных управляемых ресурсов. Более подробную информацию можно найти здесь:Kubernetes 1.26: Alpha API for Dynamic Resource Allocation.

  • Функция некорректного завершения работы узла переходит в бета-версию.

    В Kubernetes 1.26 функция некорректного завершения работы узла перешла в бета-версию и включена по умолчанию. Завершение работы узла может происходить корректно только в том случае, если менеджер завершения работы узла kubelet способен обнаружить предстоящую операцию завершения работы узла. Подробности см.Non-graceful node shutdown handling.

  • Передача fsGroup пода драйверам CSI во время монтирования поддерживается.В Kubernetes 1.22 делегирование fsGroup

    драйверам CSI впервые появилось как альфа-функция. В Kubernetes 1.25 она перешла в статус бета. В Kubernetes 1.26 данная функция вступает в официальную фазу выпуска. Подробности см.Delegating volume permission and ownership change to CSI driver.

  • Подготовленность планирования подов введена.

    Kubernetes 1.26 вводит новую функцию schedulingGates, позволяющую планировщику определять момент выполнения планирования пода. Подробности см.Pod Scheduling Readiness.

  • Менеджер ЦПУ официально выпущен.

    Менеджер ЦПУ является частью kubelet. С момента появления в Kubernetes 1.10 он перешел в состояние beta. Менеджер ЦПУ может выделять эксклюзивные процессоры контейнерам. Эта функция стабильна в Kubernetes 1.26. Подробности см.Control CPU Management Policies on the Node.

  • Инженерия трафика Kubernetes продвинута.

    Оптимизация внутреннего локального сетевого трафика узлов и EndpointSlice conditions обновляются до официальной версии выпуска. ProxyTerminatingEndpoints переходит в бета-версию.

  • Поддерживаются межпространственные источники данных для томов.

    Эта функция позволяет указать источник данных, который принадлежит разным пространствам имен для PVC. Эта функция находится на стадии альфа. Для получения дополнительной информации см. Cross namespace data sources.

  • Назначение ретроактивного класса хранилища по умолчанию переходит в стадию бета-тестирования.

    В Kubernetes 1.25 была представлена альфа-функция, которая изменяет способ назначения стандартного класса хранилища для PVC. После включения этой функции вам больше не нужно создавать стандартный класс хранилища, а затем создавать PVC для присвоения этого класса. Кроме того, любые PVC без назначенного класса хранилища могут быть позже обновлены. Эта функция переходит в версию Beta в Kubernetes 1.26. Подробности см. в разделе Retroactive default StorageClass assignment.

  • PodDisruptionBudget позволяет пользователям задавать политики исключения неисправных подов.

    Вы можете задать политику исключений для неисправных подов для PodDisruptionBudget (PDB). Эта функция помогает обеспечить доступность узлов во время управления узлами. Функция находится на этапе бета-тестирования. Подробнее см. раздел Unhealthy Pod Eviction Policy.

  • Можно настроить количество горизонтальных автомасштаберов подов (HPAs).

    kube-controller-manager разрешает использовать параметр --concurrent-horizontal-pod-autoscaler-syncs для настройки количества рабочих узлов автомасштабера подов для горизонтального масштабирования.

Deprecations and Removals

Kubernetes 1.27

  • В Kubernetes 1.27 удалены флаги функций, используемые для расширения тома и находящиеся в статусе GA, включая ExpandCSIVolumes, ExpandInUsePersistentVolumes и ExpandPersistentVolumes. Они больше не могут быть указаны в параметре --feature-gates.
  • Параметр --master-service-namespace удалён. Этот параметр указывает пространство имён, где необходимо создать сервис с именем kubernetes для представления сервера API. Параметр был объявлен устаревшим в Kubernetes 1.26 и удалён из Kubernetes 1.27.
  • Удалён флаг функции ControllerManagerLeaderMigration. Leader Migration предоставляет механизм для безопасных миграций контроллеров кластеров высокой доступности с использованием общего ресурса блокировки между kube-controller-manager и cloud-controller-manager при обновлении реплицированного контрольного плана. Эта функция была включена по умолчанию со времени её релиза в Kubernetes 1.24. В Kubernetes 1.27 эта функция удаляется.
  • Параметр --enable-taint-manager удалён. Поддерживаемая этим параметром функция, основанная на загрязнении эвикшн, включена по умолчанию. Она будет продолжать включаться неявным образом после удаления флага.
  • Параметр --pod-eviction-timeout удалён из kube-controller-manager.
  • Флаг функции CSIMigration удалён. Программа миграции CSI migration обеспечивает плавную миграцию от встроенных плагинов объёмов к внешним драйверам CSI. Эта функция официально выпущена в Kubernetes 1.16.
  • Флаг функции CSIInlineVolume удалён. Эта функция (CSI Ephemeral Volume) позволяет указывать объёмы CSI непосредственно в спецификации пода для использования в эфемерных случаях. Их можно использовать для внедрения произвольных состояний, таких как конфигурация, секреты, идентификационные данные, переменные или аналогичная информация прямо внутрь пода через монтированный том. Эта функция перешла в статус GA в Kubernetes 1.25 и удалена в Kubernetes 1.27.
  • Флаг функции EphemeralContainers удалён. Для Kubernetes 1.27 поддержка API временных контейнеров включена безусловно.
  • Флаг функции LocalStorageCapacityIsolation удалён. Этот флаг функции (Local Ephemeral Storage Capacity Isolation) перешёл в статус GA в Kubernetes 1.25. Функция предоставляет поддержку изоляции ёмкости локального временного хранилища между подами, например пустых томов типа emptyDir, так что потребление ресурсов может быть ограничено для отдельного пода. Если использование локального временного хранилища подом превышает настроенный лимит, kubelet выгрузит этот под.
  • Флаг функции NetworkPolicyEndPort удалён. В Kubernetes 1.25 поле endPort в NetworkPolicy перешло в статус GA. Поставщики NetworkPolicy, поддерживающие поле endPort, могут использоваться для указания диапазона портов для применения правил NetworkPolicy.
  • Флаг функции StatefulSetMinReadySeconds удалён. Для пода, являющегося частью StatefulSet, Kubernetes помечает под как доступный только для чтения, когда под доступен (и проходит проверку) в течение периода, указанного в minReadySeconds. Эта функция официально вышла в Kubernetes 1.25. Она заблокирована в значении true и удалена из Kubernetes 1.27.
  • Флаг функции IdentifyPodOS удалён. При включении этой функции вы можете указать операционную систему для пода. С момента выхода Kubernetes 1.25 она является стабильной. Эта функция удалена из Kubernetes 1.27.
  • Флаг функции DaemonSetUpdateSurge удалён. В Kubernetes 1.25 эта функция стала стабильной. Она была реализована для минимизации простоев DaemonSet во время развёртывания, но она удалена из Kubernetes 1.27.
  • Параметр --container-runtime удалён. kubelet принимает устаревший параметр --container-runtime. После удаления кода dockershim единственным допустимым значением для этого параметра станет remote. Этот параметр устарел начиная с версии 1.24 и последующих версий и удалён из Kubernetes 1.27.

Kubernetes 1.26

Ссылки

Для получения дополнительной информации о сравнении производительности и функционального развития между Kubernetes 1.27 и другими версиями ознакомьтесь со следующими документами:

Kubernetes v1.27 Release NotesKubernetes v1.26 Release NotesРодительская тема:

Kubernetes Version Release Notes