company_banner

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



    В эти дни (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.


    Планы по развитию 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:



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

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

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

    Fluentd 1.0


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



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

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

    Jaeger 1.0


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



    Вышедший 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, но список обещают вскоре расширить;


    Пример реализации 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);

      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 и о том, как они используют в своей инфраструктуре контейнеры и различные проекты фонда. Вот, например, главные сложности, с которыми сталкиваются опрошенные и как они менялись в течение последнего года:



    P.P.S.


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

    • +14
    • 3,5k
    • 9
    Флант
    323,00
    Специалисты по DevOps и высоким нагрузкам в вебе
    Поддержать автора
    Поделиться публикацией

    Комментарии 9

      +1
      неточность: Fluentd написан не на Go — там Ruby.
        0
        Это точно: такое ощущение, что Go написал «по привычке» (применительно к остальным проектам). Спасибо, исправил!
        +1
        Последнее время очень много информации о Kubernetes, проект активно развивается, и то что люди пишут выглядит очень красиво. Но, насколько я понимаю, порог вхождения в тему довольно высокий. Хотел бы спросить у людей, которые успешно разворачивали и поддерживали инфраструктуру на K8s, с чего можно начать изучение, какую минимальную конфигурацию оборудования (кол-во серверов/ядер/памяти) надо иметь, чтобы развернуть тестовую среду с возможностью протестировать все основные компоненты и функции?
          +1

          Начать можно с minikube — он дает полноценную среду k8s со всеми основными сервисами на локальном ПК. Для разворачивания в продакшене или около того рекомендую kubespray, у него же есть Vagrantfile на три виртуалки c более похожим для боевой кластером, но для разработки и тестирования манифестов миникуб намного удобней.
          Для мастеров k8s надо как минимум два гига оперативки и одно-два ядра, для рабочих нод уже зависит от запускаемых контейнеров, но как минимум столько же.

            +1
            К совету выше про minikube для самого старта (устранения того самого «порога вхождения») — присоединяюсь. Мы переводили статью по быстрому старту в нём. Но перед этим полезно общую теорию по K8s почитать — об общих принципах работы, основных примитивах и т.п. Сами мы хотели такой цикл статей сообразить, но никак не получается добраться, а в зарубежном интернете подобные материалы появляются всё чаще. К слову, про самые-самые основы был хороший доклад «Наш опыт с Kubernetes в небольших проектах» (там же есть ссылка на видео); большую его часть составляет именно введение в Kubernetes.
              0
                0
                K8s the hard way — это жестоко :) Но зато можно посмотреть и потрогать каждый компонент.
                Вот лист online тренингов (с примерами проще учиться):


                Все 3 одинаковые более или менее, из них 1 точно бесплатный.
              +1
              Можно попробовать развернуть кубернетес через Rancher, мне показалось это проще, сразу получите все что нужно, и легкое добавление хостов через web-интерфейс и настроенный из коробки и fluentd и grafana и web-дашборд.
              Но если хотите в деталях понять как это все работает, лучше, хоть раз, поставить руками мастера, ноды, попробовать их по обновлять, по выгонять, по добавлять в кластер, перед тем как внедрить это все на бой.
                +1
                Впечатления очень двоякие от Kubecon 2017. Основной материал — маркетинговые презентации. Чисто технических сессий было мало, но зато была куча технического народ, с кем можно было свободно пообщаться. С точки зрения цифр — опыт Alibaba Cloud очень впечатляющий, Github сделали большой шаг вперед с Kubernetes. Большинство интересных сессий были от Google, Redhat провели небольшую встречу, где рассказали о том, с чего начинать, буквально 5 баш команд и можно поиграть с minicube. Grpc активно идет в массы, множество продуктов заявляют о его поддержке. Была неформальная сессия от Google, посвященная grpc, в виде вопросов и ответов.
                Интересно, но к концу третьего дня в голове какая-то каша.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое