- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

CoreDNS 1.0.0

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

Четыре релиза 1.0 от CNCF и главные анонсы про Kubernetes с KubeCon 2017 - 2
Планы по развитию CoreDNS на момент апреля 2017 года [4]

Основной областью деятельности разработчиков в подготовке CoreDNS 1.0.0 стали улучшения в плагине поддержки Kubernetes. И это логично, если вспомнить, что авторы проекта добиваются [5] замены 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 [6] у нас тоже была отдельная статья [7]. История этого проекта такова, что, изначально будучи частью Docker, containerd пережил отделение от общей кодовой базы и превращение в независимый проект под крылом CNCF одновременно [8] со своим конкурентом, реализующим те же функции (т.е. исполняемую среду для контейнеров), — rkt от CoreOS.

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

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

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

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

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

Fluentd 1.0

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

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

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

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

Jaeger 1.0

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

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

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

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

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

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

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

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

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

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

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

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

Четыре релиза 1.0 от CNCF и главные анонсы про Kubernetes с KubeCon 2017 - 6
Пример реализации master election на JavaScript в Metaparticle

  • Oracle выпустила [35] два Open Source-продукта, связанных с Kubernetes: инсталлятор для своей serverless-платформы Fn project [36] и набор утилит для распределённых кластеров (Global Multi-Cluster Management);
  • Microsoft принесла [37] ещё больше новостей, т.к.:
    1. открыла код Virtual Kubelet [38] — альтернативной реализации одноимённого компонента Kubernetes, специально предназначенной для подключения K8s к сторонним API (в качестве примеров приводятся Azure Container Instances, Hyper.sh, AWS);
      Четыре релиза 1.0 от CNCF и главные анонсы про Kubernetes с KubeCon 2017 - 7
    2. открыла [39] код Open Service Broker for Azure (OSBA) [40], созданного на базе Open Service Broker API с целью упростить работу со службами данных Azure через Kubernetes API: «Например, с помощью OSBA и Helm вы теперь можете легко установить экземпляр WordPress с Azure Database for MySQL вместо запуска СУБД в контейнере»; проект имеет статус альфа-версии;
    3. представила [41] Kashti [42] — dashboard и инструмент визуализации для пайплайнов Brigade (демонстрация на YouTube [43]);
  • ещё один анонс [44] от Microsoft, уже при участии Heptio, гласит о том, что компания работает над реализацией системы резервного копирования для Kubernetes-кластеров (в рамках своей недавно представленной службы Azure Kubernetes Service) с использованием Open Source-утилиты Heptio Ark [45];
  • менеджер продуктов из уже упомянутого онлайн-сервиса Pinterest рассказал [46] о миграции их production-инфраструктуры на контейнеры, начавшейся в 2016 году и близкой к завершению, а также о планах её дальнейшего перевода на Kubernetes (к середине следующего года);
  • вице-президент по стратегии в области облачной архитектуры AWS выступил [47] с докладом, в котором объявил о плане компании использовать CNI [48] в качестве сетевой основы для контейнеров и пообещал, что все изменения, вносимые AWS в код Open Source-проектов, будут попадать в upstream (для этого в компании уже «работают с различными Open Source-проектами, сообществами и фондами»).

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

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

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

P.P.S.

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

Автор: shurup

Источник [56]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/konferentsii/270184

Ссылки в тексте:

[1] был выпущен: https://coredns.io/2017/12/01/coredns-1.0.0-release/

[2] CoreDNS: https://coredns.io/

[3] отдельной статье: https://habrahabr.ru/company/flant/blog/331872/

[4] апреля 2017 года: https://www.youtube.com/watch?v=dN4klmE7JNI

[5] добиваются: https://github.com/kubernetes/community/pull/1100

[6] containerd: https://containerd.io/

[7] отдельная статья: https://habrahabr.ru/company/flant/blog/325358/

[8] одновременно: https://www.nixp.ru/news/13965.html

[9] cri-containerd: https://github.com/kubernetes-incubator/cri-containerd

[10] здесь: https://habrahabr.ru/company/flant/blog/340010/

[11] анонсировали: https://www.cncf.io/blog/2017/11/29/announcing-initial-release-rktlet-rkt-cri-implementation/

[12] rktlet: https://github.com/kubernetes-incubator/rktlet

[13] состоялся: https://www.cncf.io/blog/2017/12/05/general-availability-containerd-1-0/

[14] немало новшеств: https://github.com/containerd/containerd/releases/tag/v1.0.0

[15] Fluentd: https://www.fluentd.org/

[16] loghouse: https://habrahabr.ru/company/flant/blog/341386/

[17] релизе 1.0: https://www.cncf.io/blog/2017/12/06/fluentd-v1-0/

[18] Jaeger: https://uber.github.io/jaeger/

[19] недавно: https://www.nixp.ru/news/14171.html

[20] OpenTracing: http://opentracing.io/

[21] Вышедший: https://www.cncf.io/blog/2017/12/06/announcing-jaeger-1-0-release/

[22] шаблоны: https://github.com/jaegertracing/jaeger-kubernetes

[23] чарт для Helm: https://github.com/kubernetes/charts/tree/master/incubator/jaeger

[24] представил: https://www.cncf.io/announcement/2017/12/06/cloud-native-computing-foundation-kicks-off-kubecon-cloudnativecon-31-new-members/

[25] замечательная статистика: https://habrahabr.ru/company/flant/blog/326784/

[26] этой истории успеха: https://habrahabr.ru/company/flant/blog/334770/

[27] получила: https://www.cncf.io/announcement/2017/12/04/cloud-native-computing-foundation-announces-jfrog-gold-member/

[28] пополнились: https://www.cncf.io/announcement/2017/12/06/cloud-native-computing-foundation-welcomes-alibaba-cloud-platinum-member/

[29] здесь: https://habrahabr.ru/company/flant/blog/328380/

[30] Baidu: https://www.cncf.io/announcement/2017/12/06/baidu-joins-cloud-native-computing-foundation-gold-member/

[31] PaddlePaddle: https://github.com/PaddlePaddle/Paddle

[32] стала: https://engineering.salesforce.com/salesforce-goes-big-with-containers-service-meshes-joins-the-cncf-b5af2376ee33

[33] представил: https://venturebeat.com/2017/12/06/kubernetes-cofounder-launches-programming-library-to-simplify-cloud-native-development/

[34] Metaparticle: https://metaparticle.io/

[35] выпустила: https://www.nixp.ru/news/14264.html

[36] Fn project: http://fnproject.io/

[37] принесла: https://azure.microsoft.com/en-us/blog/azure-brings-new-serverless-and-devops-capabilities-to-the-kubernetes-community/

[38] Virtual Kubelet: https://github.com/virtual-kubelet/virtual-kubelet

[39] открыла: https://azure.microsoft.com/en-us/blog/connect-your-applications-to-azure-with-open-service-broker-for-azure/

[40] Open Service Broker for Azure (OSBA): https://github.com/azure/open-service-broker-azure

[41] представила: https://open.microsoft.com/2017/12/06/kashti-kubernetes-open-source-microsoft/

[42] Kashti: http://kashti.sh/

[43] демонстрация на YouTube: https://www.youtube.com/watch?v=cCOHGuAIqNU

[44] анонс: https://venturebeat.com/2017/12/07/microsoft-taps-heptios-ark-technology-for-managed-kubernetes-backup/

[45] Heptio Ark: https://github.com/heptio/ark

[46] рассказал: https://www.geekwire.com/2017/born-cloud-behind-times-pinterest-doubled-containers-kubernetes/

[47] выступил: https://www.rcrwireless.com/20171206/aws-vp-of-architect-strategy-highlights-cloud-native-principles-tag27

[48] CNI: https://habrahabr.ru/company/flant/blog/329830/

[49] привязали: https://github.com/kubernetes/features/blob/master/release-1.9/release-1.9.md

[50] собрали статистику: https://www.cncf.io/blog/2017/12/06/cloud-native-technologies-scaling-production-applications/

[51] Статистика The New Stack о трудностях внедрения Kubernetes: https://habrahabr.ru/company/flant/blog/340270/

[52] Kubernetes 1.8: обзор основных новшеств: https://habrahabr.ru/company/flant/blog/338230/

[53] Linux Foundation представила бесплатный вводный онлайн-курс по Kubernetes: https://habrahabr.ru/company/flant/blog/332990/

[54] CNCF предложила бесплатное облако Open Source-проектам для DevOps/микросервисов: https://habrahabr.ru/company/flant/blog/335218/

[55] Инфраструктура с Kubernetes как доступная услуга: https://habrahabr.ru/company/flant/blog/341760/

[56] Источник: https://habrahabr.ru/post/344098/?utm_campaign=344098