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

Kubernetes 1.25 (EOM) Примечания к выпуску

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

CCE прошел Certified Kubernetes Conformance Program и является сертифицированным предложением Kubernetes. Этот раздел описывает изменения, внесённые в Kubernetes 1.25 по сравнению с Kubernetes 1.23.

Индексы

Новые функции

Kubernetes 1.25

  • Pod Security Admission стабилен. PodSecurityPolicy устарел.

    PodSecurityPolicy заменён на Pod Security Admission. Для получения подробностей о миграции см Миграция с PodSecurityPolicy на встроенный контроллер Pod Security Admission.

  • Эфемерные контейнеры стабильны.

    An эфемерный Контейнер выполняется временно в существующем pod. Это полезно для устранения неполадок, особенно когда kubectl exec нельзя использовать для проверки контейнера, который выходит из строя, или его образ не содержит инструмента отладки.

  • Поддержка cgroups v2 переходит в стабильную фазу.

    Kubernetes поддерживает cgroups v2, которые предоставляют некоторые улучшения по сравнению с cgroup v1. Для получения подробной информации см О cgroup v2.

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

    Чтобы включить эту функцию, добавьте параметр запуска --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.

    Note

    После включения этой функции определённые системные вызовы, необходимые приложению, могут быть ограничены средой выполнения. Поэтому включайте функцию только в тестовой среде, чтобы сначала убедиться, что приложение работает корректно и не пострадало.

  • EndPort в сетевой политике становится стабильным.

    EndPort в Network Policy стабильна. Эта функция включена в версии 1.21. EndPort добавлен в NetworkPolicy. Вы можете указать диапазон портов.

  • Изоляция ёмкости локального эфемерного хранилища становится стабильной.

    Эта функция предоставляет поддержку изоляции ёмкости локального эфемерного хранилища между pods, например emptyDir. Если потребление pod'ом совместно используемых ресурсов превышает лимит, он будет выселен.

  • Язык выражений проверки CRD переходит в бета.

    Это позволяет объявить, как проверять пользовательские ресурсы, используя CEL. Для получения дополнительной информации см Расширьте Kubernetes API с помощью CustomResourceDefinitions.

  • Введены KMS v2 API.

    Введен KMS v2 alpha1 API для повышения производительности, ротации и улучшения наблюдаемости. Этот API использует AES-GCM вместо AES-CBC и использует DEK для шифрования данных в состоянии покоя (Kubernetes Secrets). В этом процессе не требуется дополнительных операций. Кроме того, данные можно читать с помощью AES-GCM и AES-CBC. Для получения дополнительной информации см Использование KMS provider для шифрования данных.

  • Введена готовность сети Pod.

    Kubernetes 1.25 вводит альфа‑поддержку PodHasNetwork. Этот статус находится в статус поле pod. Для получения дополнительной информации см Готовность сети Pod.

  • Две функции, используемые для развертывания приложения, являются стабильными.
    • В Kubernetes 1.25, minReadySeconds для StatefulSets является стабильным. Он позволяет каждому pod ждать ожидаемый период времени, чтобы замедлить развертывание StatefulSet. Для подробностей см. Minimum ready seconds.
    • В Kubernetes 1.25, maxSurge для DaemonSets является стабильным. Он позволяет рабочей нагрузке DaemonSet запускать несколько экземпляров одного pod на одном узле во время развертывания. Это минимизирует простои DaemonSet для пользователей. DaemonSet не позволяет maxSurge и hostPort использоваться одновременно, потому что два активных pod не могут использовать один и тот же порт на одном узле. Для подробностей см. Выполнить Rolling Update на DaemonSet.
  • Предоставлена альфа‑поддержка запуска pod‑ов с пользовательскими пространствами имён.

    Эта функция отображает root пользователя в pod к ненулевому ID за пределами контейнера. Таким образом, контейнер работает как root пользователь, а узел работает как обычный непривилегированный пользователь. Эта функция все еще находится на внутренней тестовой фазе. Необходимо включить шлюз UserNamespacesStatelessPodsSupport, и среда выполнения контейнера должна поддерживать эту функцию. Подробнее см. Kubernetes 1.25: альфа‑поддержка запуска Pods с пользовательскими пространствами имён.

Kubernetes 1.24

  • Dockershim удалён из kubelet.

    Dockershim был помечен устаревшим в Kubernetes 1.20 и официально удалён из kubelet в Kubernetes 1.24. Если вы хотите использовать Docker‑контейнер, переключитесь на cri-dockerd или другие среды выполнения, поддерживающие CRI, такие как containerd и CRI‑O.

    Note

    Проверьте, есть ли агенты или приложения, зависящие от Docker Engine. Например, если docker ps, docker run, и docker inspect используются, убедитесь, что несколько сред выполнения совместимы, и переключитесь на стандартный CRI.

  • Beta APIs отключены по умолчанию.

    Сообщество Kubernetes установило, что 90 % администраторов кластера не обращали внимания на beta APIs и оставляли их включенными. Однако beta‑функции не рекомендуется использовать, потому что эти APIs, включённые по умолчанию в производственной среде, создают риски. Поэтому в версиях 1.24 и выше beta APIs отключены по умолчанию, но существующие beta APIs сохранят исходные настройки.

  • OpenAPI v3 поддерживается.

    В Kubernetes 1.24 и более поздних версиях OpenAPI V3 включён по умолчанию.

  • Отслеживание ёмкости хранилища стабильно.

    В Kubernetes 1.24 и более поздних версиях API CSIStorageCapacity поддерживает раскрытие доступной ёмкости хранилища. Это гарантирует, что pod‑ы планируются на узлы с достаточной ёмкостью хранилища, что уменьшает задержку планирования pod‑ов, вызванную ошибками создания и монтирования томов. Для подробностей см. Объём хранения.

  • gRPC контейнерный зонд переходит в beta.

    В Kubernetes 1.24 и более поздних версиях gRPC зонд переходит в beta. Фича‑гейт GRPCContainerProbe включён по умолчанию. Подробности о том, как использовать этот зонд, см. Настроить зонд.

  • LegacyServiceAccountTokenNoAutoGeneration включён по умолчанию.

    LegacyServiceAccountTokenNoAutoGeneration переходит в beta. По умолчанию эта функция включена, при этом секретный токен для учётной записи сервиса не генерируется автоматически. Чтобы использовать токен, который никогда не истекает, создайте секрет для хранения токена. Подробности см. Секреты токенов учётных записей.

  • Конфликт IP‑адресов предотвращён.

    В Kubernetes 1.24, пул IP‑адресов мягко резервируется для статических IP‑адресов Сервисов. После того как вы вручную включите эту функцию, Service IP-адреса будут автоматически назначаться из пула IP-адресов, чтобы минимизировать конфликты IP-адресов.

  • Кластеры собираются на основе Go 1.18.

    Kubernetes кластеры версий новее 1.24 собираются на основе Go 1.18. По умолчанию алгоритм хеширования SHA-1, такой как SHA1WithRSA и ECDSAWithSHA1, более не поддерживается для проверки подписи сертификата. Используйте сертификат, сгенерированный алгоритмом SHA256, вместо этого.

  • Максимальное количество недоступных реплик StatefulSet настраиваемо.

    В Kubernetes 1.24 и более поздних версиях, the maxUnavailable параметр можно настроить для StatefulSets, чтобы pods можно было останавливать быстрее во время rolling update.

  • Alpha поддержка некорректного выключения узла введена.

    Некорректное выключение узла представлено как alpha в Kubernetes v1.24. Выключение узла считается корректным только если менеджер выключения узла kubelet может обнаружить предстоящие действия по выключению узла. Для подробностей смотрите Non-graceful node shutdown handling.

Устаревание и удаление

Kubernetes 1.25

  • Владение цепочками iptables очищено.

    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.

  • In-tree драйверы томов от облачных сервисных вендоров удалены.

Kubernetes 1.24

  • В Kubernetes 1.24 и более поздних версиях, Service.Spec.LoadBalancerIP устарел, потому что его нельзя использовать для dual-stack протоколов. Вместо этого используйте пользовательские аннотации.
  • В Kubernetes 1.24 и более поздних версиях, the --address, --insecure-bind-address, --port, и --insecure-port=0 параметры удалены из kube-apiserver.
  • В Kubernetes 1.24 и более поздних версиях, параметры запуска --port=0 и --address удалены из kube-controller-manager и kube-scheduler.
  • В Kubernetes 1.24 и более поздних версиях, kube-apiserver --audit-log-version и --audit-webhook-version поддерживают только audit.k8s.io/v1. В Kubernetes 1.24, audit.k8s.io/v1[alpha|beta]1 удаляется, и только audit.k8s.io/v1 может использоваться.
  • В Kubernetes 1.24 и более поздних версиях, параметр запуска --network-plugin удаляется из kubelet. Этот параметр, специфичный для Docker, доступен только когда среда выполнения контейнера является Docker и он удаляется вместе с Dockershim.
  • В Kubernetes 1.24 и более поздних версиях динамическая очистка журналов была удалена и соответствующим образом удалена. В журналы всех компонентов системы Kubernetes введён фильтр журналов, чтобы предотвратить утечку конфиденциальной информации через журналы. Однако эта функция может блокировать журналы и поэтому удалена. Подробнее смотрите Динамическая очистка журналов и KEP-1753.
  • VolumeSnapshot v1beta1 CRD удалён в Kubernetes 1.20 и удалён в Kubernetes 1.24. Используйте VolumeSnapshot v1 вместо этого.
  • В Kubernetes 1.24 и более поздних версиях, service annotation tolerate-unready-endpoints удалён в Kubernetes 1.11 заменяется на Service.spec.publishNotReadyAddresses.
  • В Kubernetes 1.24 и более поздних версиях metadata.clusterName поле удаляется и будет удалено в следующей версии.
  • В Kubernetes 1.24 и более поздних версиях логика kube-proxy прослушивать NodePorts удалена. Если NodePorts конфликтуют с kernel net.ipv4.ip_local_port_range, TCP соединения могут время от времени сбой, что приводит к сбою проверки работоспособности или исключению сервиса. Перед обновлением убедитесь, что NodePorts кластера не конфликтуют с net.ipv4.ip_local_port_range всех узлах кластера. Для получения более подробной информации см Kubernetes PR.

Улучшенный Kubernetes 1.25 на CCE

Во время периода обслуживания версии CCE периодически обновляет Kubernetes 1.25 и предоставляет расширенные функции.

Для получения деталей об обновлениях версии кластера см Примечания к выпуску для версий кластера CCE.

Ссылки

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