OpenObserve — cloud-native платформа наблюдаемости, специально созданная для логов, метрик, трейсов, аналитики и RUM (Real User Monitoring — производительность, ошибки, воспроизведение сессий), спроектированная для работы в петабайтном масштабе
https://github.com/openobserve/openobserve
👉 DevOps Portal
https://github.com/openobserve/openobserve
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4
На YouTube вышел свежий англоязычный курс по DevOps. Собираем и деплоим масштабируемый продакшен-готовый API
Быстро освоите базу DevOps в этом крэш-курсе, охватывающем Git и GitHub, CI/CD-пайплайны, Docker, Kubernetes, IaC и деплой API. Всё, что нужно, чтобы автоматизировать разработку и деплой
5 часов контента здесь
👉 DevOps Portal
Быстро освоите базу DevOps в этом крэш-курсе, охватывающем Git и GitHub, CI/CD-пайплайны, Docker, Kubernetes, IaC и деплой API. Всё, что нужно, чтобы автоматизировать разработку и деплой
5 часов контента здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍5👀1
Создаём контейнер наподобие Docker с нуля
Освойте ключевые пространства имён Linux, собрав небольшой, но реалистичный контейнер, используя только штатные команды Linux:
Изучаем здесь
👉 DevOps Portal
Освойте ключевые пространства имён Linux, собрав небольшой, но реалистичный контейнер, используя только штатные команды Linux:
unshare, mount и pivot_root. Никакой магии рантайма и (почти) никаких упрощений.Изучаем здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍6
Что будет с вашими данными, если система упадёт до того, как они будут сохранены?
Здесь и появляется концепция Write-Ahead Log (WAL).
Это простой принцип проектирования систем.
- Каждая операция (например, вставка в базу данных) сначала записывается в специальный лог-файл.
- Как только запись надёжно зафиксирована в логе, система обновляет реальную базу данных или хранилище.
- Если система падает, вы можете воспроизвести лог (система читает сохранённые шаги), чтобы вернуть данные в корректное состояние.
Вот короткое руководство, которое охватывает несколько реальных кейсов:
https://newsletter.devopscube.com/p/write-ahead-log-wal
👉 DevOps Portal
Здесь и появляется концепция Write-Ahead Log (WAL).
Это простой принцип проектирования систем.
- Каждая операция (например, вставка в базу данных) сначала записывается в специальный лог-файл.
- Как только запись надёжно зафиксирована в логе, система обновляет реальную базу данных или хранилище.
- Если система падает, вы можете воспроизвести лог (система читает сохранённые шаги), чтобы вернуть данные в корректное состояние.
Вот короткое руководство, которое охватывает несколько реальных кейсов:
https://newsletter.devopscube.com/p/write-ahead-log-wal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤8🔥5
Как работают Kubernetes Services?
Вероятно, вы знаете, что где-то там замешаны iptables, но знаете ли вы точную последовательность цепочек, задействованных при маршрутизации трафика к ClusterIP? А как насчёт NodePort - там по-другому?
Вот очень подробная статья, разбирающая всю «магию» за сервисами Kubernetes, простыми словами объясняя базовые вещи и продвинутые темы, такие как сохранение исходных IP, обработка завершающихся endpoints и интеграция с облачными балансировщиками нагрузки.
Читайте здесь
👉 DevOps Portal
Вероятно, вы знаете, что где-то там замешаны iptables, но знаете ли вы точную последовательность цепочек, задействованных при маршрутизации трафика к ClusterIP? А как насчёт NodePort - там по-другому?
Вот очень подробная статья, разбирающая всю «магию» за сервисами Kubernetes, простыми словами объясняя базовые вещи и продвинутые темы, такие как сохранение исходных IP, обработка завершающихся endpoints и интеграция с облачными балансировщиками нагрузки.
Читайте здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍6
CLI-утилита Kubernetes Resource Recommender помогает оптимизировать выделение ресурсов в кластерах Kubernetes.
Она собирает метрики использования подов из Prometheus и рекомендует значения requests и limits для CPU и памяти.
Это снижает расходы и повышает производительность.
Забираем на GitHub
👉 DevOps Portal
Она собирает метрики использования подов из Prometheus и рекомендует значения requests и limits для CPU и памяти.
Это снижает расходы и повышает производительность.
Забираем на GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤7👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый совет по Linux
При просмотре файла через
Внизу появится небольшой статус-бар: он показывает номера текущих строк в видимой области, общее количество строк, процент уже прокрученного файла и т. п.
👉 DevOps Portal
При просмотре файла через
less можно вывести краткий статус, нажав клавишу =.Внизу появится небольшой статус-бар: он показывает номера текущих строк в видимой области, общее количество строк, процент уже прокрученного файла и т. п.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥9❤3
Практика с Docker: обновление контейнеризованного приложения без потери данных
По умолчанию у контейнеров есть относительно постоянная файловая система - изменения, внесённые приложением, переживают перезапуски контейнера, вызванные падениями приложения, перезагрузками хоста и т. п.
Однако иногда может потребоваться использовать тома, чтобы сделать некоторые части файловой системы контейнера более долговечными, чем остальные. С томами, даже если вы полностью удалите контейнер (а не просто перезапустите его), вы сможете продолжить использовать данные приложения в контейнере-преемнике (например, то же приложение, но на более новом образе).
Попрактикуйтесь в использовании томов Docker в этом практическом задании здесь
👉 DevOps Portal
По умолчанию у контейнеров есть относительно постоянная файловая система - изменения, внесённые приложением, переживают перезапуски контейнера, вызванные падениями приложения, перезагрузками хоста и т. п.
Однако иногда может потребоваться использовать тома, чтобы сделать некоторые части файловой системы контейнера более долговечными, чем остальные. С томами, даже если вы полностью удалите контейнер (а не просто перезапустите его), вы сможете продолжить использовать данные приложения в контейнере-преемнике (например, то же приложение, но на более новом образе).
Попрактикуйтесь в использовании томов Docker в этом практическом задании здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤5
CloudNativePG — это оператор Kubernetes, который охватывает весь жизненный цикл высокодоступного кластера PostgreSQL с архитектурой primary/standby, использующей нативную стриминговую репликацию.
GitHub: CloudNativePG
👉 DevOps Portal
GitHub: CloudNativePG
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍5👀1
Как легко мигрировать ingress на Gateway API в Kubernetes
Статья рассказывает, как мигрировать с Ingress на Gateway API в Kubernetes, связав контроллер GatewayAPI и существующий Ingress-контроллер за одним LoadBalancer, чтобы минимизировать простой и сделать переход поэтапным
Читать здесь
👉 DevOps Portal
Статья рассказывает, как мигрировать с Ingress на Gateway API в Kubernetes, связав контроллер GatewayAPI и существующий Ingress-контроллер за одним LoadBalancer, чтобы минимизировать простой и сделать переход поэтапным
Читать здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍7🔥3
Grafana + Kubernetes
Репозиторий для любителей Grafana - огромное количество действительно стоящих дашбордов для Kubernetes.
GitHub: grafana-dashboards-kubernetes
👉 DevOps Portal
Репозиторий для любителей Grafana - огромное количество действительно стоящих дашбордов для Kubernetes.
GitHub: grafana-dashboards-kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍7💊1
Эта статья предлагает способ интеграции Terraform с Argo CD путём коммита выходных значений инфраструктуры напрямую в Git.
Это гарантирует, что Git остаётся единственным источником истины, и позволяет использовать Helm/Kustomize без ограничений, накладываемых прежними паттернами
🔹 Читать
👉 DevOps Portal
Это гарантирует, что Git остаётся единственным источником истины, и позволяет использовать Helm/Kustomize без ограничений, накладываемых прежними паттернами
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍4
dockprom — это решение для мониторинга Docker-хостов и контейнеров с Prometheus, Grafana, cAdvisor, NodeExporter и алертингом через AlertManager
GitHub: dockprom
👉 DevOps Portal
GitHub: dockprom
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍11
Терминальная утилита, которая получает метрики нод и подов Kubernetes в реальном времени через эндпоинт Kubelet /stats/summary, с TUI-функциями: поиск, сортировка, фильтрация по меткам, просмотр подов и использование диска
GitHub: KubeNodeUsage
👉 DevOps Portal
GitHub: KubeNodeUsage
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤4
Docker 101: Автоматический рестарт контейнера при сбое
Некоторые контейнеризованные приложения более устойчивы, чем другие. Попрактикуйтесь в настройке политики перезапуска контейнера, чтобы он продолжал работать даже после краша приложения
Тренируемся здесь
👉 DevOps Portal
Некоторые контейнеризованные приложения более устойчивы, чем другие. Попрактикуйтесь в настройке политики перезапуска контейнера, чтобы он продолжал работать даже после краша приложения
Тренируемся здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥8❤6🤔2🌚1
В начале моей карьеры в DevOps я удалил 5-гигабайтный лог-файл на продакшн-сервере, где заканчивалось место
Я запустил
Ни ошибок, ни варнингов. Просто та же картинка, как будто я ничего не удалял.
Тогда я и понял, что удаление файла не всегда сразу освобождает место.
В Linux то, что мы считаем «файлом», на самом деле состоит из двух сущностей: имени файла (это всего лишь указатель) и inode (в нём хранятся данные и метаданные). Когда вы удаляете имя файла, вы всего лишь убираете указатель. Inode и его данные остаются на диске до тех пор, пока какой-то процесс держит файл открытым.
В моём случае веб-сервер всё ещё писал в этот лог. Хотя я уже снёс имя файла, процесс сервера продолжал держать файловый дескриптор. Inode оставался «живым», невидимым в обычных списках файлов, но продолжал занимать место.
Диск освободился только после того, как я перезапустил веб-сервер, и он закрыл все свои файловые дескрипторы.
Вот почему нужны разные команды, чтобы видеть реальную картину:
Если цифры не сходятся, скорее всего, у тебя есть удалённые файлы, которые всё ещё держат процессы.
По этой же причине корректная ротация логов не просто удаляет файлы. Инструменты вроде
Три ключевых вывода:
1. Имена файлов — это всего лишь указатели на inode
2. Удаление действительно происходит, только когда ни один процесс не ссылается на inode
3. При разборе проблем с местом на диске всегда смотрите и
Мелочь, но понимание этого может спасти от очень запутанных инцидентов в продакшене.
👉 DevOps Portal
Я запустил
df -h, ожидая увидеть, что использование диска уменьшилось. Не снизилось. Всё ещё показывало 100% заполнения.Ни ошибок, ни варнингов. Просто та же картинка, как будто я ничего не удалял.
Тогда я и понял, что удаление файла не всегда сразу освобождает место.
В Linux то, что мы считаем «файлом», на самом деле состоит из двух сущностей: имени файла (это всего лишь указатель) и inode (в нём хранятся данные и метаданные). Когда вы удаляете имя файла, вы всего лишь убираете указатель. Inode и его данные остаются на диске до тех пор, пока какой-то процесс держит файл открытым.
В моём случае веб-сервер всё ещё писал в этот лог. Хотя я уже снёс имя файла, процесс сервера продолжал держать файловый дескриптор. Inode оставался «живым», невидимым в обычных списках файлов, но продолжал занимать место.
Диск освободился только после того, как я перезапустил веб-сервер, и он закрыл все свои файловые дескрипторы.
Вот почему нужны разные команды, чтобы видеть реальную картину:
# Проверить использование ФС
df -h
# Проверить реальные размеры директорий
du -sh /var/log/*
# Найти удалённые файлы, которые всё ещё держат процессы
lsof +L1
du показывает, что реально занимает место в директориях, а df - использование на уровне файловой системы.Если цифры не сходятся, скорее всего, у тебя есть удалённые файлы, которые всё ещё держат процессы.
По этой же причине корректная ротация логов не просто удаляет файлы. Инструменты вроде
logrotate переименовывают файлы и шлют сигнал процессам, чтобы те закрыли и заново открыли дескрипторы.Три ключевых вывода:
1. Имена файлов — это всего лишь указатели на inode
2. Удаление действительно происходит, только когда ни один процесс не ссылается на inode
3. При разборе проблем с местом на диске всегда смотрите и
df, и duМелочь, но понимание этого может спасти от очень запутанных инцидентов в продакшене.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤44👍31🔥5