Большое Open Source-сообщество, которое разработало Kubernetes, всегда дарит сюрпризы, каждый релиз несет в себе оригинальную трансформацию k8s 1.8 сохранил добрую традицию, представив специалистам DevOps необычную разработку.

Инновации в Kubernetes 1.8?
Сеть
В kube-proxy инсталлирован бэкап IPVS, он обеспечивает:

Управление нагрузкой;
отслеживает сервисы;
генерирует netlink;
сохраняет постоянство IPVS.

Получив команду, трафик отправляется к какому-то из pod end. IPVS на выбор способен предложить разные пути, что обеспечивает оптимальное распределение нагрузки. Широкая общественность ждала от Kubernetes нечто подобное и не обманулась в своих надеждах. Есть также дополнительные инновации в бета-варианте:

Поддержка стратегии для трафика EgressRules в NetworkPolicy API (исходящего).
Есть возможность использовать правила по CIDR источника/получателя (использование ipBlockRule).

Базовая инновация в самом планировщике: способность делегировать подам различные приоритеты, что дает возможность рачительно относиться к ресурсам в случае их дефицита. Поды с высоким приоритетом имеют больше возможности на выполнение задачи. Если освобождаются возможности в отделе (preemption), то поды с более низким приоритетом также имеют высокий шанс быть задействованы в кластере. Чтобы воплотить подобную идею, потребовалось изменить алгоритм выборки подов

(eviction strategy), теперь (в альфа-варианте) учитываются такие факторы:

Приоритет.
Количество используемых ресурсов.

Более подробно со всеми приоритетами можно ознакомиться в документации.

В альфа-варианте присутствует еще одна инновация: комплексный механизм обработки условий на узлах. Изначально сложилось так, что в этом блоке записываются неполадки, возникающие в узле. Taints Node by Condition позволяет размечать узел, после этого можно будет определяться с дополнительными действиями.

Хранилища
Стабилизировался монтаж вариантов для томов, при этом есть новвоведение в PersistentVolume возникло совершено оригинальное поле (ране было annotations) MountOptions. Оно направляет варианты монтажа. В StorageClass также присутствует MountOptions, отвечает за динамическое создание различных томов.

В API метрики Kubernetes привнесены данные о свободном поле в константных блоках (PV). Есть также метрики правильности реализации и замедления вызовов.

В StorageClass введен бета-вариант бэкап описания reclaim policy (подобно PersistentVolume).

Дополнительно присутствуют:

Kubernetes API теперь можно увеличивать объем тома;
Предлагается обновленный ephemeral-storage,
Есть усовершенствованное пространство VolumeMount.Propagation
Есть доступ к хранилищу снимков

Kubelet
 

Появился новый элемент CPU Manager, напрямую он коррелирует с kuberuntime, для подов

Он выделяет ядра процессоров, что позволяет решать вопросы:

Сбои в производительности машины;
«Зависания», которые генерируются работой планировщика ОС.

Kubelet дает шанс конфигурировать блок во всему кластеру.

Метрики
Метрики поддерживаются в Horizontal Pod (в бета-исполнении), больше их скачивать нет необходимости.

Cluster Autoscaler
Cluster Autoscaler управляет объемом блока, она имеет теперь константный модус (GA), бэкап реализуется до тысячи узлов.

kubeadm и kops
Есть новый деплой блока (control plane). Документы могут, находится на (hostPath). Еще одна функция (версия альфа), реализация различных вспомогательных задач. Все это позволяет более полно интегрировать kubeadm с provisioning-утилитами похожими на kops и GKE.

CLI
 

Небольшая программка kubectl может расширяться с использованием дополнительных программ. С использованием StatefulSet обеспечиваются команды:

Rollout;
Rollback

API
 

Новшество в API имеет APIListChunking – это оригинальный подход к генерированию ответов на обращения LIST. Теперь присутствует дифференциация на небольшие блоки, которые отпускаются в заданных пределах. Все это позволяет более экономно использовать ресурсы

CustomResourceDefinition API стало делать объекты валидными, в основе лежит JSON-планировщик (из CRD-описания. Рациональней стало функционирование сборщика «мусора».

 
Workload API
 

Workload API – это базовый блок, включает элементы (версия v1beta2):

Дополнительные трансформации.

Руководство входом, в основе которого роли (RBAC), применяют API rbac.authoriztion.k8s.io.
Появилось новое API Self Subject Rules Review (позволяет анализировать динамику с применением пространственных имен. Все это позволяет сохранять коды для зашифровки. В PodSecurityPolicies есть бэкап «белогого» перечня паттернов для хоста.
Есть бэкап CRI-O (Container Runtime Interface), он создан на базе Open Container Initiative.
Стала константной CRI-O.
Бэкап Multi-cluster (называлась раньше Federation) будет постоянно присутствовать во всех версиях Kubernetes.

Софт пока находится в фазе тестирования, прописывается документация для пороговых коэффициентов.