DevOps Portal | Linux
13.4K subscribers
849 photos
110 videos
10 files
862 links
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps

Связь: @devmangx

РКН: https://clck.ru/3P8kFH
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый совет по Linux

Команда less используется для чтения содержимого файлов, это не секрет.

Но знаешь ли ты, что её можно использовать и для просмотра содержимого директории? По сути, она показывает вывод команды ls

Зачем это нужно?

Ну, как минимум, тебе больше не придётся задумываться о том, что less нельзя применять к директории

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8👍54
Опенсорс платформа, которая может быть использована для управления секретами. Доступна как облачная версия, так локальная (Docker Compose, Kubernetes)

GitHub: infisical

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍96
Изучите топ-10 техник траблшутинга в Kubernetes, которые должен освоить каждый DevOps инженер. Эти советы по отладке K8s основаны на реальных кейсах и показывают, как быстро и надёжно решать типовые и критические проблемы в Kubernetes

Читайте здесь

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85
Образы контейнеров FROM scratch стоит ли так делать? 🤔

Довольно часто можно встретить практику, когда статически слинкованный бинарник на Go просто кладут в образ, собранный FROM scratch. Но у такого подхода есть ряд подводных камней:

- нет rootfs-лейаута

- отсутствуют CA-сертификаты

- нет базы данных часовых поясов

Решение? Использовать distroless-базу вместо этого

Подробнее о проблеме и одном из возможных решений:
🔹Building Container Images FROM Scratch: 6 Pitfalls That Are Often Overlooked
🔹What's Inside Distroless Container Images: Taking a Closer Look

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
Этот репозиторий содержит более 20 инструментов, которые автоматически генерируют диаграммы архитектуры Kubernetes на основе манифестов, Helm-чартов или состояния кластера.

Github: Awesome-Kubernetes-Architecture-Diagrams

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍2
Как удаляется Pod: разбор закулисных процессов

Когда мы выполняем команду:
kubectl delete pod

появляется сообщение подтверждения, что Pod удалён (если всё прошло успешно):
$ kubectl delete pod techops-pod
pod "techops-pod" deleted


Задумывались, что происходит “под капотом”?

Прежде чем разбирать процесс удаления Pod’а, нужно понимать базовые сигналы, которые используются при завершении процессов.
SIGTERM — запрашивает корректное завершение работы. Позволяет приложению завершить активные задачи и выполнить очистку перед остановкой. В Kubernetes при получении SIGTERM Pod получает время, чтобы завершиться “по-человечески”.

SIGKILL — принудительно завершает процесс без какой-либо очистки. Если Pod не завершился в отведённое время после SIGTERM, Kubernetes отправляет SIGKILL, чтобы окончательно его убить.


На картинке показан пошаговый разбор процесса, чтобы было понятнее ✌️

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍115
Начиная с Kubernetes 1.34.1, интерфейс контейнерного рантайма (CRI-O) по умолчанию требует указания полностью квалифицированных имён образов.

При указании образов контейнеров в ваших деплойментах используйте полный путь до реестра.
Например: docker.io/nginx вместо просто nginx.

Если вы укажете короткое имя образа, которое совпадает с несколькими реестрами, пулл образа завершится ошибкой со следующим сообщением:
Warning  Failed         57m (x12 over 59m)     kubelet  Error: ImageInspectError
Warning InspectFailed 4m43s (x258 over 59m) kubelet Failed to inspect image "": rpc error: code = Unknown


👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍5
Официальным языком DevOps должен быть YAML

- Helm использует YAML
- GitHub использует YAML
- Ansible использует YAML
- Argo CD использует YAML
- Kubernetes использует YAML
- Azure DevOps использует YAML
- Docker Compose использует YAML
и многие другие…

Все продвинутые инструменты, которые ты стремишься изучить и применять, работают на YAML.

Так что сначала разберись с ним, вот тебе шпаргалка

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥317👍5🏆2
10 ошибок Kubernetes, которые нужно знать (и как их исправить)

Ошибки в K8s - одна из самых распространённых проблем, с которыми разработчики сталкиваются при запуске ворклоадов в продакшене, что приводит к неудачным деплоям, даунтайму и пустой трате времени на траблшутинг.

Читайте здесь

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
This media is not supported in your browser
VIEW IN TELEGRAM
Маленькая шпаргалка для начинающих линуксоидов

Сохраняем и пользуемся ✌️

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95
В этой статье экспериментируют с запуском кластера MariaDB Galera в Kubernetes-лаборатории за $150, собранной на платах Orange Pi.

Подробно разбираются установка K3s, деплой MariaDB Kubernetes Operator и настройка resource limits для малых SBC

Читайте здесь

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12😁31
Знал, что в IP-адресах можно опускать нули - и всё равно будет работать?

Например:
10.20.0.2 → 10.20.2
10.0.0.68 → 10.68

Оба варианта указывают на один и тот же хост.

Маленький, но прикольный трюк, который реально экономит пару нажатий в лабах.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯24👍105💊4😁1
Знали ли вы, что поды могут становиться «невидимыми»?

Проверьте свои знания Kubernetes, попробуйте найти невидимый pod в этом челлендже: https://labs.iximiuz.com/challenges/kubernetes-invisible-pod-0bf2109b

Никаких подсказок и решений. Готовьтесь к жёсткой задаче 😈

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
6💊2
Быстрый совет по Linux

Хочешь повторно использовать последний аргумент из предыдущей команды? Используй !$

Сбережёшь своё драгоценное время ✌️

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍198🔥1
Упрощённое визуальное руководство по CI/CD

Непрерывная интеграция (CI) — практика частого слияния изменений кода в общий репозиторий с автоматической проверкой их целостности

Непрерывное развёртывание (CD) — автоматизирует релиз и деплой изменений кода в продакшен, обеспечивая отлаженный и надёжный процесс

Этот визуальный гайд поможет быстро разобраться, как это работает

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
Совет дня по Linux

В Linux оператор конвейера (|) полезен, когда нужно направить вывод одной команды на вход другой для дальнейшей обработки:

$ cat data.txt | grep "No such file"


Однако это не перенаправляет ошибки. Если файл не существует, команда grep не даст результата.

Что если нужно перенаправить и обработать как ошибки, так и обычный вывод?

Здесь на помощь приходит оператор перенаправления |&.

Этот оператор направляет как стандартный вывод (stdout), так и стандартные ошибки (stderr) первой команды через конвейер на стандартный ввод (stdin) второй команды. Посмотрите на следующий пример:

$ cat data.txt |& grep "No such file"


Обратите внимание на разницу: команда grep смогла найти совпадение.

Оператор |& в bash является сокращением для оператора перенаправления 2>&1 |:

$ cmd-1  2>&1  |  cmd-2


👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍162
Мы все знаем, что у AWS недавно случился даунтайм. Давайте разберём, что именно произошло.

Регион US-EAST-1 — один из крупнейших и наиболее критичных дата-центров AWS, где размещена инфраструктура тысяч крупных сайтов и приложений. Когда у DynamoDB, ключевого сервисa баз данных, начали расти ошибки, это вызвало эффект домино по взаимосвязанным системам AWS. Сбои стали массовыми, потому что многие приложения полагаются на DynamoDB для операций хранения и выборки данных.

DynamoDB глубоко интегрирован в архитектуру control plane AWS. Многие сервисы AWS используют его внутри для хранения метаданных, информации о состоянии и конфигураций сервисов. Поэтому, когда API-эндпоинт DynamoDB стал недоступен через DNS, зависящие от него сервисы потеряли доступ к критически важным операционным данным. Сбой одновременно затронул более 36 сервисов AWS.

Когда упала DNS-резолюция, клиенты просто перестали находить нужные эндпоинты DynamoDB. Это запустило фидбек-луп, похожий на тот, что произошёл во время даунтайма DynamoDB в сентябре 2015 года: каждый повторный запрос потреблял больше ресурсов, вызывал новые таймауты, которые, в свою очередь, генерировали ещё больше ретраев - и так по кругу, пока система не ушла в штопор.

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

Основное исправление заключалось в стабилизации инфраструктуры DNS-резолвинга для эндпоинта DynamoDB. Команды инженеров AWS, вероятно:

🔹переконфигурировали или перезапустили DNS-резолверы, обслуживающие DynamoDB

🔹временно перевели трафик на альтернативные пути DNS-резолвинга

🔹применили аварийные настройки DNS-кэширования

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

P.S. Это лишь часть деталей и предположений, которые я нашёл в интернете и сформировал на основе собственного понимания. Точные и подробные данные AWS ещё не раскрыл.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2311
Kubernetes позволяет добавлять собственные API

В Kubernetes есть мощный механизм под названием API Aggregation Layer.

Он помогает добавлять кастомные API в кластер.

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

Классический пример использования Aggregation Layer в Kubernetes - это реализация Metrics Server.

Metrics Server реализует Metrics API как дополнительный API-сервер, используя Aggregation Layer.

Это означает, что хоть Metrics Server и является отдельным сервисом, к его API можно обращаться так, как будто он - нативная часть Kubernetes API.

В целом, поток запросов выглядит так:

- Когда вы запускаете kubectl get pods, запрос уходит на /api/v1/pods и маршрутизируется в Core API Server.

- Когда вы запускаете kubectl top pods, запрос уходит на /apis/metrics.k8s.io/v1beta1/ и маршрутизируется в Metrics Server.

Prometheus Adapter также использует этот механизм, чтобы отдавать кастомные метрики по адресу /apis/custom.metrics.k8s.io/

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Свежий сбой в AWS (US-EAST-1)

Самое время пересмотреть стратегии аварийного восстановления в облаке (объяснённые простым языком)

Любая стратегия Disaster Recovery начинается с определения:

🔹RTO (Recovery Time Objective) —
сколько простоя вы можете себе позволить?

🔹RPO (Recovery Point Objective) —
какую потерю данных вы готовы терпеть?

Стратегии Disaster Recovery:

1. Backup and Restore → регулярные бэкапы и восстановление после инцидента
RTO: от нескольких часов до нескольких дней, RPO: момент последнего бэкапа

2. Pilot Light → ядро системы находится в standby и разворачивается при необходимости
RTO: от минут до часов, RPO: зависит от частоты репликации

3. Warm Standby → укороченная «живая» копия среды, которую можно быстро расшscaleить
RTO: минуты, RPO: от нескольких минут до часов

4. Hot / Multi-Site → оба сайта работают активно с мгновенным фейловером
RTO: близок к нулю, RPO: секунды

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4