• Kubernetes tips & tricks: перевод работающих в кластере ресурсов под управление Helm 2



      Необходимость подхвата ресурсов кластера Kubernetes может возникнуть в боевых условиях, когда нельзя просто пересоздать их инструментами Helm. Можно выделить две основные причины:

      • Будет простой — вне зависимости от того, облако у вас или bare metal.
      • При удалении могут потеряться сервисы в облаках, а также слетят связанные Load Balancer'ы в Kubernetes.

      В нашем же случае, решение потребовалось для подхвата работающих ingress-nginx'ов при интеграции нашего оператора Kubernetes.
      Читать дальше →
    • Байки поддержки первой линии: отличная работа, если у вас крепкие нервы



        Мы поддерживаем офис одной сервисной компании и хотели бы немного рассказать про нашу работу. Для поднятия настроения, так сказать. В общем-то, наш день выглядит одинаково: приходим, логинимся в cisco agent, садимся за телефон и начинаем слушать хотелки юзеров. Что-то разруливаем сами, что-то передаём второй линии рядом. Несмотря на то, что офис заказчика состоит преимущественно из инженеров, тикеты не очень сильно отличаются от тикетов нефтегазовой компании или госкомпании. Конечно, без того, чтобы проехать 200 километров, чтобы включить принтер в розетку (реальный случай), но всё же.

        Хотя, например, эта разница очень сильно проявилась, когда безопасники в очередной раз дали задачу пройтись по кабинетам и посмотреть, кто хранит записанные пароли на рабочих местах. Поначалу без сюрпризов — где-то каждый тридцатый записывает и клеит на монитор. Проблема была в том, что если в бухгалтерии это верные пароли («А откуда шпион узнает, что это пароль, а?»), то ушлые инженеры специально записывают какие-то случайные комбинации символов. Видимо, прикалываются над безопасниками.
        Читать дальше →
      • Docker, или Туда и обратно

          С появлением docker у нас, как у сервиса мониторинга немного усложнилась жизнь. Как я писал ранее, одна из фишек нашего сервиса — автодетект сервисов, то есть агент сам находит запущенные на сервере сервисы, читает их конфиги и начинает сбор метрик.


          Но в какой-то момент в production у наших клиентов начал появляться докер, и наш автодетект перестал работать. Процессу, который запускается через докер, проставляются различные namespace (mnt, net, user, pid), это достаточно сильно усложняет работу извне контейнера с файлами и сетью внутри контейнера.


          Под катом я расскажу, как мы решали эту проблему, какие варианты пробовали, и что в итоге заработало.

          Читать дальше →
          • +27
          • 16.9k
          • 9
        • Что общего у крупных успешных Open Source-проектов?



            В организации The Linux Foundation задались вопросом, что объединяет проекты с открытым кодом, которым удалось собрать вокруг себя большое сообщество и добиться быстрых темпов разработки. Чтобы ответить на него, Дэн Кон (Dan Kohn), возглавляющий одно из многочисленных подразделений организации — CNCF (Cloud Native Computing Foundation), и его коллега-разработчик (Łukasz Gryglicki) создали визуализацию для 30 самых активно развивающихся Open Source-проектов, по статистическим данным с мая 2016 по апрель 2017 года. В качестве численных показателей, которые были учтены для выборки самих проектов и их визуализации, авторы использовали:
            Читать дальше →
          • Статистика по базовым операционным системам в образах на Docker Hub



              Американская компания Anchore, созданная основателем Ansible Inc., с помощью своего сервиса Anchore Navigator, предназначенного для исследования контейнерных образов, проанализировала Docker Hub и ответила на следующие вопросы:

              1. Какие операционные системы используются больше всего?
              2. Как выбор ОС менялся на протяжении времени?
              3. Отличаются ли паттерны их использования для официальных и публичных образов?
              Читать дальше →
              • +27
              • 12.4k
              • 4
            • Как на самом деле работает планировщик Kubernetes?

              • Translation
              Прим. перев.: Эта статья написана Julia Evans — инженером международной компании Stripe, специализирующейся на интернет-платежах. Разбираться во внутренностях работы планировщика Kubernetes её побудил периодически возникающий баг с «зависанием» пода, о котором около месяца назад также сообщили специалисты из Rancher Labs (issue 49314). Проблема была решена и позволила поделиться деталями о техническом устройстве одного из базовых механизмов Kubernetes, которые и представлены в этом статье с необходимыми выдержками из соответствующего кода проекта.



              На этой неделе мне стали известны подробности о том, как работает планировщик Kubernetes, и я хочу поделиться ими с теми, кто готов погрузиться в дебри организации того, как это в действительности работает.
              Читать дальше →
              • +23
              • 10.9k
              • 2
            • CNCF предложила бесплатное облако Open Source-проектам для DevOps/микросервисов



                Во вторник организация CNCF (Cloud Native Computing Foundation) объявила о публичной доступности своей «инфраструктурной лаборатории» — CNCF Community Infrastructure Lab (CIL). Это означает, что Open Source-проекты, связанные с микросервисной архитектурой и «облачным» (cloud native) подходом, могут бесплатно получить в своё распоряжение инфраструктуру для тестирования функционирования и производительности своих наработок в облаке нужного масштаба.
                Читать дальше →
                • +14
                • 4.4k
                • 7
              • Настройка основного и двух резервных операторов на Linux-роутере с NetGWM

                  Задача резервирования основного шлюза — одна из самых популярных в сетевом администрировании. У нее есть целый ряд решений, которые реализуют механизмы приоритезации или балансировки исходящих каналов для абсолютного большинства современных маршрутизаторов, в том числе и маршрутизаторов на базе Linux.



                  В статье об отказоустойчивом роутере мы вскользь упоминали свой корпоративный стандарт для решения этой задачи — Open Source-продукт NetGWM — и обещали рассказать об этой утилите подробнее. Из этой статьи вы узнаете, как устроена утилита, какие «фишки» можно использовать в работе с ней и почему мы решили отказаться от использования альтернативных решений.
                  Читать дальше →
                • Play with Docker — онлайн-сервис для практического знакомства с Docker



                    В конце прошлого года два капитана Docker представили свою разработку под названием Play with Docker (PWD) — «игровую площадку для Docker». Пользователям предлагается бесплатно поработать со сборкой и запуском Docker-контейнеров прямо в веб-браузере, а также выполнить лабораторные работы для знакомства с Docker с нуля и совершенствования своих навыков.
                    Читать дальше →
                    • +39
                    • 43.6k
                    • 6
                  • Истории успеха Kubernetes в production. Часть 1: 4200 подов и TessMaster у eBay

                      Как это часто бывает в первые годы жизни инфраструктурных проектов, стремительно набирающих популярность, пока многие только присматриваются к Kubernetes, оценивая его возможности и зрелость, другие успевают продвинуться дальше, протестировать и запустить в production (полностью или частично), получив свой первый «взрослый» опыт эксплуатации. Эта статья начинает обзорный цикл примеров из мировой практики достаточно известных компаний, использующих Kubernetes в production.



                      Примечание: все примеры рассказывают об использовании оригинального upstream-дистрибутива Kubernetes, а не его производных вроде OpenShift (Red Hat) и Tectonic (CoreOS).

                      Начнём с eBay, специалисты которой серьёзно работают с Kubernetes уже более 2 лет и значительно продвинулись в этом…
                      Читать дальше →
                      • +20
                      • 11.8k
                      • 2
                    • Полезные команды и советы при работе с Kubernetes через консольную утилиту kubectl

                      • Translation
                      Предисловие переводчика: Эта статья — комбинация из перевода двух материалов от проекта CoreOS (см. ссылки в конце публикации), посвящённых работе с консольным инструментом для выполнения команд на кластерах Kubernetes — kubectl. Листинг, приведённый автором оригинала для Mac OS X, был адаптирован под Linux, в других листингах было исправлено форматирование YAML, а для удобства чтения всего материала в него были добавлены подзаголовки.

                      Kubectl — инструмент, который знаком пользователям Kubernetes и обладает широкими функциональными возможностями. Овладение ими занимает время, но позволяет увидеть, что это более мощный инструмент, чем многие предполагали. Представляю набор советов, позволяющих улучшить ваши возможности при работе с kubectl. Не забудьте также посмотреть на cheat sheet в секции официальной документации Kubernetes!
                      Читать дальше →
                      • +25
                      • 21.3k
                      • 1
                    • Официально представляем dapp — DevOps-утилиту для сопровождения CI/CD

                        Читатели этого блога, а также посетители последних HighLoad++ и РИТ++ с большой вероятностью уже слышали про нашу утилиту для DevOps-инженеров dapp, но теперь мы решили официально и окончательно представить её «большому миру». Формальное право на то нам даёт тот факт, что мы работаем с dapp для решения задач в production уже больше года, поэтому считаем, что технология созрела для более массового использования.

                        Обновлено 13 августа 2019 г.: в настоящее время проект dapp переименован в werf, его код переписан на Go, а документация значительно улучшена.



                        Итак, dapp — написанный на Ruby инструмент, созданный в компании «Флант» как Open Source-проект для реализации и сопровождения процессов CI/CD. Что он позволяет?
                        Читать дальше →
                        • +26
                        • 12.6k
                        • 6
                      • Начало работы в Kubernetes с помощью Minikube

                        • Translation
                        • Tutorial


                        Предисловие переводчика: Minikube — удобный инструмент, который мы применяем в компании для локальных экспериментов с Kubernetes (в частности, для выполнения лабораторных работ по этой системе при обучении сотрудников). Эта статья показалась мне полезной во время моего знакомства с Kubernetes. Она написана год назад автором, использующим Mac OS X, а я проделывал все операции в Ubuntu 16.04 совсем недавно и с актуальными версиями основного софта: Minikube 0.20, Docker 17.06.0-ce, kubectl 1.7.0. Поэтому все выводы команд были переделаны под новые версии и незначительно отличаются от приведённых в оригинальной статье.
                        Читать дальше →
                        • +24
                        • 35.5k
                        • 4
                      • GitLab CI для непрерывной интеграции и доставки в production. Часть 2: преодолевая трудности


                          Эта статья продолжает первую часть, содержащую подробное описание нашего пайплайна:

                          image

                          … и рассказывает о проблемах, с которыми мы столкнулись для его реализации, и их решении.

                          Итак, я остановился на том, что созданный .gitlab-ci.yml не позволяет реализовать пайплайн в полной мере, поскольку GitLab CI не предоставляет директив для разделения задач по пользователям и для описания зависимостей выполнения задач от статуса выполнения других задач, а также не позволяет разрешить модификацию .gitlab-ci.yml только для отдельных пользователей.
                          Читать дальше →
                        • GitLab CI для непрерывной интеграции и доставки в production. Часть 1: наш пайплайн



                            Итак, GitLab CI: что можно ещё рассказать о нём? На хабре уже есть статьи про установку, про настройку раннеров, про командное использование, про GitLab Flow. Пожалуй, не хватает описаний того, как используется GitLab CI в реальном проекте, где задействовано несколько команд. А в современном мире разработки ПО это действительно так: ведь есть (как минимум) разработчики, тестировщики, DevOps- и релиз-инженеры. С подобным разделением на команды мы работаем уже несколько лет. В этой статье я расскажу о том, как мы, используя и улучшая возможности GitLab CI, реализовали и применяем в production для коллектива из нескольких команд процессы непрерывной интеграции (CI) и отчасти доставки приложений (CD).
                            Читать дальше →
                          • Сравнение производительности сетевых решений для Kubernetes

                            • Translation


                            Kubernetes требует, чтобы каждый контейнер в кластере имел уникальный, маршрутизируемый IP. Kubernetes не назначает IP-адреса сам, оставляя эту задачу сторонним решениям.

                            Цель этого исследования — найти решение с наименьшими задержками, наибольшей пропускной способностью и самой небольшой стоимостью настройки. Поскольку наша нагрузка зависит от задержек, мы измеряем задержки высоких перцентилей при достаточно активной сетевой нагрузке. В частности, мы сфокусировались на производительности в районе 30-50 процентов от максимальной нагрузки, поскольку это лучше всего отражает типовые ситуации для неперегруженных систем.
                            Читать дальше →
                            • +23
                            • 17.4k
                            • 6
                          • CoreDNS — DNS-сервер для мира cloud native и Service Discovery для Kubernetes



                              Две недели назад Open Source-проект CoreDNS отметился своим очередным релизом — 008. Авторы называют свой продукт «DNS-сервером, состоящим из цепочки промежуточных компонентов (middleware), каждый из которых реализует какую-то возможность DNS». Что примечательно, они уже успели добиться включения CoreDNS в список официальных проектов организации CNCF (Cloud Native Computing Foundation), пополнив ряды Kubernetes, Prometheus, CNI, containerd, rkt и других разработок, активно применяемых в мире контейнеров, микросервисов и «родных облачных приложений» (cloud native).

                              Как появился CoreDNS, для чего он предназначен и как его можно использовать?
                              Читать дальше →
                            • Зачем нужен Kubernetes и почему он больше, чем PaaS?



                                В большой production пришёл не только Docker, но и Kubernetes. И если даже с контейнерами далеко не всегда всё достаточно просто, то уж «кормчий» и подавно остаётся за гранью правильного понимания среди многих системных администраторов, DevOps-инженеров, разработчиков. В этой небольшой статье предпринята попытка ответить на один из вечных вопросов (в контексте Kubernetes) с помощью наглядного объяснения идеи и особенностей данного проекта. Возможно, именно этого вам не хватало для того, чтобы начать плотное знакомство с Kubernetes или даже его эксплуатацию?

                                Соучредитель и архитектор крупного онлайн-сервиса Box (около 1400 сотрудников) Sam Ghods в своём прошлогоднем выступлении на KubeCon указал на типовую ошибку восприятия Kubernetes. Многие рассматривают этот продукт как очередной фреймворк для оркестровки контейнеров. Но если бы всё действительно было так, то зачем его разработчики неустанно напоминают про «корни Kubernetes API, уходящие в архитектуру*, создаваемую более 10 лет в рамках проекта Google Borg»?..
                                Читать дальше →
                              • Наш опыт с Kubernetes в небольших проектах (обзор и видео доклада)

                                  Дмитрий Столяров (Флант) с докладом про Kubernetes на RootConf, РИТ++ 2017

                                  6 июня на конференции RootConf 2017, проходившей в рамках фестиваля «Российские интернет-технологии» (РИТ++ 2017), в секции «Непрерывное развертывание и деплой» прозвучал доклад «Наш опыт с Kubernetes в небольших проектах». В нём рассказывалось об устройстве, принципах работы и основных возможностях Kubernetes, а также о нашей практике использования этой системы в небольших проектах.

                                  По традиции мы рады представить видео с докладом (около часа, гораздо информативнее статьи) и основную выжимку в текстовом виде.
                                  Читать дальше →
                                • Awless — мощная альтернативная CLI-утилита для работы с сервисами AWS



                                    Все пользователи облачных сервисов Amazon давно знают про родной консольный инструмент для работы с ними — aws-cli. Но оказалось, что далеко не всем его достаточно: по этой причине компания WALLIX выпустила альтернативное и более функциональное решение под названием awless.

                                    Исходный код awless написан на языке Go (использует AWS Go SDK) и опубликован на GitHub под свободной лицензией (Apache License 2.0). Текущая версия awless — 0.1.0. Поддерживаются операционные системы GNU/Linux, Mac OS X и Windows. Что же позволяет эта утилита?
                                    Читать дальше →
                                    • +11
                                    • 5.5k
                                    • 4