Сьогодні, 18 вересня, виходить чергова версія Kubernetes – 1.16. Як завжди на нас чекає багато покращень та новинок. Але я хотів би звернути вашу увагу на розділи Action Required файлу
Загалом вимагають ручного втручання.
Почнемо відразу зі зміни, яка, швидше за все, торкнеться всіх, хто досить довго працює з kubernetes. Kubernetes API перестав підтримувати застарілі версії ресурсів API.
Якщо хтось не знав, чи забув…Версія API ресурсу вказується у маніфесті, у полі apiVersion: apps/v1
А саме:
Тип ресурсу
Стара версія
На що треба замінити
Усі ресурси
apps/v1beta1
apps/v1beta2
apps/v1
розгортання
daemonset
replicaset
extension/v1beta1
apps/v1
networkpolicies
extensions/v1beta1
networking.k8s.io/v1
підsecuritypolicies
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-проксі
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-проксі
-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