CCE прошел программу Certified Kubernetes Conformance и является сертифицированным предложением Kubernetes. CCE теперь поддерживает функции кластера Kubernetes 1.27. В этом разделе описаны изменения в Kubernetes 1.27 по сравнению с Kubernetes 1.25.
Kubernetes 1.27
Чтобы использовать SeccompDefault, добавьте --seccomp-default флаг командной строки используя kubelet на каждом узле. Если эта функция включена, то RuntimeDefault профиль будет использоваться для всех нагрузок по умолчанию, вместо Unconfined (seccomp disabled) профиль.
Эта функция была введена в Kubernetes 1.22 и является стабильной в Kubernetes 1.27. В большинстве случаев вы используете job для управления тем, где будут запущены pod'ы, например, все в одном AZ. Эта функция позволяет изменять директивы планирования до запуска job. Вы можете приостановить job, используя приостановить поле. В фазе приостановки директивы планирования (например, node selector, node affinity, anti-affinity и tolerations) в шаблоне pod job могут быть изменены. Для подробностей см. Mutable Scheduling Directives.
В Kubernetes 1.20, requests.hugepages-<pagesize> и limits.hugepages-<pagesize> были введены в низходящий API. Запросы и ограничения можно настраивать для hugepages, как и для других ресурсов.
После создания пода, планировщик Kubernetes выбирает подходящий узел для запуска пода в состоянии ожидания. На практике некоторые поды могут оставаться в состоянии ожидания длительное время из‑за нехватки ресурсов. Эти поды могут влиять на работу других компонентов, таких как Кластер Autoscaler в кластере. Указывая или удаляя .spec. schedulingGates для пода, вы можете управлять тем, когда под готов к планированию. Для подробностей см. Готовность планирования подов.
Эта функция находится в альфа‑фазе. Администратор кластера может напрямую запрашивать журналы узла, чтобы помогать отлаживать неисправные сервисы, работающие на узле. Чтобы использовать эту функцию, убедитесь, что NodeLogQuery feature gate включен для этого узла и параметры конфигурации kubelet enableSystemLogHandler и enableSystemLogQuery установлены в true.
Kubernetes 1.22 представил режим доступа ReadWriteOncePod для PV и PVC. Эта функция перешла в бета‑фазу. Том может быть смонтирован в один pod в режиме чтения/записи. Используйте этот режим доступа, если вы хотите убедиться, что только один pod в кластере может читать этот PVC или записывать в него. Подробнее см Режимы доступа.
matchLabelKeys это список ключей меток pod. Он используется для выбора группы pod, для которой будет рассчитано распределение. With matchLabelKeys, вам не нужно обновлять pod.spec между различными ревизиями. Контроллер или оператор просто должен установить разные значения для того же ключа метки для разных ревизий. Планировщик автоматически определит значения на основе matchLabelKeys. Для подробностей см. Ограничения распределения топологии Под.
По умолчанию среда выполнения контейнера рекурсивно назначает метку SELinux всем файлам во всех pod‑томах. Чтобы ускорить этот процесс, Kubernetes использует параметр монтирования -o context=<label> для немедленного назначения метки SELinux тома. Для подробностей см. Эффективное переименование меток SELinux тома.
После восстановления VolumeManager, если NewVolumeManagerReconstruction флаг функции включен, монтированные тома будут получаться более эффективно во время старта kubelet.
OpenAPI V3 был добавлен в Kubernetes 1.23. В Kubernetes 1.24 он перешел в бета. В Kubernetes 1.27 он стал стабильным.
Kubernetes 1.26 представил новую функцию уровня alpha для StatefulSets, позволяющую контролировать порядковую нумерацию реплик pod. С Kubernetes 1.27 эта функция переходит в бета. Порядковые индексы могут начинаться с произвольных неотрицательных чисел. Подробности смотрите Kubernetes 1.27: StatefulSet Start Ordinal Simplifies Migration.
Kubernetes 1.20 представил ContainerResource метрика в HorizontalPodAutoscaler (HPA). В Kubernetes 1.27 эта функция переходит в бета, и переключатель функции HPAContainerMetrics включен по умолчанию.
Kubernetes 1.27 предоставляет новую политику для управления жизненным циклом PVC в StatefulSet. Эта политика позволяет пользователям указать, следует ли автоматически удалять или сохранять PVC, созданные из шаблона спецификации StatefulSet, когда StatefulSet удаляется или реплики в StatefulSet масштабируются вниз. Для получения подробной информации см. Сохранение PersistentVolumeClaim.
Снимки группы томов вводятся как альфа‑функция в Kubernetes 1.27. Эта функция позволяет пользователям создавать снимки нескольких томов для обеспечения согласованности данных при возникновении сбоя. Она использует селектор меток для группировки нескольких PVC для снимков. Эта функция поддерживает только драйверы томов CSI. Для получения подробной информации см. Kubernetes 1.27: Представление API для снимков группы томов.
В Kubernetes 1.5, --prune флаг был введён в kubectl apply для удаления ресурсов, которые больше не нужны. Это позволило kubectl apply для автоматического удаления ресурсов, удалённых из текущей конфигурации. Однако существующая реализация --prune имеет конструктивные дефекты, которые снижают её производительность и приводят к непредвиденному поведению. В Kubernetes 1.27, kubectl apply предоставляет обрезку на основе ApplySet, которая находится в альфа‑фазе. Для подробностей см. Декларативное управление объектами Kubernetes с использованием файлов конфигурации.
В Kubernetes 1.27 вы можете включить новую фича‑гейт ServiceNodePortStaticSubrange для использования различных политик распределения портов для NodePort Services. Это снижает риск конфликтов портов. Эта функция находится в альфа‑фазе.
Kubernetes 1.27 позволяет пользователям изменять размеры ресурсов CPU и памяти, назначенных pod‑ам, без перезапуска контейнера. Эта функция находится в альфа‑фазе. Для подробностей см. Kubernetes 1.27: Изменение размеров ресурсов на месте для Kubernetes Pods (alpha).
В Kubernetes 1.27 выполнена серия корректировок параметров, таких как параллельные загрузки образов и повышенный лимит запросов API по умолчанию для kubelet в секунду, чтобы ускорить запуск pod. Для подробностей см. Kubernetes 1.27: обновления по ускорению запуска Pod.
API управления ключами KMS V2 переходит в бета‑версию. Это значительно улучшило производительность провайдера шифрования KMS. Для подробностей см. Использование поставщика KMS для шифрования данных.
Kubernetes 1.26
Kubernetes 1.26 не поддерживает CRI v1alpha2. Используйте CRI v1 (версия containerd должна быть не ниже 1.5.0). containerd 1.5.x или более ранние версии не поддерживаются Kubernetes 1.26. Обновите версию containerd до 1.6.x или новее перед обновлением kubelet до 1.26.
Версия containerd, используемая CCE, — 1.6.14, что соответствует требованиям. Если существующие узлы не соответствуют требованиям версии containerd, сбросьте их до последней версии.
В Kubernetes 1.26, Dynamic Resource Allocation добавлена возможность запрашивать и делить ресурсы между pods и между контейнерами в pod. Ресурсы инициализируются на основе параметров, предоставленных пользователем. Эта функция всё ещё находится в альфа‑фазе. Вам необходимо включить feature gate DynamicResourceAllocation и resource.k8s.io/v1alpha1 API группа. Вам необходимо установить драйверы для управления определёнными ресурсами. Для деталей см Kubernetes 1.26: Alpha API для динамического распределения ресурсов.
В Kubernetes 1.26 функция неаккуратного выключения узла переходит в бета и включается по умолчанию. Выключение узла может быть корректным только если менеджер выключения узла kubelet может обнаружить предстоящую операцию выключения узла. Для деталей см Обработка неаккуратного выключения узла.
В Kubernetes 1.22 делегирование fsGroup в CSI драйверам было впервые представлено как альфа‑функция. В Kubernetes 1.25 оно перешло в бета. В Kubernetes 1.26 эта функция входит в официальную фазу выпуска. Для деталей см Делегирование разрешений тома и изменения прав собственности CSI драйверу.
Kubernetes 1.26 представляет новую функцию schedulingGates, которая позволяет планировщику обнаруживать, когда можно выполнять планирование pod. Для подробностей см. Pod Scheduling Readiness.
CPU manager является частью kubelet. Поскольку Kubernetes 1.10, он был перемещён в бета. CPU manager может выделять эксклюзивные CPU контейнерам. Эта функция стабильна в Kubernetes 1.26. Для подробностей см. Control CPU Management Policies on the Node.
Оптимизация локального трафика узла и Условия EndpointSlice обновлены до официальной версии релиза. ProxyTerminatingEndpoints переходит в beta.
Эта функция позволяет указать источник данных, принадлежащий другим пространствам имён для PVC. Эта функция находится в alpha фазе. Для подробностей см Источники данных из разных пространств имён.
В Kubernetes 1.25 была введена alpha‑функция, изменяющая способ выделения класса хранения по умолчанию для 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 для настройки количества рабочих узлов pod autoscaler для горизонтального масштабирования.
Kubernetes 1.27
Kubernetes 1.26
API autoscaling/v2beta2 HorizontalPodAutoscaler более недоступен в Kubernetes 1.26. Подробнее см. Удалённые API по версии. Используйте API autoscaling/v2 вместо этого.
В Kubernetes 1.26 и более поздних версиях API flowcontrol.apiserver.k8s.io/v1beta1 версия для FlowSchema и PriorityLevelConfiguration больше не обслуживается. Для подробностей см. Удалённые API по выпуску. Этот flowcontrol.apiserver.k8s.io/v1beta2 версия доступна в Kubernetes 1.23 и более поздних версиях, и flowcontrol.apiserver.k8s.io/v1beta3 версия доступна в Kubernetes 1.26 и более поздних версиях.
Устаревший режим userspace больше не поддерживается Linux или Windows. Пользователи Linux могут использовать Iptables или IPVS, а пользователи Windows могут использовать режим Kernelspace. Ошибки возвращаются, если вы используете --mode userspace.
Флаг --prune-whitelist флаг устарел и заменён на --prune-allowlist для поддержки Inclusive Naming Initiative. Этот устаревший флаг будет полностью удалён в более поздних версиях.
Конфигурация kubelet узлов может динамически обновляться через API. Фича‑гейт удалён из kubelet в Kubernetes 1.24 и удалён из API‑server в Kubernetes 1.26. Это упрощает код и повышает стабильность. Рекомендуется вместо этого изменить файл конфигурации kubelet и затем перезапустить kubelet. Для подробностей см Удалить фича‑гейт DynamicKubeletConfig из кода.
Этот --master-service-namespace параметр устарел. Он не используется в API Server.
Несколько неиспользуемых подкоманд kubectl помечены как устарел и будет удалён в будущих версиях. Эти подкоманды включают --cascade, --filename, --force, --grace-period, --kustomize, --recursive, --timeout, и --wait.
Некоторые параметры командной строки, связанные с журналированием, являются удалены. Эти параметры были устаревшими в более ранних версиях.
Во время периода обслуживания версии CCE периодически обновляет Kubernetes 1.27 и предоставляет расширенные функции.
Для получения подробной информации об обновлениях версии кластера см Примечания к выпуску для CCE Cluster Versions.
Для получения более подробной информации о сравнении производительности и развитии функций между Kubernetes 1.27 и другими версиями см. следующие документы: