CCE прошла сертификацию программы соответствия Kubernetes и является сертифицированным предложением Kubernetes. Теперь CCE поддерживает функции кластера Kubernetes версии 1.27. Этот раздел описывает изменения, внесенные в Kubernetes 1.27 по сравнению с Kubernetes 1.25.
Kubernetes 1.27
Чтобы использовать SeccompDefault, добавьте флаг командной строки --seccomp-default используя kubelet на каждом узле. Если эта функция включена, профиль RuntimeDefault будет использоваться по умолчанию для всех рабочих нагрузок вместо профиля Unconfined (seccomp отключён).
Эта возможность была представлена в Kubernetes 1.22 и стала стабильной в Kubernetes 1.27. Обычно вы используете задачу для того, чтобы повлиять на то, где будут выполняться поды, например, все в одной зоне доступности. Эта особенность позволяет изменять директивы планирования перед началом задачи. Вы можете приостановить выполнение задачи с помощью поля suspend. Во время фазы приостановки можно изменить директивы планирования (такие как селектор узлов, привязка к узлам, анти-привязка и допуски), указанные в шаблоне пода задачи. Для подробностей см. Изменяемые директивы планирования
В Kubernetes 1.20 были введены requests.hugepages-<pagesize> и limits.hugepages-<pagesize> в downward API. Запросы и ограничения могут быть настроены для больших страниц так же, как и для других ресурсов.
После создания пода планировщик Kubernetes выбирает подходящий узел для выполнения пода в состоянии ожидания. На практике некоторые поды могут оставаться в ожидании длительное время из-за нехватки ресурсов. Эти поды могут влиять на работу других компонентов, таких как Cluster Autoscaler, в кластере. Указывая или удаляя поле .spec.schedulingGates для пода, вы можете контролировать момент готовности пода к планированию. Подробности см. в разделе Готовность планировщика подов
Данная функция находится на этапе альфа-тестирования. Администратор кластера может напрямую запрашивать журналы узлов для отладки неисправных сервисов, работающих на узле. Чтобы воспользоваться этой функцией, убедитесь, что для данного узла включен параметр конфигурации kubelet "NodeLogQuery" и опции feature gate enableSystemLogHandler и enableSystemLogQuery установлены в значение trueРежим доступа ReadWriteOncePod перешёл в бета-версию.
Режимы доступаПоле
представляет собой список ключей меток подов. Он используется для выбора группы подов, среди которых будет рассчитываться распространение. С использованием matchLabelKeys, вам не требуется обновлять pod.spec между различными ревизиями. Контроллер или оператор просто должен установить разные значения одного и того же ключа метки для разных ревизий. Планировщик автоматически определит значения на основе matchLabelKeys. Более подробно см. Ограничения распределения топологии подов
По умолчанию среда выполнения контейнера рекурсивно присваивает метку SELinux всем файлам во всех объёмах подов. Для ускорения этого процесса Kubernetes использует опцию монтирования -o context=<label> для немедленного задания метки SELinux тома. Подробнее см. Эффективное повторное присвоение меток тому SELinux
После реконструкции VolumeManager, если включено свойство конфигурации feature gate NewVolumeManagerReconstruction, тома, уже установленные при запуске kubelet, будут получены более эффективно.
OpenAPI V3 был добавлен в Kubernetes 1.23. В Kubernetes 1.24 он перешел в стадию бета-тестирования. В Kubernetes 1.27 он стал стабильным.
Kubernetes 1.26 представил новую функцию уровня альфа для StatefulSets, позволяющую управлять нумерацией реплик подов. Начиная с Kubernetes 1.27, данная функция переходит в бета-стадию. Начальные порядковые номера могут начинаться с произвольного неотрицательного числа. См. подробнее Kubernetes 1.27: упрощает миграцию начального порядкового номера StatefulSet
метрики контейнерных ресурсовв горизонтальных автомасштаберах подов (HPAs). В Kubernetes 1.27 эта функция переходит в бета-версию, а шлюз функции HPAContainerMetrics по умолчанию включен.
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.
В Kubernetes 1.5 был представлен флаг --prune в kubectl applyдля удаления ненужных ресурсов. Это позволило kubectl applyавтоматически очищать ресурсы, удаленные из текущей конфигурации. Однако существующая реализация флага --pruneимеет недостатки проектирования, которые снижают производительность и приводят к неожиданному поведению. В Kubernetes 1.27 команда kubectl applyпредоставляет обрезку на основе ApplySet, которая находится в стадии альфа-тестирования. Подробную информацию см.Declarative Management of Kubernetes Objects Using Configuration Files.
В 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.
Интерфейс API KMS V2 для управления ключами переходит в бета-версию. Это значительно улучшило производительность поставщика шифрования KMS. Подробности см.Using a KMS provider for data encryption.
Kubernetes 1.26
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 или выше.
Версия 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.
драйверам 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.
Оптимизация внутреннего локального сетевого трафика узлов и EndpointSlice conditions обновляются до официальной версии выпуска. ProxyTerminatingEndpoints переходит в бета-версию.
Эта функция позволяет указать источник данных, который принадлежит разным пространствам имен для PVC. Эта функция находится на стадии альфа. Для получения дополнительной информации см. Cross namespace data sources.
В Kubernetes 1.25 была представлена альфа-функция, которая изменяет способ назначения стандартного класса хранилища для PVC. После включения этой функции вам больше не нужно создавать стандартный класс хранилища, а затем создавать PVC для присвоения этого класса. Кроме того, любые PVC без назначенного класса хранилища могут быть позже обновлены. Эта функция переходит в версию Beta в Kubernetes 1.26. Подробности см. в разделе Retroactive default StorageClass assignment.
Вы можете задать политику исключений для неисправных подов для PodDisruptionBudget (PDB). Эта функция помогает обеспечить доступность узлов во время управления узлами. Функция находится на этапе бета-тестирования. Подробнее см. раздел Unhealthy Pod Eviction Policy.
kube-controller-manager разрешает использовать параметр --concurrent-horizontal-pod-autoscaler-syncs для настройки количества рабочих узлов автомасштабера подов для горизонтального масштабирования.
Kubernetes 1.27
Kubernetes 1.26
В Kubernetes 1.26 больше недоступен API горизонтального автомасштабирования подов версии autoscaling/v2beta2. Для подробностей см.Удалённые API по версиям. Используйте вместо этого версию API autoscaling/v2.
Начиная с Kubernetes 1.26, API версий flowcontrol.apiserver.k8s.io/v1beta1 для FlowSchema и PriorityLevelConfiguration более не поддерживается. Подробности смотрите вflowcontrol.apiserver.k8s.io/v1beta1. Версия flowcontrol.apiserver.k8s.io/v1beta2 доступна начиная с Kubernetes 1.23, а версия flowcontrol.apiserver.k8s.io/v1beta3 доступна начиная с Kubernetes 1.26.Устаревшие встроенные драйверы хранилищ от поставщиков облачных сервисов были удалены.Режим работы kube-proxy в пространстве пользователя был удалён.Linux и Windows больше не поддерживают устаревший режим пространства пользователей. Пользователи Linux могут использовать Iptables или IPVS, пользователи Windows – режим ядра. Ошибки будут возвращаться, если вы используете флаг --mode userspace.Windows winkernel kube-proxy больше не поддерживает интерфейсы API Windows HNS v1.
объявлен устаревшим.Флаг --prune-whitelist
Inclusive Naming Initiative. Этот устаревший флаг будет полностью удалён в последующих версиях.Функция динамической конфигурации kubelet отключена.Конфигурацию узлов kubelet можно обновлять динамически через API. Эта функция была удалена из kubelet в Kubernetes 1.24 и из сервера API в Kubernetes 1.26. Это упрощает код и повышает стабильность. Рекомендуется изменять файл конфигурации kubelet вручную и перезапускать kubelet. Подробнее см.Remove DynamicKubeletConfig feature gate from the code.Из командной строки kube-apiserver удалён параметр.Параметр --master-service-namespace
Некоторые параметры команды kubectl run признаны устаревшими.
kubectl run помечены как устаревшие
--filename, --force, --grace-period, --kustomize, --recursive, --timeout, --wait.Некоторых параметров командной строки, связанных с логированием, больше нет.Некоторые связанные с логами параметры командной строки были удалены. Они уже были устаревшими
Расширенный функционал Kubernetes 1.27 на платформе CCEВо время периода обслуживания версий платформа CCE периодически обновляет Kubernetes 1.27 и предоставляет расширенные функции.Подробнее о обновлениях версий кластеров читайте в Release Notes for CCE Cluster Versions.
Для получения дополнительной информации о сравнении производительности и функционального развития между Kubernetes 1.27 и другими версиями ознакомьтесь со следующими документами:
Kubernetes v1.27 Release NotesKubernetes v1.26 Release NotesРодительская тема: