CCE прошел Certified Kubernetes Conformance Program и является сертифицированным предложением Kubernetes. Этот раздел описывает изменения, внесённые в Kubernetes 1.25 по сравнению с Kubernetes 1.23.
Kubernetes 1.25
PodSecurityPolicy заменён на Pod Security Admission. Для получения подробностей о миграции см Миграция с PodSecurityPolicy на встроенный контроллер Pod Security Admission.
An эфемерный Контейнер выполняется временно в существующем pod. Это полезно для устранения неполадок, особенно когда kubectl exec нельзя использовать для проверки контейнера, который выходит из строя, или его образ не содержит инструмента отладки.
Kubernetes поддерживает cgroups v2, которые предоставляют некоторые улучшения по сравнению с cgroup v1. Для получения подробной информации см О 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 поле в pods или containers. Для получения подробностей см Configure a Security Context for a Pod or Container.
После включения этой функции определённые системные вызовы, необходимые приложению, могут быть ограничены средой выполнения. Поэтому включайте функцию только в тестовой среде, чтобы сначала убедиться, что приложение работает корректно и не пострадало.
EndPort в Network Policy стабильна. Эта функция включена в версии 1.21. EndPort добавлен в NetworkPolicy. Вы можете указать диапазон портов.
Эта функция предоставляет поддержку изоляции ёмкости локального эфемерного хранилища между pods, например emptyDir. Если потребление pod'ом совместно используемых ресурсов превышает лимит, он будет выселен.
Это позволяет объявить, как проверять пользовательские ресурсы, используя CEL. Для получения дополнительной информации см Расширьте Kubernetes API с помощью CustomResourceDefinitions.
Введен KMS v2 alpha1 API для повышения производительности, ротации и улучшения наблюдаемости. Этот API использует AES-GCM вместо AES-CBC и использует DEK для шифрования данных в состоянии покоя (Kubernetes Secrets). В этом процессе не требуется дополнительных операций. Кроме того, данные можно читать с помощью AES-GCM и AES-CBC. Для получения дополнительной информации см Использование KMS provider для шифрования данных.
Kubernetes 1.25 вводит альфа‑поддержку PodHasNetwork. Этот статус находится в статус поле pod. Для получения дополнительной информации см Готовность сети Pod.
Эта функция отображает root пользователя в pod к ненулевому ID за пределами контейнера. Таким образом, контейнер работает как root пользователь, а узел работает как обычный непривилегированный пользователь. Эта функция все еще находится на внутренней тестовой фазе. Необходимо включить шлюз UserNamespacesStatelessPodsSupport, и среда выполнения контейнера должна поддерживать эту функцию. Подробнее см. Kubernetes 1.25: альфа‑поддержка запуска Pods с пользовательскими пространствами имён.
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 APIs и оставляли их включенными. Однако beta‑функции не рекомендуется использовать, потому что эти APIs, включённые по умолчанию в производственной среде, создают риски. Поэтому в версиях 1.24 и выше beta APIs отключены по умолчанию, но существующие beta APIs сохранят исходные настройки.
В Kubernetes 1.24 и более поздних версиях OpenAPI V3 включён по умолчанию.
В Kubernetes 1.24 и более поздних версиях API CSIStorageCapacity поддерживает раскрытие доступной ёмкости хранилища. Это гарантирует, что pod‑ы планируются на узлы с достаточной ёмкостью хранилища, что уменьшает задержку планирования pod‑ов, вызванную ошибками создания и монтирования томов. Для подробностей см. Объём хранения.
В Kubernetes 1.24 и более поздних версиях gRPC зонд переходит в beta. Фича‑гейт GRPCContainerProbe включён по умолчанию. Подробности о том, как использовать этот зонд, см. Настроить зонд.
LegacyServiceAccountTokenNoAutoGeneration переходит в beta. По умолчанию эта функция включена, при этом секретный токен для учётной записи сервиса не генерируется автоматически. Чтобы использовать токен, который никогда не истекает, создайте секрет для хранения токена. Подробности см. Секреты токенов учётных записей.
В Kubernetes 1.24, пул IP‑адресов мягко резервируется для статических IP‑адресов Сервисов. После того как вы вручную включите эту функцию, Service IP-адреса будут автоматически назначаться из пула IP-адресов, чтобы минимизировать конфликты IP-адресов.
Kubernetes кластеры версий новее 1.24 собираются на основе Go 1.18. По умолчанию алгоритм хеширования SHA-1, такой как SHA1WithRSA и ECDSAWithSHA1, более не поддерживается для проверки подписи сертификата. Используйте сертификат, сгенерированный алгоритмом SHA256, вместо этого.
В Kubernetes 1.24 и более поздних версиях, the maxUnavailable параметр можно настроить для StatefulSets, чтобы pods можно было останавливать быстрее во время rolling update.
Некорректное выключение узла представлено как alpha в Kubernetes v1.24. Выключение узла считается корректным только если менеджер выключения узла kubelet может обнаружить предстоящие действия по выключению узла. Для подробностей смотрите Non-graceful node shutdown handling.
Kubernetes 1.25
Kubernetes обычно создает цепочки iptables, чтобы гарантировать доставку пакетов данных к назначению. Эти цепочки iptables и их имена предназначены только для внутреннего использования. Эти цепочки никогда не предназначались быть частью каких-либо гарантий Kubernetes API/ABI. Для получения подробностей см Цепочки IPTables Kubernetes не являются API.
В версиях, более поздних, чем Kubernetes 1.25, Kubelet использует IPTablesCleanup для поэтапного переноса генерируемых Kubernetes цепочек iptables, используемых компонентами за пределами Kubernetes, чтобы такие цепочки iptables, как KUBE-MARK-DROP, KUBE-MARK-MASQ и KUBE-POSTROUTING, не создавались в таблице NAT. Для получения дополнительных сведений см Очистка владения цепочками IPTables.
Kubernetes 1.24
Во время периода обслуживания версии CCE периодически обновляет Kubernetes 1.25 и предоставляет расширенные функции.
Для получения деталей об обновлениях версии кластера см Примечания к выпуску для версий кластера CCE.
Для получения более подробной информации о сравнении производительности и эволюции функционала между Kubernetes 1.25 и другими версиями см. следующие документы: