Kubernetes 1.8: приоритеты для подов, IPVS в kube-proxy, стабильный Cluster Autoscaler…
Этой ночью состоялся новый релиз популярной Open Source-системы для управления контейнерами, изначально созданной в Google и поддерживаемой некоммерческой организацией CNCF при The Linux Foundation, — Kubernetes 1.8.
Новая версия Kubernetes принесла изменения во многие компоненты системы, стабилизацию представленных ранее возможностей и появление ряда новых фич в статусе альфа- или бета-тестирования. Среди наиболее значимых новшеств в Kubernetes 1.8 можно выделить следующие:
- (альфа) режим IPVS для балансировки нагрузки (вместо iptables) в kube-proxy;
- (альфа) возможность задавать подам приоритеты (поле PriorityClassName в спецификации пода — PodSpec);
- указание опций монтирования для томов стало стабильным (поле MountOptions в спецификациях PersistentVolume и StorageClass);
- (альфа) в Kubernetes API добавлена возможность увеличения размера тома (пока что поддерживается только GlusterFS);
- (альфа) началась работа над изоляцией хранилищ данных: в ресурсе ephemeral-storage можно устанавливать ограничения на возможный объём и количество запросов к нему;
- (альфа) доступен ранний прототип создания снимков томов (volume snapshots) через Kubernetes API;
- (альфа) в kubelet появился CPU Manager, позволяющий назначать контейнерам подов выделенные ядра процессоров (CPU affinity policies на уровне контейнеров);
- утилита Cluster Autoscaler, позволяющая автоматически изменять размер кластера, стала стабильной (GA) и получила поддержку до 1000 узлов;
- (альфа) деплой кластера self-hosted с помощью утилиты kubeadm и автоматическое его обновление (kubeadm upgrade);
- управление доступом на основе ролей (RBAC) переведено в стабильный статус (GA);
- (альфа) представлен механизм для хранения ключей шифрования ресурсов в сторонних системах (Key Management Systems, KMS);
- поддержка CRI-O (Container Runtime Interface) на базе стандарта от Open Container Initiative объявлена стабильной (прошла все тесты e2e);
- metrics-server стал рекомендованным способом предоставления API для метрик ресурсов (Heapster объявлен устаревшим).
Во время подготовки Kubernetes 1.8 проект собирался со следующими версиями Docker: 1.11.2, 1.12.6, 1.13.1, 17.03.2. Более подробно с изменениями, представленными в релизе 1.8, а также с советами по обновлению кластеров и известными проблемами можно ознакомиться в этом документе.
Дмитрий Шурупов по материалам Kubernetes Blog, Хабрахабр.