🤔 Какой самый большой минус Ansible?
Ansible – мощный инструмент для автоматизации, но у него есть серьезные недостатки, особенно при масштабировании.
🚩Основной минус – Медленная работа на больших инфраструктурах
🟠Нет агентов
каждый раз Ansible подключается по SSH и выполняет задачи без предварительного кеширования
что замедляет процесс.
🟠Ограничения Python на удаленных хостах
если целевой сервер слабый или без Python, выполнение плейбуков будет медленным.
🟠Последовательное выполнение
по умолчанию Ansible выполняет задачи последовательно, что дольше, чем параллельные методы (например, в SaltStack).
Запуск задач параллельно (
🚩Другие минусы Ansible
🟠Высокая нагрузка на управляющий узел
Если 1000+ серверов, главный Ansible-узел может быстро перегрузиться.
🟠Сложное управление зависимостями
Роли могут конфликтовать, если версии не совпадают. Ansible Galaxy не такой удобный, как Terraform Registry
🟠Ограниченная идемпотентность
Некоторые модули (особенно shell и command) не всегда понимают, применялась ли конфигурация раньше.
Ставь 👍 и забирай 📚 Базу знаний
Ansible – мощный инструмент для автоматизации, но у него есть серьезные недостатки, особенно при масштабировании.
🚩Основной минус – Медленная работа на больших инфраструктурах
🟠Нет агентов
каждый раз Ansible подключается по SSH и выполняет задачи без предварительного кеширования
что замедляет процесс.
🟠Ограничения Python на удаленных хостах
если целевой сервер слабый или без Python, выполнение плейбуков будет медленным.
🟠Последовательное выполнение
по умолчанию Ansible выполняет задачи последовательно, что дольше, чем параллельные методы (например, в SaltStack).
yaml
- name: Установка Nginx
hosts: all
tasks:
- name: Установить Nginx
apt:
name: nginx
state: present
Запуск задач параллельно (
-f 50) sh
ansible-playbook playbook.yml -f 50
🚩Другие минусы Ansible
🟠Высокая нагрузка на управляющий узел
Если 1000+ серверов, главный Ansible-узел может быстро перегрузиться.
🟠Сложное управление зависимостями
Роли могут конфликтовать, если версии не совпадают. Ansible Galaxy не такой удобный, как Terraform Registry
🟠Ограниченная идемпотентность
Некоторые модули (особенно shell и command) не всегда понимают, применялась ли конфигурация раньше.
Ставь 👍 и забирай 📚 Базу знаний
👍1
🤔 Как бы вы настроили уведомления для сервисов которые находятся без интернета полностью локализованы закрыты от всего извне?
Для настройки уведомлений в изолированной сети без доступа к интернету используйте локальные инструменты и системы. Основные методы включают локальные почтовые серверы, мессенджеры и системы управления инцидентами.
🚩Локальный почтовый сервер (SMTP)
1⃣Установка
2⃣Настройка
Отредактируйте
3⃣Перезапуск Postfix
4⃣Проверка
🚩Локальный мессенджер (Mattermost)
1⃣Установка Mattermost
Следуйте [документации](https://docs.mattermost.com/install/self-managed-install.html).
2⃣Настройка
Создайте каналы и пользователей.
3⃣Интеграция с мониторингом
Используйте веб-хуки Mattermost для уведомлений.
🚩Системы управления инцидентами (Zabbix)
1⃣Установка Zabbix
Следуйте [документации](https://www.zabbix.com/download).
2⃣Настройка
Настройте хосты, триггеры и действия.
3⃣Настройка уведомлений
Медиатипы: Настройте Email и SMS. Пользователи: Создайте пользователей и уведомления.
🚩Локальный стек мониторинга (Prometheus, Alertmanager)
1⃣Установка Prometheus
2⃣Установка Alertmanager
3⃣Настройка алертинга в Prometheus
4⃣Настройка Alertmanager
Ставь 👍 и забирай 📚 Базу знаний
Для настройки уведомлений в изолированной сети без доступа к интернету используйте локальные инструменты и системы. Основные методы включают локальные почтовые серверы, мессенджеры и системы управления инцидентами.
🚩Локальный почтовый сервер (SMTP)
1⃣Установка
sudo apt update
sudo apt install postfix
2⃣Настройка
Отредактируйте
/etc/postfix/main.cf myhostname = local.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relay_domains = $mydestination
3⃣Перезапуск Postfix
sudo systemctl restart postfix
4⃣Проверка
echo "Test email" | mail -s "Test Subject" user@example.com
🚩Локальный мессенджер (Mattermost)
1⃣Установка Mattermost
Следуйте [документации](https://docs.mattermost.com/install/self-managed-install.html).
2⃣Настройка
Создайте каналы и пользователей.
3⃣Интеграция с мониторингом
Используйте веб-хуки Mattermost для уведомлений.
🚩Системы управления инцидентами (Zabbix)
1⃣Установка Zabbix
Следуйте [документации](https://www.zabbix.com/download).
2⃣Настройка
Настройте хосты, триггеры и действия.
3⃣Настройка уведомлений
Медиатипы: Настройте Email и SMS. Пользователи: Создайте пользователей и уведомления.
🚩Локальный стек мониторинга (Prometheus, Alertmanager)
1⃣Установка Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz
tar xvf prometheus-2.26.0.linux-amd64.tar.gz
cd prometheus-2.26.0.linux-amd64
./prometheus --config.file=prometheus.yml
2⃣Установка Alertmanager
wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz
tar xvf alertmanager-0.21.0.linux-amd64.tar.gz
cd alertmanager-0.21.0.linux-amd64
./alertmanager --config.file=alertmanager.yml
3⃣Настройка алертинга в Prometheus
groups:
- name: example-alerts
rules:
- alert: HighCPUUsage
expr: avg_over_time(node_cpu_seconds_total{mode="idle"}[5m]) < 20
for: 2m
labels:
severity: critical
annotations:
summary: "High CPU usage detected"
description: "CPU usage is above 80% for more than 2 minutes"
4⃣Настройка Alertmanager
global:
smtp_smarthost: 'localhost:25'
smtp_from: 'alertmanager@local.example.com'
route:
receiver: 'email-notifications'
receivers:
- name: 'email-notifications'
email_configs:
- to: 'admin@local.example.com'
send_resolved: true
Ставь 👍 и забирай 📚 Базу знаний
👍1
🤔 SIGKILL можно не обработать, а проигнорировать?
Нет.
SIGKILL (kill -9) — это немаскируемый сигнал.
ОС немедленно завершает процесс без возможности перехвата.
Единственный способ обработать завершение — использовать другие сигналы, например SIGTERM (kill -15), который можно перехватить и обработать.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
SIGKILL (kill -9) — это немаскируемый сигнал.
ОС немедленно завершает процесс без возможности перехвата.
Единственный способ обработать завершение — использовать другие сигналы, например SIGTERM (kill -15), который можно перехватить и обработать.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍4
🤔 Как linux выбирает, какой из процессов завершить?
Она использует механизм, известный как OOM Killer (убийца процессов при нехватке памяти), для завершения процессов с целью освобождения памяти. Выбор процесса для завершения базируется на ряде критериев, чтобы минимизировать влияние на работу системы.
🚩Как работает OOM Killer?
🟠Очки OOM (OOM Score)
Каждому процессу присваиваются очки OOM, которые рассчитываются на основе нескольких факторов, таких как: Объем памяти, используемой процессом. Приоритет процесса. Важность процесса для системы (например, системные демоны имеют более низкие очки).
🟠Формула расчета OOM Score
Основной фактор при расчете очков - это объем потребляемой процессом памяти. Чем больше памяти потребляет процесс, тем выше его OOM Score. Операционная система также учитывает приоритет процесса (nice value) и некоторые другие параметры.
🟠Принудительное завершение
Процесс с наибольшим OOM Score считается наименее критичным для системы и завершается первым.
🚩Пример расчета OOM Score
🟠Вот пример того, как может быть рассчитан OOM Score (упрощенный)
Процесс A использует 1 ГБ памяти.
Процесс B использует 2 ГБ памяти.
Процесс C использует 500 МБ памяти, но это критический системный процесс.
🟠OOM Score для этих процессов может выглядеть так
Процесс A: 300
Процесс B: 600
Процесс C: 100 (низкий, так как процесс критический)
🚩Настройка OOM Killer
Администраторы могут влиять на работу OOM Killer, настраивая параметры OOM Score для конкретных процессов с помощью файлов в каталоге
🚩Логирование и мониторинг
При срабатывании OOM Killer соответствующие сообщения записываются в системный журнал (обычно
Ставь 👍 и забирай 📚 Базу знаний
Она использует механизм, известный как OOM Killer (убийца процессов при нехватке памяти), для завершения процессов с целью освобождения памяти. Выбор процесса для завершения базируется на ряде критериев, чтобы минимизировать влияние на работу системы.
🚩Как работает OOM Killer?
🟠Очки OOM (OOM Score)
Каждому процессу присваиваются очки OOM, которые рассчитываются на основе нескольких факторов, таких как: Объем памяти, используемой процессом. Приоритет процесса. Важность процесса для системы (например, системные демоны имеют более низкие очки).
🟠Формула расчета OOM Score
Основной фактор при расчете очков - это объем потребляемой процессом памяти. Чем больше памяти потребляет процесс, тем выше его OOM Score. Операционная система также учитывает приоритет процесса (nice value) и некоторые другие параметры.
🟠Принудительное завершение
Процесс с наибольшим OOM Score считается наименее критичным для системы и завершается первым.
🚩Пример расчета OOM Score
🟠Вот пример того, как может быть рассчитан OOM Score (упрощенный)
Процесс A использует 1 ГБ памяти.
Процесс B использует 2 ГБ памяти.
Процесс C использует 500 МБ памяти, но это критический системный процесс.
🟠OOM Score для этих процессов может выглядеть так
Процесс A: 300
Процесс B: 600
Процесс C: 100 (низкий, так как процесс критический)
🚩Настройка OOM Killer
Администраторы могут влиять на работу OOM Killer, настраивая параметры OOM Score для конкретных процессов с помощью файлов в каталоге
/proc. Например, для изменения приоритета процесса:echo -1000 > /proc/<PID>/oom_score_adj
🚩Логирование и мониторинг
При срабатывании OOM Killer соответствующие сообщения записываются в системный журнал (обычно
/var/log/syslog или /var/log/messages), что позволяет администраторам анализировать причины и предпринимать меры по предотвращению в будущем.Ставь 👍 и забирай 📚 Базу знаний
👍5
🔥 Скрытые вакансии с удаленной работой для DevOps, которые нигде больше не публикуются. Напрямую от компаний, с контактами рекрутеров.
🔹 DevOps Jobs | Вакансии
🔸 Все каналы с вакансиями
🔹 DevOps Jobs | Вакансии
🔸 Все каналы с вакансиями
🤔 Что такое squash в Docker?
В Docker термин "squash" (от англ. "раздавить", "сплющить") относится к процессу объединения нескольких слоев образа Docker в один. Это делается для уменьшения размера итогового образа и оптимизации хранения.
🚩Зачем нужен `squash`?
Docker-образы состоят из последовательности слоев. Каждый слой создается на основе команд в
🚩Как использовать `squash`?
В Docker
Для включения экспериментального режима:
1. Открываем
2. Добавляем строку
3. Перезапускаем Docker:
🚩Пример с `squash`
Без
С
Ставь 👍 и забирай 📚 Базу знаний
В Docker термин "squash" (от англ. "раздавить", "сплющить") относится к процессу объединения нескольких слоев образа Docker в один. Это делается для уменьшения размера итогового образа и оптимизации хранения.
🚩Зачем нужен `squash`?
Docker-образы состоят из последовательности слоев. Каждый слой создается на основе команд в
Dockerfile. Например, если ваш Dockerfile выглядит так:FROM ubuntu:latest
RUN apt update && apt install -y nginx
RUN echo "Hello, World!" > /usr/share/nginx/html/index.html
🚩Как использовать `squash`?
В Docker
squash можно выполнить с помощью флага --squash при сборке образа:docker build --squash -t my-squashed-image .
Для включения экспериментального режима:
1. Открываем
/etc/docker/daemon.json (или создаем, если его нет).2. Добавляем строку
"experimental": true.3. Перезапускаем Docker:
systemctl restart docker
🚩Пример с `squash`
Без
--squashdocker history my-image
С
--squashdocker build --squash -t my-squashed-image .
docker history my-squashed-image
Ставь 👍 и забирай 📚 Базу знаний
💊2👍1
🤔 Может ли Deployment существовать без ReplicaSet?
Нет, Deployment всегда управляет минимум одним ReplicaSet. ReplicaSet отвечает за поддержание желаемого числа подов, а Deployment добавляет возможность обновлений и откатов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍2
🤔 Какие таблицы прописывал в iptables?
В
🟠`filter`
основная таблица для контроля трафика (используется по умолчанию)
🟠`nat`
для трансляции адресов (SNAT, DNAT, редиректы)
🟠`mangle`
для изменения пакетов (маркировка, TTL, QoS)
🟠`raw`
для исключения пакетов из обработки
🟠`security`
используется в SELinux для меток безопасности
🚩Таблица `filter` (фильтрация пакетов)
Используется для разрешения или блокировки трафика.
🚩Таблица `nat` (трансляция адресов)
Используется для NAT, порт-форвардинга, маскарадинга.
Пример: Проброс порта (DNAT) – входящие пакеты на 80 порт перенаправляем на 8080
🚩Таблица `mangle` (изменение пакетов)
Используется для маркировки пакетов, изменения TTL, QoS.
Пример: Маркировка пакетов для использования в
Ставь 👍 и забирай 📚 Базу знаний
В
iptables есть 5 таблиц, но чаще всего работают с тремя: 🟠`filter`
основная таблица для контроля трафика (используется по умолчанию)
🟠`nat`
для трансляции адресов (SNAT, DNAT, редиректы)
🟠`mangle`
для изменения пакетов (маркировка, TTL, QoS)
🟠`raw`
для исключения пакетов из обработки
conntrack 🟠`security`
используется в SELinux для меток безопасности
🚩Таблица `filter` (фильтрация пакетов)
Используется для разрешения или блокировки трафика.
iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
🚩Таблица `nat` (трансляция адресов)
Используется для NAT, порт-форвардинга, маскарадинга.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Пример: Проброс порта (DNAT) – входящие пакеты на 80 порт перенаправляем на 8080
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
🚩Таблица `mangle` (изменение пакетов)
Используется для маркировки пакетов, изменения TTL, QoS.
iptables -t mangle -A POSTROUTING -j TTL --ttl-set 64
Пример: Маркировка пакетов для использования в
tc (QoS) iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 1
Ставь 👍 и забирай 📚 Базу знаний
👍2🔥1
🤔 Что такое аккаунт в Terraform?
Обычно имеется в виду:
- Terraform Cloud/Enterprise account — для управления workspace'ами, доступами, state.
- Или облачный провайдер-аккаунт (AWS, GCP), используемый через provider.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Обычно имеется в виду:
- Terraform Cloud/Enterprise account — для управления workspace'ами, доступами, state.
- Или облачный провайдер-аккаунт (AWS, GCP), используемый через provider.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥3
🤔 Как AWS работает с DevOps?
AWS предоставляет облачные сервисы для автоматизации CI/CD, управления инфраструктурой, мониторинга и безопасности.
🚩CI/CD (Непрерывная интеграция и развертывание)
AWS предлагает инструменты для автоматической сборки, тестирования и деплоя.
AWS CodePipeline – автоматизация CI/CD-процессов
AWS CodeBuild – сборка и тестирование кода
AWS CodeDeploy – автоматический деплой в EC2, ECS, Lambda
AWS CodeCommit – репозиторий Git в AWS
Пример CI/CD-пайплайна в AWS CodePipeline
1. CodeCommit получает новый коммит
2. CodeBuild собирает и тестирует код
3. CodeDeploy разворачивает приложение на EC2
🚩Управление инфраструктурой (IaC)
В DevOps важно автоматически создавать и управлять ресурсами AWS.
Terraform – создает инфраструктуру по коду
AWS CloudFormation – аналог Terraform от AWS
AWS CDK (Cloud Development Kit) – IaC на Python/TypeScript
🚩Контейнеризация и оркестрация
AWS поддерживает управление контейнерами и Kubernetes.
Amazon ECS (Elastic Container Service) – контейнеры без Kubernetes
Amazon EKS (Elastic Kubernetes Service) – управляемый Kubernetes
AWS Fargate – запуск контейнеров без управления серверами
Пример развертывания контейнера в AWS ECS:
1. Собираем Docker-образ
2. Загружаем его в Amazon ECR (Elastic Container Registry)
3. ECS автоматически масштабирует и управляет контейнерами
🚩Мониторинг и логирование
Amazon CloudWatch – сбор метрик и логов
AWS X-Ray – трассировка запросов в микросервисах
AWS CloudTrail – аудит действий в AWS
Пример мониторинга EC2
1. CloudWatch собирает метрики CPU, RAM
2. Настраиваем авто-масштабирование на основе этих метрик
3. CloudTrail записывает все изменения инфраструктуры
🚩Безопасность и управление доступом
AWS IAM (Identity and Access Management) – контроль прав
AWS Secrets Manager – управление паролями и API-ключами
AWS KMS (Key Management Service) – шифрование данных
Ставь 👍 и забирай 📚 Базу знаний
AWS предоставляет облачные сервисы для автоматизации CI/CD, управления инфраструктурой, мониторинга и безопасности.
🚩CI/CD (Непрерывная интеграция и развертывание)
AWS предлагает инструменты для автоматической сборки, тестирования и деплоя.
AWS CodePipeline – автоматизация CI/CD-процессов
AWS CodeBuild – сборка и тестирование кода
AWS CodeDeploy – автоматический деплой в EC2, ECS, Lambda
AWS CodeCommit – репозиторий Git в AWS
Пример CI/CD-пайплайна в AWS CodePipeline
1. CodeCommit получает новый коммит
2. CodeBuild собирает и тестирует код
3. CodeDeploy разворачивает приложение на EC2
🚩Управление инфраструктурой (IaC)
В DevOps важно автоматически создавать и управлять ресурсами AWS.
Terraform – создает инфраструктуру по коду
AWS CloudFormation – аналог Terraform от AWS
AWS CDK (Cloud Development Kit) – IaC на Python/TypeScript
hcl
resource "aws_instance" "web" {
ami = "ami-123456"
instance_type = "t2.micro"
}
🚩Контейнеризация и оркестрация
AWS поддерживает управление контейнерами и Kubernetes.
Amazon ECS (Elastic Container Service) – контейнеры без Kubernetes
Amazon EKS (Elastic Kubernetes Service) – управляемый Kubernetes
AWS Fargate – запуск контейнеров без управления серверами
Пример развертывания контейнера в AWS ECS:
1. Собираем Docker-образ
2. Загружаем его в Amazon ECR (Elastic Container Registry)
3. ECS автоматически масштабирует и управляет контейнерами
🚩Мониторинг и логирование
Amazon CloudWatch – сбор метрик и логов
AWS X-Ray – трассировка запросов в микросервисах
AWS CloudTrail – аудит действий в AWS
Пример мониторинга EC2
1. CloudWatch собирает метрики CPU, RAM
2. Настраиваем авто-масштабирование на основе этих метрик
3. CloudTrail записывает все изменения инфраструктуры
🚩Безопасность и управление доступом
AWS IAM (Identity and Access Management) – контроль прав
AWS Secrets Manager – управление паролями и API-ключами
AWS KMS (Key Management Service) – шифрование данных
hcl
resource "aws_iam_role" "s3_read" {
name = "s3-read-only"
assume_role_policy = jsonencode({
Statement = [{
Effect = "Allow"
Action = "s3:GetObject"
Resource = "arn:aws:s3:::my-bucket/*"
}]
})
}
Ставь 👍 и забирай 📚 Базу знаний
👍1
🤔 Где храним реквизиты (адреса, логины, пароли) для плейбуков?
Основные способы хранения:
- group_vars/host_vars — для адресов и переменных
- Ansible Vault — для зашифрованных секретов (пароли, токены)
- CI/CD секреты — переменные окружения в GitLab/GitHub
- Внешние системы — HashiCorp Vault, AWS Secrets Manager и т.д.
Vault позволяет безопасно хранить секреты прямо в репозитории.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Основные способы хранения:
- group_vars/host_vars — для адресов и переменных
- Ansible Vault — для зашифрованных секретов (пароли, токены)
- CI/CD секреты — переменные окружения в GitLab/GitHub
- Внешние системы — HashiCorp Vault, AWS Secrets Manager и т.д.
Vault позволяет безопасно хранить секреты прямо в репозитории.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍1
🤔 Как найти запущенный процесс?
В операционных системах на базе Unix и Linux для поиска запущенных процессов используются различные команды.
🟠Команда `ps`
Команда
🟠Команда `top`
Команда
🟠Команда `htop`
Команда
🟠Команда `pgrep`
Команда
Пример использования:
🟠Команда `pidof`
Команда
🟠Команда `ps` с фильтрацией
Для более точного поиска можно использовать команду
🟠Команда `lsof`
Команда
🚩Пример поиска конкретного процесса
Допустим, вам нужно найти процесс с именем
Использование
Использование
Использование
🚩Использование `top` или `htop`
Запустите
Ставь 👍 и забирай 📚 Базу знаний
В операционных системах на базе Unix и Linux для поиска запущенных процессов используются различные команды.
🟠Команда `ps`
Команда
ps отображает список текущих процессов. Часто используемые опции:ps aux: Показывает все процессы в системе.ps -ef: Альтернативный формат вывода всех процессов.ps aux | grep <имя_процесса>
🟠Команда `top`
Команда
top показывает список процессов в реальном времени, обновляя его каждые несколько секунд. Это удобно для мониторинга системы и поиска процессов с высокой загрузкой CPU или памяти.top
🟠Команда `htop`
Команда
htop — это улучшенная версия top, предоставляющая более удобный интерфейс для мониторинга процессов. Она должна быть установлена отдельно.sudo apt-get install htop
htop
🟠Команда `pgrep`
Команда
pgrep используется для поиска процессов по имени. Она возвращает идентификаторы (PID) процессов, соответствующих критериям поиска.Пример использования:
pgrep <имя_процесса>
🟠Команда `pidof`
Команда
pidof возвращает идентификаторы (PID) процессов с указанным именем.pidof <имя_процесса>
🟠Команда `ps` с фильтрацией
Для более точного поиска можно использовать команду
ps с фильтрацией через grep.ps aux | grep <имя_процесса> | grep -v grep
🟠Команда `lsof`
Команда
lsof отображает список открытых файлов и может использоваться для поиска процессов, открывающих определенные файлы.sudo lsof -i :<номер_порта>
🚩Пример поиска конкретного процесса
Допустим, вам нужно найти процесс с именем
nginx. Вот несколько способов сделать этоИспользование
psps aux | grep nginx | grep -v grep
Использование
pgreppgrep nginx
Использование
pidofpidof nginx
🚩Использование `top` или `htop`
Запустите
top или htop и найдите процесс nginx в интерактивном режиме.Ставь 👍 и забирай 📚 Базу знаний
👍3
🤔 Что такое зомби процессы?
Зомби-процессы — это процессы, которые завершились, но их запись в таблице процессов остаётся, так как родительский процесс не обработал их код завершения. Они занимают минимальные системные ресурсы, но их наличие может указывать на проблемы в управлении процессами родительским процессом. Зомби-процессы можно устранить только завершением родительского процесса или с помощью сигналов. Наличие большого количества зомби-процессов может привести к исчерпанию доступных PID в системе.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍1🔥1
🤔 Можно ли на лету изменить настройки dns контейнре через cli?
Нет, нельзя изменить DNS у уже запущенного контейнера напрямую через CLI. Но есть обходные способы!
🚩Остановка и перезапуск контейнера с новыми DNS
Самый надежный способ — перезапустить контейнер с нужными DNS-серверами
Или задать DNS через
🚩Изменение `/etc/resolv.conf` внутри контейнера (может сработать)
Можно изменить DNS вручную внутри работающего контейнера
🚩Использование `network connect` (только для user-defined сетей)
Можно подключить контейнер к другой сети с нужными DNS:
🚩Изменение настроек `systemd-resolved` (для контейнеров с `host`-сетью)
Если контейнер использует сеть хоста (
Ставь 👍 и забирай 📚 Базу знаний
Нет, нельзя изменить DNS у уже запущенного контейнера напрямую через CLI. Но есть обходные способы!
🚩Остановка и перезапуск контейнера с новыми DNS
Самый надежный способ — перезапустить контейнер с нужными DNS-серверами
docker run --dns 8.8.8.8 --dns 8.8.4.4 -d my_container
Или задать DNS через
docker network docker network create mynet --dns=1.1.1.1
docker run --net=mynet -d my_container
🚩Изменение `/etc/resolv.conf` внутри контейнера (может сработать)
Можно изменить DNS вручную внутри работающего контейнера
docker exec -it my_container sh
echo "nameserver 1.1.1.1" > /etc/resolv.conf
🚩Использование `network connect` (только для user-defined сетей)
Можно подключить контейнер к другой сети с нужными DNS:
docker network create mynewnet --dns=8.8.8.8
docker network connect mynewnet my_container
🚩Изменение настроек `systemd-resolved` (для контейнеров с `host`-сетью)
Если контейнер использует сеть хоста (
--network host), можно поменять DNS на хосте: resolvectl dns eth0 8.8.8.8
Ставь 👍 и забирай 📚 Базу знаний
👍1
🤔 Может ли приложение из одного неймспейса увидеть приложение из другого внутри кластера?
Да, если указать полное имя сервиса, включая неймспейс: service.namespace.svc.cluster.local. Однако по умолчанию межнеймспейсовая изоляция логическая, но не сетевая.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Да, если указать полное имя сервиса, включая неймспейс: service.namespace.svc.cluster.local. Однако по умолчанию межнеймспейсовая изоляция логическая, но не сетевая.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍3🔥1💊1
🤔 Как определить ресурс, который необходим одной node?
Чтобы определить нагрузку на Node и правильно выделить ресурсы, нужно:
Проверить текущее потребление ресурсов (CPU, RAM, диски)*
Оценить нагрузку от подов (
Использовать мониторинг (Prometheus, Grafana,
🚩Проверить нагрузку на Node (`kubectl top node`)
Команда
Вывод
🚩Проверить потребление ресурсов подами (`kubectl top pods`)
Команда
Вывод
🚩Анализ `requests` и `limits` подов
Команда
Вывод (пример секции Allocatable)
Проверить
Вывод
🚩Использование Prometheus и Grafana для анализа нагрузки
Prometheus-запросы для анализа Node
Средняя загрузка CPU за 5 минут
Среднее использование памяти
Ставь 👍 и забирай 📚 Базу знаний
Чтобы определить нагрузку на Node и правильно выделить ресурсы, нужно:
Проверить текущее потребление ресурсов (CPU, RAM, диски)*
Оценить нагрузку от подов (
requests и limits) Использовать мониторинг (Prometheus, Grafana,
kubectl top) 🚩Проверить нагрузку на Node (`kubectl top node`)
Команда
sh
kubectl top nodes
Вывод
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
node-1 500m 25% 2Gi 50%
node-2 1000m 50% 4Gi 80%
🚩Проверить потребление ресурсов подами (`kubectl top pods`)
Команда
sh
kubectl top pods --all-namespaces
Вывод
NAMESPACE POD CPU(cores) MEMORY(bytes)
default web-app-1 250m 256Mi
default web-app-2 300m 512Mi
monitoring prometheus-1 600m 1Gi
🚩Анализ `requests` и `limits` подов
Команда
sh
kubectl describe node node-1
Вывод (пример секции Allocatable)
Allocatable:
cpu: 4
memory: 8Gi
pods: 110
Проверить
requests и limits у подовsh
kubectl describe pod my-pod
Вывод
Requests:
cpu: 500m
memory: 1Gi
Limits:
cpu: 1
memory: 2Gi
🚩Использование Prometheus и Grafana для анализа нагрузки
Prometheus-запросы для анализа Node
Средняя загрузка CPU за 5 минут
promql
avg(rate(node_cpu_seconds_total[5m])) * 100
Среднее использование памяти
promql
avg(node_memory_Active_bytes) / avg(node_memory_MemTotal_bytes) * 100
Ставь 👍 и забирай 📚 Базу знаний
🔥2
🤔 Через что делается создание неймспейсов и запуск деплойментов?
- Всё делается через kube-apiserver, к которому обращаются:
- kubectl
- другие компоненты
- CI/CD пайплайны
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- Всё делается через kube-apiserver, к которому обращаются:
- kubectl
- другие компоненты
- CI/CD пайплайны
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Зачем нужны теги в Ansible?
Теги в Ansible позволяют запускать только определенные задачи или роли, а не весь плейбук. Это ускоряет выполнение и упрощает управление конфигурацией.
🚩Когда использовать теги?
🟠Запуск только нужных задач
если плейбук содержит много шагов, можно выполнить только нужные.
🟠Разделение задач по категориям
например, отдельно установка, обновление, настройка сервиса.
🟠Оптимизация CI/CD
ускорение развертывания, выполняя только измененные задачи.
🚩Как использовать теги?
🟠Теги в задачах (`tasks`)
Простой пример – установка и перезапуск Nginx
Запуск только установки (
Запуск только перезапуска (
🟠Теги в ролях (`roles`)
Если у вас несколько ролей, можно запускать только нужную:
Запуск только роли
🟠Исключение тегов (`--skip-tags`)
Можно пропустить выполнение определенных задач
Ставь 👍 и забирай 📚 Базу знаний
Теги в Ansible позволяют запускать только определенные задачи или роли, а не весь плейбук. Это ускоряет выполнение и упрощает управление конфигурацией.
🚩Когда использовать теги?
🟠Запуск только нужных задач
если плейбук содержит много шагов, можно выполнить только нужные.
🟠Разделение задач по категориям
например, отдельно установка, обновление, настройка сервиса.
🟠Оптимизация CI/CD
ускорение развертывания, выполняя только измененные задачи.
🚩Как использовать теги?
🟠Теги в задачах (`tasks`)
Простой пример – установка и перезапуск Nginx
yaml
- name: Установить Nginx
apt:
name: nginx
state: present
tags: install
- name: Перезапустить Nginx
service:
name: nginx
state: restarted
tags: restart
Запуск только установки (
install) sh
ansible-playbook playbook.yml --tags install
Запуск только перезапуска (
restart) sh
ansible-playbook playbook.yml --tags restart
🟠Теги в ролях (`roles`)
Если у вас несколько ролей, можно запускать только нужную:
yaml
- hosts: all
roles:
- { role: nginx, tags: web }
- { role: database, tags: db }
Запуск только роли
database sh
ansible-playbook playbook.yml --tags db
🟠Исключение тегов (`--skip-tags`)
Можно пропустить выполнение определенных задач
sh
ansible-playbook playbook.yml --skip-tags restart
Ставь 👍 и забирай 📚 Базу знаний
👍1
🤔 Как посмотреть историю изменения деплоймента?
Для этого используют:
- kubectl rollout history deployment <имя> — показывает историю версий (ревизий).
- Можно увидеть, какие изменения конфигурации были внесены и когда.
Это полезно для отслеживания конфигурационных изменений и откатов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Для этого используют:
- kubectl rollout history deployment <имя> — показывает историю версий (ревизий).
- Можно увидеть, какие изменения конфигурации были внесены и когда.
Это полезно для отслеживания конфигурационных изменений и откатов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍1
🤔 Какие есть метрики для измерения качества системы?
Для измерения качества системы (особенно в DevOps, SRE и разработке) используют различные метрики производительности, надежности и доступности.
🚩Основные метрики качества системы
🟠Метрики "Четырёх ключевых показателей" (DORA)
Эти метрики помогают оценить эффективность процессов DevOps:
Lead Time for Changes (Время доставки изменений) — время от написания кода до его выхода в прод.
Deployment Frequency (Частота развертываний) — как часто изменения попадают в прод.
Mean Time to Restore (MTTR) (Среднее время восстановления) — как быстро исправляются инциденты.
Change Failure Rate (Процент неудачных изменений) — доля развертываний, вызывающих сбои.
🟠Метрики надежности и доступности (SRE)
Эти метрики помогают измерять надежность системы:
SLA (Service Level Agreement) — договорное время доступности (например, 99.9%).
SLO (Service Level Objective) — целевое значение доступности (например, 99.95%).
SLI (Service Level Indicator) — фактические измеренные показатели (например, 99.93%).
Error Rate — процент ошибок в системе (HTTP 500, таймауты и т. д.).
Latency (Задержка) — время ответа системы на запросы.
🟠Метрики производительности
Они показывают, насколько быстро работает система:
CPU Utilization — загрузка процессора.
Memory Usage — использование оперативной памяти.
Disk I/O — скорость чтения/записи на диск.
Network Throughput — пропускная способность сети.
Response Time — время отклика системы.
🟠Метрики пользовательского опыта
Оценивают удобство работы пользователей с системой:
Apdex (Application Performance Index) — индекс удовлетворенности пользователей (0–1).
TTFB (Time to First Byte) — время до получения первого байта ответа от сервера.
Page Load Time — время полной загрузки страницы.
Bounce Rate — процент пользователей, покинувших сайт без взаимодействия.
Ставь 👍 и забирай 📚 Базу знаний
Для измерения качества системы (особенно в DevOps, SRE и разработке) используют различные метрики производительности, надежности и доступности.
🚩Основные метрики качества системы
🟠Метрики "Четырёх ключевых показателей" (DORA)
Эти метрики помогают оценить эффективность процессов DevOps:
Lead Time for Changes (Время доставки изменений) — время от написания кода до его выхода в прод.
Deployment Frequency (Частота развертываний) — как часто изменения попадают в прод.
Mean Time to Restore (MTTR) (Среднее время восстановления) — как быстро исправляются инциденты.
Change Failure Rate (Процент неудачных изменений) — доля развертываний, вызывающих сбои.
🟠Метрики надежности и доступности (SRE)
Эти метрики помогают измерять надежность системы:
SLA (Service Level Agreement) — договорное время доступности (например, 99.9%).
SLO (Service Level Objective) — целевое значение доступности (например, 99.95%).
SLI (Service Level Indicator) — фактические измеренные показатели (например, 99.93%).
Error Rate — процент ошибок в системе (HTTP 500, таймауты и т. д.).
Latency (Задержка) — время ответа системы на запросы.
🟠Метрики производительности
Они показывают, насколько быстро работает система:
CPU Utilization — загрузка процессора.
Memory Usage — использование оперативной памяти.
Disk I/O — скорость чтения/записи на диск.
Network Throughput — пропускная способность сети.
Response Time — время отклика системы.
🟠Метрики пользовательского опыта
Оценивают удобство работы пользователей с системой:
Apdex (Application Performance Index) — индекс удовлетворенности пользователей (0–1).
TTFB (Time to First Byte) — время до получения первого байта ответа от сервера.
Page Load Time — время полной загрузки страницы.
Bounce Rate — процент пользователей, покинувших сайт без взаимодействия.
Ставь 👍 и забирай 📚 Базу знаний
👍1
🤔 Что такое Node API в Kubernetes?
Node API — это часть Kubernetes API, которая:
- Предоставляет информацию о Node-объектах.
- Позволяет отслеживать ресурсы, состояние нод, метки, таинтинги.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Node API — это часть Kubernetes API, которая:
- Предоставляет информацию о Node-объектах.
- Позволяет отслеживать ресурсы, состояние нод, метки, таинтинги.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний