CCE прошёл Certified Kubernetes Conformance Program и является сертифицированным предложением Kubernetes. В этом разделе описаны изменения, внесённые в Kubernetes 1.25 по сравнению с Kubernetes 1.23.
Kubernetes 1.25 PodSecurityPolicy заменён на Pod Security Admission. Для получения подробностей о миграции см. Migrate from PodSecurityPolicy to the Built-In PodSecurity Admission Controller. An ephemeral container запускается временно в существующем pod. Он полезен для устранения неполадок, особенно когда kubectl exec нельзя использовать для проверки контейнера, который выходит из строя, или его образ не содержит инструмента отладки. Kubernetes поддерживает cgroups v2, которые предоставляют некоторые улучшения по сравнению с cgroups v1. Для получения подробностей см. About cgroup v2. Чтобы включить эту функцию, добавьте параметр запуска --seccomp-default=true в kubelet. Таким образом, seccomp по умолчанию устанавливается в RuntimeDefault, повышая безопасность системы. Кластеры v1.25 более не поддерживают seccomp.security.alpha.kubernetes.io/pod и container.seccomp.security.alpha.kubernetes.io/annotation. Замените их полем securityContext.seccompProfile в pod'ах или контейнерах. Подробнее см. Configure a Security Context for a Pod or Container. После включения этой функции некоторые системные вызовы, необходимые приложению, могут быть ограничены runtime. Поэтому включайте функцию только в тестовой среде, чтобы сначала убедиться, что приложение работает корректно и не пострадало. endPort в Network Policy стабилен. Эта функция включена в версии 1.21. endPort добавлен в NetworkPolicy. Вы можете указать диапазон портов. Эта функция поддерживает изоляцию ёмкости локального эфемерного хранилища, совместно используемого между pod'ами, например emptyDir. Если pod потребляет больше ёмкости локального эфемерного хранилища, чем установленный предел, pod может быть выгружен, чтобы ограничить потребление общих ресурсов. Это позволяет объявить, как проверять пользовательские ресурсы с помощью CEL. Подробнее см. Validation rules. API KMS v2 alpha1 введён для добавления улучшений производительности, ротации и наблюдаемости. Этот API использует AES-GCM вместо AES-CBC и использует DEK для шифрования данных в состоянии покоя (Kubernetes Secrets). Дополнительные операции не требуются. Кроме того, данные могут читаться через AES-GCM и AES-CBC. Подробнее см. Using a KMS provider for data encryption. Kubernetes 1.25 вводит альфа‑поддержку PodHasNetwork. Этот статус находится в поле status pod'а. Подробнее см. Pod network readiness. Предоставлена альфа‑поддержка запуска pod с пользовательскими пространствами имён. Пользователь root в pod сопоставляется с ненулевым ID за пределами контейнера, поэтому пользователь root выглядит как root в контейнерах, но с точки зрения хоста представляет собой обычный непривилегированный ID. Эта функция находится за пределами feature gate, поэтому убедитесь, что включили gate UserNamespacesStatelessPodsSupport, прежде чем использовать новую функцию. Для получения подробной информации см. Alpha support for running pods with user namespaces.
Kubernetes 1.24 Dockershim был помечен как устаревший в Kubernetes 1.20 и официально удалён из kubelet в Kubernetes 1.24. Если вы хотите использовать контейнер Docker, переключитесь на cri-dockerd или другие среды выполнения, поддерживающие CRI, такие как containerd и CRI-O. Проверьте, есть ли агенты или приложения, зависящие от Docker Engine. Например, если используются docker ps, docker run и docker inspect, убедитесь, что несколько сред выполнения совместимы, и переключитесь на стандартный CRI. Сообщество Kubernetes обнаружило, что 90 % администраторов кластера не обращали внимания на beta API и оставляли их включёнными. Однако beta‑функции не рекомендуется использовать, поскольку эти API включены в производственной среде по умолчанию и создают риски. Поэтому, начиная с версии 1.24 и выше, beta API отключены по умолчанию, но существующие beta API сохранят исходные настройки. В Kubernetes 1.24 и более поздних версиях OpenAPI V3 включён по умолчанию. В Kubernetes 1.24 и более поздних версиях API CSIStorageCapacity поддерживает раскрытие доступной ёмкости хранилища. Это гарантирует, что pod планируются на узлы с достаточной ёмкостью хранилища, что уменьшает задержку планирования pod, вызванную ошибками создания и монтирования томов. Для получения подробной информации см. Storage Capacity. В Kubernetes 1.24 и более поздних версиях проба gRPC переходит в beta. Feature gate GRPCContainerProbe доступен по умолчанию. Для получения подробной информации о том, как использовать эту пробу, см. Configure Probes. LegacyServiceAccountTokenNoAutoGeneration переходит в бета. По умолчанию эта функция включена, при этом секретный токен не генерируется автоматически для учетной записи службы. Чтобы использовать токен, который никогда не истекает, создайте секрет для хранения токена. Подробнее см. Service account token Secrets. Kubernetes 1.24 вводит новую функцию, позволяющую пользователям мягко резервировать диапазон для статических назначений IP-адресов Service. После включения этой функции IP-адреса Service будут автоматически назначаться из пула IP-адресов для минимизации конфликтов IP-адресов. Подробнее см. Avoid Collisions Assigning IP Addresses to Services. Kubernetes‑кластеры версий новее 1.24 компилируются на основе Go 1.18. По умолчанию алгоритм хеширования SHA‑1, такой как SHA1WithRSA и ECDSAWithSHA1, более не поддерживается для проверки подписи сертификата. Вместо этого используйте сертификат, сгенерированный алгоритмом SHA256. В Kubernetes 1.24 и более поздних версиях параметр maxUnavailable можно настраивать для StatefulSet, чтобы pod‑ы останавливались быстрее во время скользящего обновления. В Kubernetes 1.24 некорректное завершение работы узла находится в альфа‑стадии. Завершение работы узла считается корректным только в том случае, если менеджер завершения работы узла kubelet может обнаружить предстоящие действия по завершению работы узла. Подробнее см. Non-graceful node shutdown handling.
Kubernetes 1.25 Kubernetes обычно создаёт цепочки iptables, чтобы гарантировать доставку пакетов данных к назначению. Эти цепочки iptables и их имена предназначены только для внутреннего использования. Они никогда не предполагались как часть каких‑либо гарантий API/ABI Kubernetes. Подробнее см. Kubernetes's IPTables Chains Are Not API. В версиях новее Kubernetes 1.25 Kubelet использует IPTablesCleanup для поэтапной миграции генерируемых Kubernetes цепочек iptables, используемых компонентами вне Kubernetes, чтобы такие цепочки iptables, как KUBE-MARK-DROP, KUBE-MARK-MASQ и KUBE-POSTROUTING, не создавались в таблице NAT. Подробнее см. Cleaning Up iptables Chain Ownership.
Kubernetes 1.24
Во время периода обслуживания версии CCE периодически обновляет Kubernetes 1.25, добавляя улучшенные функции.
Подробную информацию об обновлениях версии кластера см. в Release Notes for CCE Cluster Versions.
Для получения более подробной информации о сравнении производительности и функциональных улучшениях между Kubernetes 1.25 и другими версиями см. следующие документы: