Большое 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
Есть доступ к хранилищу снимков
Появился новый элемент 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.
Софт пока находится в фазе тестирования, прописывается документация для пороговых коэффициентов.
No comments