Четыре релиза 1.0 от CNCF и главные анонсы про Kubernetes с KubeCon 2017

dhi5uwjqpwipszt0opxgputyvw0.jpeg

В эти дни (6–8 декабря) в США проходит местная версия конференций KubeCon + CloudNativeCon 2017, в фокусе внимания которой многочисленные проекты некоммерческой организации CNCF во главе с Kubernetes. Мероприятие собрало более 4100 посетителей, 77% из которых используют K8s, причём в 75% случаев речь идёт про production. Событие оказалось не только богатым на анонсы от различных стартапов и гигантов индустрии, но и стало поводом для подведения итогов Open Source-сообщества из мира cloud native — достаточно заметить, что в декабре сразу у четырёх проектов CNCF состоялся знаковый релиз 1.0. Так что новенького?

Череда релизов


CoreDNS 1.0.0


1 декабря был выпущенCoreDNS 1.0.0. Подробнее об этом проекте мы уже рассказывали в отдельной статье. Если вкратце, CoreDNS — DNS-сервер, написанный на языке Go и схожий с Caddy (более того, зародился как его форк) в своём ключевом архитектурном паттерне — использовании набора из обработчиков, сцепляемых друг за другом. В качестве бэкенда (хранилища) для данных, используемых в DNS-записях, CoreDNS поддерживает etcd, Kubernetes и файл зоны в формате RFC 1035.

k8l23hg_w0ignqgqhtua0yt9swg.jpeg
Планы по развитию CoreDNS на момент апреля 2017 года

Основной областью деятельности разработчиков в подготовке CoreDNS 1.0.0 стали улучшения в плагине поддержки Kubernetes. И это логично, если вспомнить, что авторы проекта добиваются замены kube-dns. Своё намерение они подкрепляют доказательством, что функциональность CoreDNS шире, производительность — лучше, а потребление памяти — меньше. Приводится пример тестирования кластера Kubernetes с 5000 сервисами, в котором CoreDNS смог обрабатывать 18000 запросов в секунду, используя 73 Мб RAM, против показателя в 7000 qps у kube-dns с потреблением 97 Мб RAM.

Среди возможностей, в которых CoreDNS превосходит kube-dns — фильтрация записей по пространству имён (namespace) и label selector; режим pods verified для проверки подов на существование перед ответом на запрос pod.cluster.local; endpoint_pod_names для использования названий подов, когда имя хоста не установлено; autopath для автодополнения поискового пути на стороне сервера.

Поддержка CoreDNS уже добавлена в различные инструменты для Kubernetes (alpha feature для 1.9): kubeadm, kops, minikube и kubespray.

containerd 1.0.0


Про containerd у нас тоже была отдельная статья. История этого проекта такова, что, изначально будучи частью Docker, containerd пережил отделение от общей кодовой базы и превращение в независимый проект под крылом CNCF одновременно со своим конкурентом, реализующим те же функции (т.е. исполняемую среду для контейнеров), — rkt от CoreOS.

Дальнейшая судьба containerd — его интеграция в Kubernetes через интерфейс CRI («Container Runtime Interface») посредством связывающей прослойки под названием cri-containerd:

59e6f2b748408969306824.png

Подробнее об этом и очередном главном конкуренте проекта уже на новой «почве» — CRI-O — мы писали здесь. Кстати, в конце ноября было объявлено и о заметном прогрессе в развитии rkt: в CNCF анонсировали первый выпуск rktlet — реализации rkt поверх всё того же CRI.

Но возвращаясь к теме: 5 декабря состоялся релиз containerd 1.0.0. И он привнёс немало новшеств в возможности этого продукта, а в частности:

  • новую модель исполняемой среды на основе заданий (tasks),
  • определяемый клиентом push/pull для образов и возможность использования сторонней системы распространения образов,
  • систему хранения контейнеров на основе снапшотов,
  • поддержку произвольного хранилища для метаданных объектов,
  • расширенный gRPC API с пространствами имён.


Fluentd 1.0


Fluentd — написанный на Go сборщик данных, призванный унифицировать прослойку логирования между источниками логов (data sources: syslog, логи веб-сервера и т.п.) и системами их хранения (data outputs: различные СУБД, системы очередей, AWS и т.п.). Его широкая адаптация «тысячами компаний» позволяет CNCF называть fluentd «индустриальным стандартом для логирования». (К слову, сами мы его сейчас используем в своей системе логирования для Kubernetes — loghouse.)

t-dykyn44bzokucj35g2iniocok.png

В релизе 1.0 от 6 декабря появились:

  • многопроцессорные workers для лучшей производительности с SMP,
  • хранение точного времени (с точностью менее секунды) для всех записей,
  • поддержка Windows,
  • новый API для плагинов (а их уже более 700),
  • сжатие хранимых на диске данных с помощью встроенных буферов,
  • родная поддержка TLS и новый протокол Fluentd Forward Protocol v1 с поддержкой аутентификации через ключи и авторизации по логину/паролю.


Jaeger 1.0


Jaeger пополнил ряды проектов CNCF совсем недавно (в сентябре). Это распределённая система трассировки, написанная на Go, созданная в компании Uber и совместимая с OpenTracing (это тоже проект CNCF). Предназначение Jaeger — удобный мониторинг сложной микросервисной архитектуры, призванный способствовать в обнаружении причины возникающих проблем (с учётом всех зависимостей) и помогать в оптимизации производительности.

cfvnemhqnc1w1p-la3tqv_dkqwa.png

Вышедший 6 декабря Jaeger 1.0 принёс этому проекту:

  • поддержку новых бэкендов для хранения данных (к Cassandra добавился ElasticSearch, а также готовится работа над MySQL + в сообществе экспериментируют со ScyllaDB и InfluxDB),
  • многочисленные улучшения в пользовательском веб-интерфейсе,
  • полную интеграцию всех компонентов с Prometheus в качестве системы метрик по умолчанию,
  • улучшения в интеграции с Kubernetes (шаблоны для запуска в K8s и чарт для Helm),
  • раннюю версию клиента на C++,
  • значительный прогресс в обратной совместимости с Zipkin.


Новые участники CNCF


Конечно, не обошлось и без многочисленных пополнений в рядах компаний-участников CNCF.

Вместе с анонсом начала KubeCon + CloudNativeCon фонд представил сразу 31 нового члена, среди которых можно отметить Datadog (у этого SaaS-решения для мониторинга была замечательная статистика про Docker), Grafana Labs (как легко догадаться, авторы Grafana), HPE (Hewlett Packard Enterprise), InfluxData (авторы СУБД для работы с временными рядами — InfluxDB), NGINX, Pinterest (см. подробности ниже), SAP Concur (писали о них в этой истории успеха).

А в отдельных новостях было объявлено о новых участниках «высших категорий» в CNCF:

  • 4 декабря статус Gold Member получила JFrog, предлагающая инфраструктуру для управления разработкой программного обеспечения; в пресс-релизе отмечается, что компания «использует технологии вроде Kubernetes, чтобы помогать 4000+ заказчикам собирать и выпускать софт быстро, надёжно и безопасно»;
  • 6 декабря ряды CNCF пополнились платиновым участником (таковых сейчас всего 21) в виде Alibaba Cloud — ответственным за облачные технологии подразделением крупной китайской группы компаний Alibaba Group (её главный архитектор вошёл в управляющий совет CNCF); об их опыте использования Docker в production мы писали здесь;
  • 6 декабря другая китайская компания — Baidu — стала золотым членом CNCF; их основное применение Kubernetes находится в области машинного и глубокого обучения (в частности, в прошлом году был открыт код фреймворка PaddlePaddle, поддерживающего запуск в кластере K8s);
  • 8 декабря золотым членом CNCF стала компания Salesforce, которая «адаптировала многие технологии CNCF»; в частности, говорится об использовании Kubernetes как основы для внутренних процессов CI/CD, а также активное применение gRPC в команде, занимающейся service mesh.


Другие события


Были анонсированы на KubeCon 2017 и другие новости от заметных участников рынка ИТ. Среди них:

  • Brendan Burns, один из основателей проекта Kubernetes и нынешний сотрудник Microsoft, представил Metaparticle — «стандартную библиотеку для облачных (cloud native) приложений на Kubernetes», цель которой — упростить разработку распределённых систем путём предоставления «простых и мощных строительных блоков, созданных на основе контейнеров и Kubernetes»; в качестве поддерживаемых языков программирования пока заявлены только JavaScript/Node.js, Java и .NET, но список обещают вскоре расширить;


keo-7m38jt7pa_ayln3byuzuxxs.png
Пример реализации master election на JavaScript в Metaparticle

  • Oracle выпустила два Open Source-продукта, связанных с Kubernetes: инсталлятор для своей serverless-платформы Fn project и набор утилит для распределённых кластеров (Global Multi-Cluster Management);
  • Microsoft принесла ещё больше новостей, т.к.:
    1. открыла код Virtual Kubelet — альтернативной реализации одноимённого компонента Kubernetes, специально предназначенной для подключения K8s к сторонним API (в качестве примеров приводятся Azure Container Instances, Hyper.sh, AWS);
      _bvcyuqqf-ly76jl6_guoaxerpk.png
    2. открыла код Open Service Broker for Azure (OSBA), созданного на базе Open Service Broker API с целью упростить работу со службами данных Azure через Kubernetes API: «Например, с помощью OSBA и Helm вы теперь можете легко установить экземпляр Wordpress с Azure Database for MySQL вместо запуска СУБД в контейнере»; проект имеет статус альфа-версии;
    3. представила Kashti — dashboard и инструмент визуализации для пайплайнов Brigade (демонстрация на YouTube);
  • ещё один анонс от Microsoft, уже при участии Heptio, гласит о том, что компания работает над реализацией системы резервного копирования для Kubernetes-кластеров (в рамках своей недавно представленной службы Azure Kubernetes Service) с использованием Open Source-утилиты Heptio Ark;
  • менеджер продуктов из уже упомянутого онлайн-сервиса Pinterest рассказал о миграции их production-инфраструктуры на контейнеры, начавшейся в 2016 году и близкой к завершению, а также о планах её дальнейшего перевода на Kubernetes (к середине следующего года);
  • вице-президент по стратегии в области облачной архитектуры AWS выступил с докладом, в котором объявил о плане компании использовать CNI в качестве сетевой основы для контейнеров и пообещал, что все изменения, вносимые AWS в код Open Source-проектов, будут попадать в upstream (для этого в компании уже «работают с различными Open Source-проектами, сообществами и фондами»).


Наконец, грядущий релиз Kubernetes 1.9 тоже привязали к датам KubeCon 2017: буквально в эту ночь состоялся выпуск beta2, в течение ближайших суток ожидается завершение работы над всей документацией, а сам релиз запланирован на ближайший понедельник (11 декабря).

P.S. В CNCF собрали статистику о посетителях KubeCon + CloudNativeCon North America 2017 и о том, как они используют в своей инфраструктуре контейнеры и различные проекты фонда. Вот, например, главные сложности, с которыми сталкиваются опрошенные и как они менялись в течение последнего года:

trhizzaubrvneiccshkpzzzxuz4.png

P.P. S.


Читайте также в нашем блоге:

  • «Статистика The New Stack о трудностях внедрения Kubernetes»;
  • «Kubernetes 1.8: обзор основных новшеств»;
  • «Linux Foundation представила бесплатный вводный онлайн-курс по Kubernetes»;
  • «CNCF предложила бесплатное облако Open Source-проектам для DevOps/микросервисов»;
  • «Инфраструктура с Kubernetes как доступная услуга».

© Habrahabr.ru