Pull to refresh
161
0.3
Пацев Антон @chemtech

DevOps-инженер

Send message

Квоты в Kubernetes: очевидные, менее очевидные и совсем не очевидные

Level of difficultyMedium
Reading time15 min
Views8.5K

Привет, Хабр! Я Виктор, техлид продукта CI/CD в Samokat.tech. А это, :(){ :|:& };: fork-бомба, которая создаёт свои дочерние процессы бесконечно. Запуск такой штуки в контейнере без ограничений роняет всю ноду. Не используйте в проде! Если запустить в WSL, то винду тоже укладывает. Как же избежать запуска такой штуки на проде? Помогут квоты.

Давайте разберемся как работают квоты в Kubernetes. Там есть немало граблей. В этой статье поделюсь своим опытом по работе с квотами – расскажу, чем квоты хороши, что у них под капотом, в каких задачах используются и почему нужны даже в среде single-tenant.

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments7

Знакомимся с Access Logs и фильтрами в Envoy и Istio service mesh

Reading time11 min
Views4K

Не у всех есть необходимость в тонкой настройке access logging в Envoy, но если она всё-таки возникает, то могут понадобиться примеры, которых почему-то не очень много в документации. Поэтому мы сделали перевод статьи, где вы можете познакомиться с Envoy, узнать, как включить журнал доступа (access log) Envoy в Istio, и научиться настраивать фильтры.

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

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments0

Kubernetes для сетевых инженеров

Level of difficultyEasy
Reading time11 min
Views5.4K

Kubernetes использует примитивы Linux в качестве строительных блоков для своей собственной сетевой модели. Сеть в Kubernetes представляет из себя сложную для понимания и для администрирования систему. Однако, большая часть из привычных для системных администраторов и сетевых инженеров, инструментов доступна и для Kubernetes. Навыки, приобретенные, за годы работы с привычным технологическим стеком можно применить для решения проблем в системе Kubernetes.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments4

Как настроить мониторинг и оповещения на Nginx ingress в Kubernetes

Reading time8 min
Views12K


Команда VK Cloud перевела пошаговую инструкцию о том, как установить и сконфигурировать ingress-nginx, Prometheus и Grafana, а также настроить оповещения для ключевых метрик Ingress. Для работы понадобится кластер Kubernetes и Helm v3.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments3

eBPF и его возможности

Reading time10 min
Views15K
image

Откройте для себя современные возможности ядра GNU/Linux, которые пригодятся вам для обеспечения мониторинга, наблюдаемости, безопасности, инжиниринга производительности и профилирования – всё это достижимо при помощи eBPF. Ниже будет разобрано несколько практических случаев и дана информация, касающаяся внутреннего устройства BPF.
Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments2

Экономный APM для backend или как использовать Loki+Grafana+логи приложения для APM

Level of difficultyEasy
Reading time12 min
Views4.7K

Обычно процесс оптимизации типичного backend'а на php включает:

оптимизации SQL‑запросов в БД;

оптимизации работы с кэшем (повышение hitrate, увеличение объёма кэшируемых данных);

оптимизация внутренних процессов в backend (вынесение тяжёлых процессов в асинхронный режим, оптимизация внутренних структур данных)

Всё это уже было проведено, но не давало достаточного эффекта - API был большим, в нём было много сервисов с разной логикой, сложностью и связями. Точечные улучшения давали эффект, но было желание посмотреть на весь backend сверху - оценить потоки данных, оценить создаваемую нагрузку на каждый из внешних хранилищ (БД, кэш, сервисы) и оптимизировать исходя из полученных данных.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments2

AMD Ryzen 6800u + amd-pstate: скромный отзыв после перехода с Intel

Level of difficultyMedium
Reading time2 min
Views9.5K

Так получилось, что мои отношения с AMD каждый раз не складывались и я снова и снова возвращался на Intel. Тоже самое чуть не случилось и в этот раз. Но, как говорится, упорство и труд все перетрут...

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments27

Безопасное хранение secrets в Kubernetes

Reading time10 min
Views25K

В Kubernetes есть такая сущность, как secrets, или секреты. Из названия понятно, что эти данные не могут быть общедоступными, и их нужно как-то защищать и особым образом доставлять в кластеры Kubernetes. В статье разберём, что такое secrets и в чём особенности их хранения и доставки. А также рассмотрим два популярных инструмента для работы с секретами: Hashicorp Vault и Helm Secrets.

Читать дальше
Total votes 34: ↑33 and ↓1+32
Comments9

HashiСorp Vault & Kubernetes Secret: используем vault-secrets-operator

Reading time5 min
Views14K

Vault от HashiСorp — довольно известное open-source-решение для хранения секретов и неплохая альтернатива реализации секретов в Kubernetes. Vault использует свой сайдкар-контейнер на каждом поде, который получает секреты из хранилища и доставляет их в под или же реализует доступ к секретам через csi-драйвер.

Но как быть, если необходимо положить секреты из Vault в секреты Kubernetes? Например, мы хотим хранить и обновлять свой tls-сертификат для ингресса из Vault. Или мы решили использовать gitops и хотим, чтобы в репозитории безопасно хранилось все описание инфраструктуры, в том числе и секретов Kubernetes?

Разберем этот сценарий на практике и реализуем его с помощью vault-secrets-operator.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments2

4 простых способа оптимизировать объём индексов в Elasticsearch

Level of difficultyMedium
Reading time11 min
Views8.5K

Всем привет! Меня зовут Данила, я выполняю роль SR-инженера в Usetech. В этой статье я бы хотел рассказать о 4-х способах, которые помогут сократить объём ваших индексов в Elasticsearch.

Прежде всего статья будет полезна начинающим специалистам по администрированию ELK стека, администраторам систем мониторинга, разработчикам, внедряющим ELK стек у себя на проекте. 

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

Мы видели 2 пути решения проблемы:

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments2

HighLoad++, Юрий Насретдинов (ВКонтакте): как VK вставляет данные в ClickHouse с десятков тысяч серверов

Reading time18 min
Views8.6K
HighLoad++ Moscow 2018, зал «Конгресс-холл». 9 ноября, 15:00

Тезисы и презентация: http://www.highload.ru/moscow/2018/abstracts/4066

Юрий Насретдинов (ВКонтакте): в докладе будет рассказано об опыте внедрения ClickHouse в нашей компании – для чего он нам нужен, сколько мы храним данных, как их пишем и так далее.



Дополнительные материалы: использование Clickhouse в качестве замены ELK, Big Query и TimescaleDB
Total votes 20: ↑19 and ↓1+18
Comments6

Настройка ClickHouse для интеграционного тестирования в gitlab-ci

Reading time5 min
Views7.9K
У нас был сервис на golang, отдельный топик kafka, clickhouse, gitlab-ci и падающий пайплайн, протухший ssh-ключ и вот это вот все, а еще сезон отпусков, жуткие ливни в городе, сломавшийся ноутбук, алерты по ночам, и горящий прод. Не то, чтобы это все было нужно для этой статьи, но раз показываешь типичные будни тестировщика, то иди в своем намерении до конца. Единственное, что меня беспокоило — это p0. В мире нет ничего более отчаянного, мрачного и подавленного, чем тестировщик, который пропустил это на прод. Но я знала, что довольно скоро я в это окунусь.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments2

Запускаем кроссбраузерные UI test с Cucumber и Selenoid в Gitlab CI c Allure отчетом

Reading time4 min
Views11K

Cucumber – это инфраструктура тестирования, позволяющая преодолеть разрыв между разработчиками ПО и бизнес-менеджерами. Тесты пишутся на простом языке управляемой поведением разработки (BDD) в стиле Given, When, Then (условия, операция, результат), которой понятен любому пользователю. Затем контрольные тесты записываются в файлы функций, охватывающие один или несколько сценариев тестирования. Cucumber интерпретирует тесты на указанном языке программирования и использует Selenium для управления тестами в браузере.


Selenoid представляет собой альтернативное решение Selenium Server, хотя суть та же — организация работы драйверов.


В этом посте будет запуск простого браузерного теста с помощью Cucumber и Selenoid в Gitlab CI c Allure отчетом в конце.

Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments0

Использование Clickhouse в качестве замены ELK, Big Query и TimescaleDB

Reading time11 min
Views27K
Clickhouse — это колоночная система управления базами данных для онлайн обработки аналитических запросов (OLAP) с открытым исходным кодом, созданная Яндексом. Ее используют Яндекс, CloudFlare, VK.com, Badoo и другие сервисы по всему миру для хранения действительно больших объемов данных (вставка тысяч строк в секунду или петабайты данных, хранящихся на диске).

В обычной, «строковой» СУБД, примерами которых служат MySQL, Postgres, MS SQL Server, данные хранятся в таком порядке:



При этом значения, относящиеся к одной строке, физически хранятся рядом. В столбцовых СУБД значения из разных столбцов хранятся отдельно, а данные одного столбца – вместе:

Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments9

Zabbix, временные ряды и TimescaleDB

Reading time14 min
Views35K
Каждая система мониторинга сталкивается с тремя видами проблем, связанных с производительностью.

Во-первых, хорошая система мониторинга должна очень быстро получать, обрабатывать и записывать поступающие извне данные. Счёт идёт на микросекунды. Навскидку это может показаться неочевидным, но когда система становится достаточно большой, все эти доли секунд суммируются, превращаясь в хорошо заметные задержки.

image
Total votes 18: ↑18 and ↓0+18
Comments15

Развертывание кластера Kubernetes в OpenStack с помощью Kubespray

Reading time14 min
Views14K


Kubernetes быстро стал стандартом для поставок и масштабирования контейнерных приложений и управления ими. Это очень гибкое и универсальное решение с открытым исходным кодом. У него обширная документация, и в ней не всегда легко найти нужный раздел. Поэтому Kubernetes так непросто освоить. После планирования кластера его еще нужно установить, а тут тоже не все гладко. Поэтому и существуют инструменты развертывания, вроде Kubespray, которые упрощают работу. Я расскажу об автоматическом развертывании кластера Kubernetes с помощью Kubespray в облаке OpenStack (Open Telekom Cloud).

Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments6

Ansible: обновления в ключевых решениях для автоматизации вашего мира

Reading time5 min
Views6.7K
Сообщество Ansible постоянно радует новым контентом – плагинами и модулями – создавая и много новой работы для тех, кто занят сопровождением Ansible, поскольку новый код нужно максимально быстро интегрировать в репозитории. Уложиться в сроки получается не всегда и запуск некоторых вполне готовых к выпуску продуктов откладывается до следующей официальной версии Ansible Engine. До недавнего времени у конечного пользователя был только один способ получения нового контента Ansible – вместе с новой версией Ansible Engine.



Для устранения неудобства сообщество Ansible начало работу над более гибкими вариантами создания и получения контента.
Читать дальше: Что нового в Ansible
Total votes 16: ↑15 and ↓1+14
Comments1

Continuous integration в Яндексе. Часть 2

Reading time11 min
Views12K

В предыдущей статье мы рассказали про перенос разработки в единый репозиторий с trunk-based подходом к разработке, с едиными системами сборки, тестирования, деплоя и мониторинга, про то, какие задачи должна решать система непрерывной интеграции для эффективной работы в таких условиях.


Сегодня мы расскажем читателям Хабра про устройство системы непрерывной интеграции.


image


Система непрерывной интеграции должна работать надежно и быстро. Система должна быстро реагировать на поступающие события и не должна вносить дополнительных задержек в процесс доставки результатов запуска тестов до пользователя. Результаты сборки и тестирования нужно доставлять до пользователя в режиме реального времени.

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments3

Continuous integration в Яндексе

Reading time10 min
Views36K

Поддержка огромной кодовой базы с одновременным обеспечением высокой производительности большого числа разработчиков — это серьезный вызов. В течение последних 5 лет в Яндексе идет разработка особой системы непрерывной интеграции. В данной статье мы расскажем про масштаб кодовой базы Яндекса, про перенос разработки в единый репозиторий с trunk-based подходом к разработке, про то, какие задачи должна решать система непрерывной интеграции для эффективной работы в таких условиях.



Много лет назад в Яндексе никаких особенных правил в разработке сервисов не было: каждый отдел мог использовать любые языки, любые технологии, любые системы деплоя. И как показала практика, такая свобода не всегда помогала двигаться вперед быстрее. В то время для решения одних и тех же задач часто существовало несколько собственных или open-source разработок. С ростом компании такая экосистема работала всё хуже. При этом мы хотели остаться одним большим Яндексом, а не разделиться на множество независимых компаний, потому что это дает массу преимуществ: много людей делают одни похожие задачи, результаты их труда можно использовать повторно. Начиная от разнообразных структур данных, типа распределённых хеш-таблиц и lock-free очередей, и заканчивая множеством разного специализированного кода, который мы написали за 20 лет.

Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments100

С чего начать новичку в Go

Reading time2 min
Views160K
Если вы решили попробовать замечательный язык Go, но не знаете с чего начать, вам прямая дорога в этот пост, где я постарался перечислить все необходимые для новичков ресурсы.
Читать дальше →
Total votes 56: ↑50 and ↓6+44
Comments50
1
23 ...

Information

Rating
1,889-th
Location
Омск, Омская обл., Россия
Works in
Date of birth
Registered
Activity