- PVSM.RU - https://www.pvsm.ru -

Сегодня, 18 сентября, выходит очередная версия Kubernetes — 1.16. Как всегда нас ждет много улучшений и новинок. Но я хотел бы обратить ваше внимание на разделы Action Required файла CHANGELOG-1.16.md [1]. В этих разделах публикуются изменения, которые могут сломать работу вашего приложения, инструментов по обслуживанию кластера или требуют внесения изменений в файлы конфигурации.
В общем, требуют ручного вмешательства…
Начнем сразу с изменения, которое, скорее всего, затронет всех, кто достаточно долго работает с kubernetes. Kubernetes API перестал поддерживать устаревшие версии API ресурсов.
apiVersion: apps/v1
А именно:
| Тип ресурса | Старая версия | На что надо заменить |
| Все ресурсы | apps/v1beta1 apps/v1beta2 |
apps/v1 |
| deployments daemonset replicaset |
extension/v1beta1 | apps/v1 |
| networkpolicies | extensions/v1beta1 | networking.k8s.io/v1 |
| podsecuritypolicies | extensions/v1beta1 | policy/v1beta1 |
Также хочу обратить внимание, что у объектов типа Ingress также сменился apiVersion на networking.k8s.io/v1beta1. Старое значение extensions/v1beta1 еще поддерживается, но есть хороший повод заодно обновить и эту версию в манифестах.
Достаточно много изменений в различных системных метках (Node labels), которые устанавливаются на узлы.
Kubelet запретили устанавливать произвольные метки (раньше их можно было задавать через ключи запуска kubelet --node-labels), оставили только вот этот список разрешенных [2]:
kubernetes.io/hostname
kubernetes.io/instance-type
kubernetes.io/os
kubernetes.io/arch
beta.kubernetes.io/instance-type
beta.kubernetes.io/os
beta.kubernetes.io/arch
failure-domain.beta.kubernetes.io/zone
failure-domain.beta.kubernetes.io/region
failure-domain.kubernetes.io/zone
failure-domain.kubernetes.io/region
[*.]kubelet.kubernetes.io/*
[*.]node.kubernetes.io/*
Метки beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready and beta.kubernetes.io/kube-proxy-ds-ready больше не добавляются на новые узлы, и различные дополнительные компоненты стали использовать немного другие метки в качестве node selector:
| Компонент | Старая метка | Актуальная метка |
| kube-proxy | beta.kubernetes.io/kube-proxy-ds-ready | node.kubernetes.io/kube-proxy-ds-ready |
| ip-mask-agent | beta.kubernetes.io/masq-agent-ds-ready | node.kubernetes.io/masq-agent-ds-ready |
| metadata-proxy | beta.kubernetes.io/metadata-proxy-ready | cloud.google.com/metadata-proxy-ready |
kubeadm теперь удаляет за собой файл начальной конфигурации кублета bootstrap-kubelet.conf. Если ваши инструменты обращались к этому файлу, то переключитесь на использование kubelet.conf, в котором хранятся актуальные настройки доступа.
Cadvisor больше не отдает метрики pod_name и container_name, если вы использовали их в Prometheus, переходите на метрики pod и container соответственно.
Убрали ключи командой строки:
| Компонент | Убранный ключ |
| hyperkube | --make-symlink |
| kube-proxy | --resource-container |
Шедулер стал использовать версию v1beta1 Event API. Если вы используете сторонние инструменты для взаимодействия с Event API, переключитесь на актуальную версию.
Минутка юмора. В процессе подготовки релиза 1.16 были сделаны следующие изменения:
scheduler.alpha.kubernetes.io/critical-pod в версии v1.16.0-alpha.1scheduler.alpha.kubernetes.io/critical-pod в версии v1.16.0-alpha.2scheduler.alpha.kubernetes.io/critical-pod в версии v1.16.0-beta.1
Используйте поле spec.priorityClassName для указания важности пода.
Автор: LuckySB
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/update/330466
Ссылки в тексте:
[1] CHANGELOG-1.16.md: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.16.md
[2] разрешенных: https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/0000-20170814-bounding-self-labeling-kubelets.md#proposal
[3] Источник: https://habr.com/ru/post/467883/?utm_campaign=467883&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.