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
👍15🔥8❤3
Практика с Docker: обновление контейнеризованного приложения без потери данных
По умолчанию у контейнеров есть относительно постоянная файловая система - изменения, внесённые приложением, переживают перезапуски контейнера, вызванные падениями приложения, перезагрузками хоста и т. п.
Однако иногда может потребоваться использовать тома, чтобы сделать некоторые части файловой системы контейнера более долговечными, чем остальные. С томами, даже если вы полностью удалите контейнер (а не просто перезапустите его), вы сможете продолжить использовать данные приложения в контейнере-преемнике (например, то же приложение, но на более новом образе).
Попрактикуйтесь в использовании томов Docker в этом практическом задании здесь
👉 DevOps Portal
По умолчанию у контейнеров есть относительно постоянная файловая система - изменения, внесённые приложением, переживают перезапуски контейнера, вызванные падениями приложения, перезагрузками хоста и т. п.
Однако иногда может потребоваться использовать тома, чтобы сделать некоторые части файловой системы контейнера более долговечными, чем остальные. С томами, даже если вы полностью удалите контейнер (а не просто перезапустите его), вы сможете продолжить использовать данные приложения в контейнере-преемнике (например, то же приложение, но на более новом образе).
Попрактикуйтесь в использовании томов Docker в этом практическом задании здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5
CloudNativePG — это оператор Kubernetes, который охватывает весь жизненный цикл высокодоступного кластера PostgreSQL с архитектурой primary/standby, использующей нативную стриминговую репликацию.
GitHub: CloudNativePG
👉 DevOps Portal
GitHub: CloudNativePG
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍4👀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👍6🔥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
❤11👍6💊1
Эта статья предлагает способ интеграции Terraform с Argo CD путём коммита выходных значений инфраструктуры напрямую в Git.
Это гарантирует, что Git остаётся единственным источником истины, и позволяет использовать Helm/Kustomize без ограничений, накладываемых прежними паттернами
🔹 Читать
👉 DevOps Portal
Это гарантирует, что Git остаётся единственным источником истины, и позволяет использовать Helm/Kustomize без ограничений, накладываемых прежними паттернами
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍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
👍24❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍9
Терминальная утилита, которая получает метрики нод и подов 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
👍8❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥7❤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
❤42👍28🔥4
Полный курс по GitHub Actions от новичка до профи (на английском)
Изучите всё: от основ платформы до построения полноценной DevOps-системы с воркфлоу для тестирования, сборки и деплоя микросервисных приложений
https://youtu.be/Xwpi0ITkL3U?si=7JwUaKlRQ7mfxwLQ
👉 DevOps Portal
Изучите всё: от основ платформы до построения полноценной DevOps-системы с воркфлоу для тестирования, сборки и деплоя микросервисных приложений
https://youtu.be/Xwpi0ITkL3U?si=7JwUaKlRQ7mfxwLQ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3
Эта статья объясняет Kubernetes Services: их типы и конфигурацию с практическими примерами для работы с кластерной сетью.
В ней рассматриваются такие типы сервисов, как ClusterIP, NodePort, LoadBalancer, ExternalName и Headless Service.
Читать здесь
👉 DevOps Portal
В ней рассматриваются такие типы сервисов, как ClusterIP, NodePort, LoadBalancer, ExternalName и Headless Service.
Читать здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍6
Плагин для kubectl, который позволяет выполнять запросы к ресурсам Kubernetes с использованием SQL-подобного синтаксиса. Вы можете фильтровать, проецировать и сортировать Pod’ы, PVC и т. д., без написания «сырого» jq или JSONPath
GitHub: kubectl-df-pv
👉 DevOps Portal
GitHub: kubectl-df-pv
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🤔1
Одним из ключевых элементов продакшен-готовности кластеров Kubernetes является обеспечение высокой доступности (HA).
Однако достижение HA само по себе недостаточно; нужно быть готовыми реагировать на отказы.
Проводите эксперименты по отказам в контролируемой среде, чтобы эффективно устранять реальные инциденты:
https://labs.iximiuz.com/playgrounds/kubernetes-ha-d02b8d83
👉 DevOps Portal
Однако достижение HA само по себе недостаточно; нужно быть готовыми реагировать на отказы.
Проводите эксперименты по отказам в контролируемой среде, чтобы эффективно устранять реальные инциденты:
https://labs.iximiuz.com/playgrounds/kubernetes-ha-d02b8d83
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4
Инструмент, который автоматически выполняет чекпойнтинг контейнеров на диск через определённое время после последнего TCP-соединения, что позволяет быстро и бесшовно масштабироваться до нуля
GitHub: zeropod
👉 DevOps Portal
GitHub: zeropod
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый совет для Linux
Вы можете посмотреть неудачные попытки входа на ваш Linux-сервер с помощью команды:
Эта команда просто считывает данные из /var/log/btmp и отображает их в удобном для чтения формате.
👉 DevOps Portal
Вы можете посмотреть неудачные попытки входа на ваш Linux-сервер с помощью команды:
$ lastb
Эта команда просто считывает данные из /var/log/btmp и отображает их в удобном для чтения формате.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤6🤔1