[Системное администрирование, Серверное администрирование, DevOps, Kubernetes] Kubernetes 1.20 — и что же слома.../починили на этот раз?

Автор Сообщение
news_bot ®

Стаж: 6 лет 4 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
09-Дек-2020 18:30


Release Logo c сайта kubernetes.ioПоздравляем с выходом версии 1.20. Третий релиз в 2020 году, в котором 11 фич объявили stable, 15 перевели в beta и добавили 16 новых в alpha-стадии.Судя по Release Logo, котики уже захватили мир и даже не скрывают этого. Давайте посмотрим, какие блюдца с молоком они заботливо положили нам под ноги.Конечно же, начать придется с громкой новости об отказе от dockershim. С одной стороны, дело это не быстрое, и есть еще целый год перед окончательным выпиливанием кода, но, с другой стороны, можно ожидать, что баги при взаимодействии с docker будут исправляться с меньшим приоритетом, чем раньше.Второе важное изменение, которое может сломать ваш продакшен, заключается в том, что в версии 1.20 починили баг с таймаутами для Probe типа exec.В описании контейнеров в манифесте подов есть специальный раздел,описывающий каким образом можно узнать, что приложение живое и готово обрабатывать входящие запросы. С помощью HTTP/TCP-запроса или запуска (exec probe) какого-либо процесса внутри контейнера (например, rabbitmqctl status) и анализа кода завершения.Суть проблемы в следующем:В манифесте есть поле timeoutSeconds:, которое задает максимальное время ожидания ответа на запрос или время выполнения процесса внутри контейнера. Ошибка была в том, что при выполнении exec probe этот параметр не учитывался и процесс внутри контейнера мог работать бесконечно долгое время, пока сам не завершится.Ошибку исправили, и в версии 1.20 все стало прекрасно. Но не для всех. Если вы используете exec probe и указывали timeoutSeconds: в своих манифестах — самое время проверить, укладывается ли время выполнения вашей пробы в таймаут.А вот если вы не указывали timeoutSeconds:, то у меня для вас не очень хорошая новость. Значение по умолчанию для этого параметра — 1 секунда, если ваша проба выполняется дольше, то успешной она явно не будет.И как всегда — вишенка на торте. Если вы используете docker, то при наступлении таймаута процесс внутри контейнера может остаться работать дальше. И если это readinessProbe, то со временем количество таких процессов может превзойти все ваши смелые ожидания.И к другим новостям:Если вы пользовались alpha feature API Priority and Fairness (APF) в своем мульти-мастер кластере 1.19 — выключайте ее перед обновлением. В 1.20 она переведена в статус beta, но в процессе перевода отломали совместимость с alpha. После обновления она будет включена по умолчанию.Мастеров больше не будет! Метка node-role.kubernetes.io/master и taint node-role.kubernetes.io/master:NoSchedule, которые по умолчанию ставил kubeadm на узлы с запущенными компонентами control-plane, объявлены deprecated и скоро будут убраны. Вместо них будут использоваться метка node-role.kubernetes.io/control-plane и taint node-role.kubernetes.io/control-plane:NoSchedule.В kubeadm усилили проверки входящих параметров serviceSubnet и podSubnet.Сеть для сервисов теперь имеет ограничение на размер и не должна аллоцировать более 20 бит. В переводе на человеческий это означает, что размер сети для IPv4 должен быть /12 или меньше (/13, /14 и т.п.), а для IPv6 — /108, но лучше будет использовать /112.Сеть для подов теперь проверяется на совместимость с параметром --node-cidr-mask-size, размер сетей, выделяемых на узел должен быть меньше, чем сеть для подов.Из API сервера убрали возможность беспарольного входа. Теперь не получится восстановить потерянный доступ к кластеру, просто зайдя на мастер и добавив в ключи запуска API сервера ключ --insecure-port 8080 IPv4/IPv6 dual stack был немножко переписан в части реализации сервисов. Один сервис теперь может иметь как IPv4, так и IPv6 адрес (при включении "IPv6DualStack" feature gate). Но это привело к несовместимым изменениям в API. Изменился манифест Kind: Service — вместо одного поля ipFamily теперь будет целых три: ipFamilyPolicy, ipFamilies, clusterIPs. Пишут, что большинству пользователей ничего не надо будет делать, сервисы останутся только IPv4, пока не включен соответствующий feature gate. TODO: Посмотреть, что там с Headless Service, которым в манифесте указываем clusterIP: NoneКоманда для работы с сертификатам (проверки, генерации или продления kubeadm alpha certs переименована в kubeadm certs. Старый вариант вызова еще работает, но в следующих релизах его уберут.Анонсировали фичу GracefulNodeShutdown — при ее включении kubelet будет самостоятельно завершать все запущенные поды, при выключении узла. Соблюдая все обычные gracefulShutdown таймауты и вызывая preStop хуки.Команда kubectl debug повышена до беты, и в ее описании появилось много различных возможностей. Запуск дополнительных эфемерных дебаг контейнеров в поде, создание копий пода и замена команды запуска. Единственная тонкость — новое название команды конфликтует с плагином debug, и теперь вместо плагина будет выполнятся встроенная команда. Если вы хотите продолжать пользоваться плагином, то его придется переименовать.В процессе починки CVE-2020-8559 немножко усилили безопасность, что может привести к поломке работы бэкендов расширения API, таких как metrics-server или prometheus adapter.Выпущен новый CronJob controller v2. Видимо, чинить багистарого контроллера больше не могут, и решили выпустить новый, с новыми багами. Пока в стадии альфа, так что включать его надо с помощью специального feature gate.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_sistemnoe_administrirovanie (Системное администрирование), #_servernoe_administrirovanie (Серверное администрирование), #_devops, #_kubernetes, #_k8s, #_upgrade, #_changelog, #_breaking, #_blog_kompanii_southbridge (
Блог компании Southbridge
)
, #_sistemnoe_administrirovanie (
Системное администрирование
)
, #_servernoe_administrirovanie (
Серверное администрирование
)
, #_devops, #_kubernetes
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 07-Июл 08:35
Часовой пояс: UTC + 5