
Днес, 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 и beta.kubernetes.io/kube-proxy-ds-ready вече не се добавят на новите възли, и различни допълнителни компоненти започнаха да използват малко различни етикети за селектор на възли:
Компонент
Старият етикет
Актуален етикет
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 вече изтрива файла за начална конфигурация на kubelet 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
