Сегодня, 18 сентября, выходит очередная версия Kubernetes — 1.16. Как всегда нас ждет много улучшений и новинок. Но я хотел бы обратить ваше внимание на разделы Action Required файла
В общем, требуют ручного вмешательства…
Начнем сразу с изменения, которое, скорее всего, затронет всех, кто достаточно долго работает с kubernetes. Kubernetes API перестал поддерживать устаревшие версии 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
), оставили только вот этот список
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.1 - вернули аннотацию
scheduler.alpha.kubernetes.io/critical-pod
в версии v1.16.0-alpha.2 - убрали аннотацию
scheduler.alpha.kubernetes.io/critical-pod
в версии v1.16.0-beta.1
Используйте поле spec.priorityClassName
для указания важности пода.
Источник: habr.com