🤔 Как дебажить поды?
Для отладки подов в Kubernetes сначала можно посмотреть их логи командой kubectl logs <pod-name>. Если в поде несколько контейнеров, нужно указать имя контейнера через -c. Чтобы попасть внутрь контейнера, используют kubectl exec -it <pod-name> -- /bin/sh или /bin/bash. Также важно использовать kubectl describe pod <pod-name>, чтобы получить подробную информацию об ивентах, причине ошибок и статусе. Если под перезапускается, пригодится команда kubectl logs --previous, которая показывает логи предыдущего запуска контейнера.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Для отладки подов в Kubernetes сначала можно посмотреть их логи командой kubectl logs <pod-name>. Если в поде несколько контейнеров, нужно указать имя контейнера через -c. Чтобы попасть внутрь контейнера, используют kubectl exec -it <pod-name> -- /bin/sh или /bin/bash. Также важно использовать kubectl describe pod <pod-name>, чтобы получить подробную информацию об ивентах, причине ошибок и статусе. Если под перезапускается, пригодится команда kubectl logs --previous, которая показывает логи предыдущего запуска контейнера.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍1🔥1
🤔 Где бы хранил tfstate если много разрабов?
Файл
🚩Плохие решения
Локально (
Потеря данных, если разработчик сменит машину.
Конфликты, если несколько человек применяют
Невозможно откатиться к старому состоянию.
Не поддерживает блокировки (
Возможны проблемы с одновременным доступом.
🚩Лучшие решения для хранения `tfstate`
🟠S3 + DynamoDB (AWS) → Самый популярный способ
S3 хранит
🟠Terraform Cloud/Enterprise → Официальное SaaS-решение
Terraform Cloud хранит
🟠Google Cloud Storage (GCS) + Firestore (GCP)
Для GCP аналог AWS S3 — это Google Cloud Storage (GCS), а DynamoDB заменяется Firestore.
🟠Azure Storage + Azure CosmosDB (Azure)
Для Azure можно использовать Azure Storage и блокировки через Azure CosmosDB.
Ставь 👍 и забирай 📚 Базу знаний
Файл
terraform.tfstate содержит текущее состояние инфраструктуры. Если его неправильно хранить, возможны конфликты и повреждение данных. 🚩Плохие решения
Локально (
terraform.tfstate в репозитории) Потеря данных, если разработчик сменит машину.
Конфликты, если несколько человек применяют
terraform apply. Невозможно откатиться к старому состоянию.
Не поддерживает блокировки (
terraform lock). Возможны проблемы с одновременным доступом.
🚩Лучшие решения для хранения `tfstate`
🟠S3 + DynamoDB (AWS) → Самый популярный способ
S3 хранит
tfstate, а DynamoDB предотвращает конфликты. terraform {
backend "s3" {
bucket = "my-terraform-state"
key = "prod/terraform.tfstate"
region = "us-east-1"
encrypt = true
dynamodb_table = "terraform-lock"
}
}🟠Terraform Cloud/Enterprise → Официальное SaaS-решение
Terraform Cloud хранит
tfstate в облаке HashiCorp. terraform {
backend "remote" {
hostname = "app.terraform.io"
organization = "my-org"
workspaces {
name = "my-workspace"
}
}
}🟠Google Cloud Storage (GCS) + Firestore (GCP)
Для GCP аналог AWS S3 — это Google Cloud Storage (GCS), а DynamoDB заменяется Firestore.
terraform {
backend "gcs" {
bucket = "my-tfstate-bucket"
prefix = "terraform/state"
}
}🟠Azure Storage + Azure CosmosDB (Azure)
Для Azure можно использовать Azure Storage и блокировки через Azure CosmosDB.
terraform {
backend "azurerm" {
resource_group_name = "my-rg"
storage_account_name = "myterraformstate"
container_name = "tfstate"
key = "prod.terraform.tfstate"
}
}Ставь 👍 и забирай 📚 Базу знаний
🤔 По какой причине inode могут закончиться
Inodes заканчиваются, когда файловая система достигает максимального количества файлов, которые можно создать, даже если еще есть свободное место на диске. Это может произойти при наличии большого количества мелких файлов, которые занимают inodes, особенно в файловых системах с ограниченным количеством inodes. Когда inodes исчерпаны, создание новых файлов становится невозможным, несмотря на наличие доступного дискового пространства.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍3💊3
🤔 Как мы можем поменять последовательное выполнение таски плейбука на машинах в параллельное?
По умолчанию Ansible выполняет задачи последовательно, но можно ускорить выполнение с помощью параметра
🚩Увеличение параллельных подключений (`forks`)
Установить
🚩Асинхронное выполнение (`async` + `poll`)
Если задача выполняется долго, ее можно запустить асинхронно и не ждать завершения.
Пример асинхронного выполнения установки пакета
Проверить статус запущенных задач:
🚩Использование `&` в Shell-командах (`shell` + `nohup`)
Пример запуска задачи в фоновом режиме
Ставь 👍 и забирай 📚 Базу знаний
По умолчанию Ansible выполняет задачи последовательно, но можно ускорить выполнение с помощью параметра
forks или асинхронных задач (async). 🚩Увеличение параллельных подключений (`forks`)
forks – это количество серверов, на которых Ansible выполняет задачи одновременно. ansible-playbook -i inventory.ini playbook.yml --forks=10
Установить
forks в ansible.cfg: [defaults]
forks = 10
🚩Асинхронное выполнение (`async` + `poll`)
Если задача выполняется долго, ее можно запустить асинхронно и не ждать завершения.
Пример асинхронного выполнения установки пакета
- name: Установить nginx параллельно
apt:
name: nginx
state: present
async: 300
poll: 0
async: 300 – запускает задачу и дает ей 300 секунд на выполнение poll: 0 – не ждет завершения, сразу переходит к следующей Проверить статус запущенных задач:
ansible all -m async_status -a "jid=1234567890" -i inventory.ini
🚩Использование `&` в Shell-командах (`shell` + `nohup`)
Пример запуска задачи в фоновом режиме
- name: Запустить долгий процесс
shell: "nohup long_script.sh &"
Ставь 👍 и забирай 📚 Базу знаний
👍4
🤔 Что такое маска подсетей и зачем она нужна?
Маска подсети определяет, какая часть IP-адреса — это сеть, а какая — узел (host).
Например, маска255.255.255.0 говорит: первые 3 октета — сеть, последний — устройства в ней.
Используется для разделения сети на подсети, маршрутизации и управления доступом.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Маска подсети определяет, какая часть IP-адреса — это сеть, а какая — узел (host).
Например, маска
Используется для разделения сети на подсети, маршрутизации и управления доступом.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍7🤔2
🤔 В каком файле по дефолту будет хранится инормация об ОС, версии в линуксе?
В Linux информация о версии дистрибутива и ядра хранится в нескольких файлах.
🟠Основной файл — `/etc/os-release`
Этот файл есть во всех современных дистрибутивах (Debian, Ubuntu, RHEL, CentOS, Fedora).
Пример содержимого
🟠Альтернативный файл — `/etc/issue`
Некоторые дистрибутивы используют
Вывод
🟠Информация о ядре — `/proc/version`
Этот файл содержит версию ядра и информацию о компиляции.
Вывод
🟠Команды для проверки версии ОС
Проверить версию через
Вывод
Проверить ядро через
Вывод
Можно также вывести полную информацию:
Ставь 👍 и забирай 📚 Базу знаний
В Linux информация о версии дистрибутива и ядра хранится в нескольких файлах.
🟠Основной файл — `/etc/os-release`
Этот файл есть во всех современных дистрибутивах (Debian, Ubuntu, RHEL, CentOS, Fedora).
cat /etc/os-release
Пример содержимого
/etc/os-release NAME="Ubuntu"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
ID=ubuntu
PRETTY_NAME="Ubuntu 22.04.3 LTS"
VERSION_ID="22.04"
HOME_URL="https://www.ubuntu.com/"
🟠Альтернативный файл — `/etc/issue`
Некоторые дистрибутивы используют
/etc/issue. cat /etc/issue
Вывод
Ubuntu 22.04.3 LTS \n \l
🟠Информация о ядре — `/proc/version`
Этот файл содержит версию ядра и информацию о компиляции.
cat /proc/version
Вывод
Linux version 5.15.0-84-generic (buildd@lcy02-amd64-016) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0) #93-Ubuntu SMP
🟠Команды для проверки версии ОС
Проверить версию через
lsb_release lsb_release -a
Вывод
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
Проверить ядро через
unameuname -r
Вывод
5.15.0-84-generic
Можно также вывести полную информацию:
uname -a
Ставь 👍 и забирай 📚 Базу знаний
👍2
🤔 Как остановить контейнер?
1. Обычное завершение – docker stop <container_id> (мягкий SIGTERM).
2. Принудительное завершение – docker kill <container_id> (SIGKILL).
3. Через Compose – docker-compose stop или docker-compose down.
4. Удаление контейнера – docker rm -f <container_id>.
5. Если завис в zombie state – kill -9 $(docker inspect --format '{{.State.Pid}}' <container_id>).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
1. Обычное завершение – docker stop <container_id> (мягкий SIGTERM).
2. Принудительное завершение – docker kill <container_id> (SIGKILL).
3. Через Compose – docker-compose stop или docker-compose down.
4. Удаление контейнера – docker rm -f <container_id>.
5. Если завис в zombie state – kill -9 $(docker inspect --format '{{.State.Pid}}' <container_id>).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔4💊1
🤔 Какие метрики стоит снимать с докер контейнеров?
Чтобы мониторить Docker-контейнеры, нужно отслеживать ключевые метрики, которые помогут определить нагрузку, утечки памяти, падения контейнеров и проблемы с сетью.
CPU (Нагрузка на процессор)
Memory (Использование памяти)
Network (Сетевой трафик)
Disk I/O (Диск и файловая система)
Container Lifecycle (Состояние контейнеров)
🟠CPU (Загрузка процессора)
Метрика в Prometheus (cadvisor)
🟠Memory (Использование памяти)
Метрика в Prometheus
🟠Network (Сетевой трафик)
Метрика в Prometheus
🟠Disk I/O (Чтение/запись на диск)
Метрика в Prometheus
🟠Container Lifecycle (Состояние контейнеров)
Метрика в Prometheus
Ставь 👍 и забирай 📚 Базу знаний
Чтобы мониторить Docker-контейнеры, нужно отслеживать ключевые метрики, которые помогут определить нагрузку, утечки памяти, падения контейнеров и проблемы с сетью.
CPU (Нагрузка на процессор)
Memory (Использование памяти)
Network (Сетевой трафик)
Disk I/O (Диск и файловая система)
Container Lifecycle (Состояние контейнеров)
🟠CPU (Загрузка процессора)
% использования CPU контейнером % CPU в системе и пользователе Throttling (ограничение CPU) docker stats --format "table {{.Name}}\t{{.CPUPerc}}"Метрика в Prometheus (cadvisor)
rate(container_cpu_usage_seconds_total{name="my-container"}[5m]) * 100🟠Memory (Использование памяти)
RSS (реальная память, используемая процессами) Cache (используемая кэшированная память) OOM (Out of Memory kills) docker stats --format "table {{.Name}}\t{{.MemUsage}}"Метрика в Prometheus
container_memory_usage_bytes{name="my-container"}🟠Network (Сетевой трафик)
Rx/Tx Bytes (входящий и исходящий трафик) Количество соединений docker stats --format "table {{.Name}}\t{{.NetIO}}"Метрика в Prometheus
rate(container_network_transmit_bytes_total{name="my-container"}[5m])🟠Disk I/O (Чтение/запись на диск)
Количество операций чтения/записи Объем данных, записанных/прочитанных контейнером docker stats --format "table {{.Name}}\t{{.BlockIO}}"Метрика в Prometheus
rate(container_fs_writes_bytes_total{name="my-container"}[5m])🟠Container Lifecycle (Состояние контейнеров)
Перезапуски контейнера (Restart Count) Состояние контейнера (Running, Exited, Dead) docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Restarts}}"Метрика в Prometheus
container_start_time_seconds{name="my-container"}Ставь 👍 и забирай 📚 Базу знаний
🔥4
🤔 Какие методы HTTP есть?
- GET — получить данные.
- POST — отправить (создать) данные.
- PUT — заменить данные.
- PATCH — частичное обновление.
- DELETE — удалить.
- HEAD, OPTIONS, TRACE — вспомогательные методы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- GET — получить данные.
- POST — отправить (создать) данные.
- PUT — заменить данные.
- PATCH — частичное обновление.
- DELETE — удалить.
- HEAD, OPTIONS, TRACE — вспомогательные методы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍4🔥2💊1
🤔 Удалил файлы, но место не очищается, в чем дело?
Если вы удалили файлы, но место на диске не освободилось, это может происходить по нескольким причинам.
🚩Файл все еще используется процессом
Если файл удален, но он открыт каким-либо процессом, его содержимое остается в памяти или файловой системе до завершения работы этого процесса. Это называется "удаление с дескриптором".
🟠Как проверить:
Используйте команду
🟠Как исправить
Перезапустите процесс или завершите его с помощью
🚩Файл удален, но он находился в другом файловом пространстве
Например:
- Файл был удален внутри Docker-контейнера, но место занято в образе.
- Файл находился на смонтированном диске, и удаление произошло в другом контексте.
🟠Как проверить
Убедитесь, что вы работаете в правильной файловой системе:
🟠Как исправить
Убедитесь, что удаление происходит в нужной директории или файловой системе.
🚩Файл был удален из директории, но находится в другой ссылке (hard link)
Если файл имеет несколько жестких ссылок, удаление одного из них не освободит место до тех пор, пока не удалены все ссылки.
🟠Как проверить
Используйте команду
🟠Как исправить
Удалите все ссылки на файл.
🚩Файл был удален, но находился в файловой системе с квотой
Если используется файловая система с ограничением (например, квоты пользователей или групп), возможно, квота пользователя исчерпана, и это мешает очистке.
🟠Как проверить
Проверьте квоты:
🟠Как исправить
Убедитесь, что квоты настроены правильно, или освободите больше места.
🚩Кэшированные данные или временные файлы
Иногда удаленные файлы остаются в виде кэша, временных данных или не удаляются из корзины.
🟠Как проверить
Очистите кэш или проверьте корзину. Например, для очистки временных файлов
🟠Как исправить
Удалите временные файлы, очистите кэш:
Ставь 👍 и забирай 📚 Базу знаний
Если вы удалили файлы, но место на диске не освободилось, это может происходить по нескольким причинам.
🚩Файл все еще используется процессом
Если файл удален, но он открыт каким-либо процессом, его содержимое остается в памяти или файловой системе до завершения работы этого процесса. Это называется "удаление с дескриптором".
🟠Как проверить:
Используйте команду
lsof (list open files), чтобы найти процессы, удерживающие файлlsof | grep deleted
🟠Как исправить
Перезапустите процесс или завершите его с помощью
kill:kill -9 <PID>
🚩Файл удален, но он находился в другом файловом пространстве
Например:
- Файл был удален внутри Docker-контейнера, но место занято в образе.
- Файл находился на смонтированном диске, и удаление произошло в другом контексте.
🟠Как проверить
Убедитесь, что вы работаете в правильной файловой системе:
df -h
🟠Как исправить
Убедитесь, что удаление происходит в нужной директории или файловой системе.
🚩Файл был удален из директории, но находится в другой ссылке (hard link)
Если файл имеет несколько жестких ссылок, удаление одного из них не освободит место до тех пор, пока не удалены все ссылки.
🟠Как проверить
Используйте команду
find, чтобы найти оставшиеся ссылки:find / -samefile <имя_файла>
🟠Как исправить
Удалите все ссылки на файл.
🚩Файл был удален, но находился в файловой системе с квотой
Если используется файловая система с ограничением (например, квоты пользователей или групп), возможно, квота пользователя исчерпана, и это мешает очистке.
🟠Как проверить
Проверьте квоты:
quota -u <username>
🟠Как исправить
Убедитесь, что квоты настроены правильно, или освободите больше места.
🚩Кэшированные данные или временные файлы
Иногда удаленные файлы остаются в виде кэша, временных данных или не удаляются из корзины.
🟠Как проверить
Очистите кэш или проверьте корзину. Например, для очистки временных файлов
sudo du -sh /tmp
sudo rm -rf /tmp/*
🟠Как исправить
Удалите временные файлы, очистите кэш:
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches
Ставь 👍 и забирай 📚 Базу знаний
🔥2
🤔 Как и где посмотреть логи какого-нибудь сервиса?
1. Если сервис использует systemd, логи можно посмотреть через journalctl -u <имя_сервиса>.
2. Для Nginx, Apache и других приложений логи находятся в /var/log/ или в директории, указанной в конфигурации сервиса.
3. Используйте команды tail, less или cat для просмотра логов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
2. Для Nginx, Apache и других приложений логи находятся в /var/log/ или в директории, указанной в конфигурации сервиса.
3. Используйте команды tail, less или cat для просмотра логов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍5🔥2🤔1
🤔 Как примонтировать диск?
Чтобы использовать новый диск в Linux, его нужно разметить, создать файловую систему и примонтировать.
🚩Разметить диск (`fdisk`)
Запустить
🚩Создать файловую систему (`mkfs`)
Форматировать раздел в
Если нужен
🚩Автоматическое монтирование при загрузке (`/etc/fstab`)
Найти
Вывод
Добавить в
Применить изменения
Ставь 👍 и забирай 📚 Базу знаний
Чтобы использовать новый диск в Linux, его нужно разметить, создать файловую систему и примонтировать.
🚩Разметить диск (`fdisk`)
Запустить
fdisk для диска sdb sudo fdisk /dev/sdb
🚩Создать файловую систему (`mkfs`)
Форматировать раздел в
ext4sudo mkfs.ext4 /dev/sdb1
Если нужен
xfssudo mkfs.xfs /dev/sdb1
🚩Автоматическое монтирование при загрузке (`/etc/fstab`)
Найти
UUID дискаblkid /dev/sdb1
Вывод
/dev/sdb1: UUID="12345678-abcd-1234-efgh-56789abcdef0" TYPE="ext4"
Добавить в
/etc/fstab echo 'UUID=12345678-abcd-1234-efgh-56789abcdef0 /mnt/data ext4 defaults 0 2' | sudo tee -a /etc/fstab
Применить изменения
sudo mount -a
Ставь 👍 и забирай 📚 Базу знаний
👍6
🤔 Как готовиться к собеседованию?
- Пройтись по теории (OS, сети, DevOps-инструменты);
- Подготовить краткое описание опыта и проектов;
- Решить технические задачи (CI/CD, Terraform, Docker);
- Прогнать вопросы по soft skills и кейсы;
- Отдохнуть перед интервью и не бояться признать, если что-то не знаешь.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- Пройтись по теории (OS, сети, DevOps-инструменты);
- Подготовить краткое описание опыта и проектов;
- Решить технические задачи (CI/CD, Terraform, Docker);
- Прогнать вопросы по soft skills и кейсы;
- Отдохнуть перед интервью и не бояться признать, если что-то не знаешь.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍6
🤔 Что означают DNS records?
DNS Records – это записи, которые управляют маршрутизацией домена в интернете. Они определяют, куда направлять запросы, какие IP-адреса использовать и какие сервисы подключены к домену.
🚩Примеры использования
A-запись (IP-адрес домена)
CNAME-запись (псевдоним)
MX-запись (почтовый сервер)
TXT-запись (SPF, верификация)
Ставь 👍 и забирай 📚 Базу знаний
DNS Records – это записи, которые управляют маршрутизацией домена в интернете. Они определяют, куда направлять запросы, какие IP-адреса использовать и какие сервисы подключены к домену.
🚩Примеры использования
A-запись (IP-адрес домена)
example.com. IN A 192.168.1.1
CNAME-запись (псевдоним)
www.example.com. IN CNAME example.com.
MX-запись (почтовый сервер)
example.com. IN MX 10 mail.example.com.
TXT-запись (SPF, верификация)
example.com. IN TXT "v=spf1 include:_spf.google.com ~all"
Ставь 👍 и забирай 📚 Базу знаний
🔥2
🤔 Как CloudFront помогает сэкономить бюджет?
- Кэширование статического контента снижает нагрузку на S3 или серверы приложений.
- Близость к пользователю уменьшает задержки и число дорогостоящих запросов в центральный регион.
- Реже вызываются лямбды, API и базы, значит — меньше оплата за вызовы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- Кэширование статического контента снижает нагрузку на S3 или серверы приложений.
- Близость к пользователю уменьшает задержки и число дорогостоящих запросов в центральный регион.
- Реже вызываются лямбды, API и базы, значит — меньше оплата за вызовы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔2
🤔 Что такое debezium?
Она позволяет отслеживать изменения в базах данных (INSERT, UPDATE, DELETE) в реальном времени и передавать их в Kafka, Elasticsearch, MongoDB и другие системы.
🚩Как работает Debezium?
Подключается к базе данных
(PostgreSQL, MySQL, MongoDB, Oracle и др.).
Слушает лог изменений (binlog, WAL, oplog и т. д.)
Формирует события в формате JSON
Передаёт их в Kafka или другую шину данных.
🚩Где используется?
Синхронизация данных между базами
Репликация данных в реальном времени
Отправка изменений в аналитические системы (Elasticsearch, ClickHouse)
Аудит и логирование изменений
🟠Пример работы с Kafka
Запускаем Debezium Connector для PostgreSQL*
При изменении данных в таблице, Kafka получит событие:
Ставь 👍 и забирай 📚 Базу знаний
Она позволяет отслеживать изменения в базах данных (INSERT, UPDATE, DELETE) в реальном времени и передавать их в Kafka, Elasticsearch, MongoDB и другие системы.
🚩Как работает Debezium?
Подключается к базе данных
(PostgreSQL, MySQL, MongoDB, Oracle и др.).
Слушает лог изменений (binlog, WAL, oplog и т. д.)
Формирует события в формате JSON
Передаёт их в Kafka или другую шину данных.
🚩Где используется?
Синхронизация данных между базами
Репликация данных в реальном времени
Отправка изменений в аналитические системы (Elasticsearch, ClickHouse)
Аудит и логирование изменений
🟠Пример работы с Kafka
Запускаем Debezium Connector для PostgreSQL*
{
"name": "inventory-connector",
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"database.hostname": "localhost",
"database.port": "5432",
"database.user": "debezium",
"database.password": "dbz",
"database.dbname": "inventory",
"database.server.name": "dbserver1"
}
}При изменении данных в таблице, Kafka получит событие:
{
"schema": { ... },
"payload": {
"before": { "id": 1, "name": "Old Name" },
"after": { "id": 1, "name": "New Name" },
"op": "u" // Update
}
}Ставь 👍 и забирай 📚 Базу знаний
👍8
🤔 Когда ты разворачиваешь стандартный кластер Kubernetes, что делает твой namespace?
При развёртывании кластера создаются стандартные namespaces: default для объектов по умолчанию, kube-system для компонентов Kubernetes, kube-public для общедоступных ресурсов и kube-node-lease для управления состоянием узлов. Они помогают разделить ресурсы и организовать кластер.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
💊6🔥2
🤔 Зачем нужен стейт в Terraform?
Файл
🟠Отслеживание ресурсов
Terraform использует
В коде создаем виртуальную машину
Запускаем
В
При следующем
🟠Управление зависимостями
Когда ресурсы связаны (например, сервер и security group), Terraform понимает связи через
🟠Работа в команде (`remote state`)
Когда несколько разработчиков работают с Terraform,
- S3 + DynamoDB (AWS)
- Terraform Cloud
- GCS + Firestore (GCP)
- Azure Storage + CosmosDB (Azure)
Ставь 👍 и забирай 📚 Базу знаний
Файл
terraform.tfstate хранит текущее состояние инфраструктуры. Он нужен, чтобы Terraform знал, какие ресурсы уже существуют, и мог правильно управлять изменениями. 🟠Отслеживание ресурсов
Terraform использует
tfstate, чтобы сопоставлять код с реальными ресурсами. В коде создаем виртуальную машину
hcl
resource "aws_instance" "example" {
ami = "ami-123456"
instance_type = "t2.micro"
}
Запускаем
terraform apply, создается сервер в AWS В
terraform.tfstate записывается информация об этом ресурсе При следующем
terraform apply Terraform сверяет tfstate с реальными ресурсами и вносит только изменения 🟠Управление зависимостями
Когда ресурсы связаны (например, сервер и security group), Terraform понимает связи через
tfstate и удаляет ресурсы в правильном порядке 🟠Работа в команде (`remote state`)
Когда несколько разработчиков работают с Terraform,
tfstate должен храниться в общем месте, например - S3 + DynamoDB (AWS)
- Terraform Cloud
- GCS + Firestore (GCP)
- Azure Storage + CosmosDB (Azure)
hcl
terraform {
backend "s3" {
bucket = "my-terraform-state"
key = "prod/terraform.tfstate"
region = "us-east-1"
encrypt = true
dynamodb_table = "terraform-lock"
}
}
Ставь 👍 и забирай 📚 Базу знаний
👍1
🤔 Какие утилиты для редактирования текста "на лету"?
"На лету" — это значит без открытия интерактивного редактора. Вот популярные утилиты:
- sed — потоковый редактор, отлично подходит для замены, удаления строк и подстановки.
- awk — обработка и изменение строк и столбцов в текстах.
- perl -p -i — редактирование файлов прямо в командной строке.
- ed — минималистичный текстовый редактор, работает через команды.
- ex — командный режим vi.
- Также echo, cut, tr, paste — для простых трансформаций.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
"На лету" — это значит без открытия интерактивного редактора. Вот популярные утилиты:
- sed — потоковый редактор, отлично подходит для замены, удаления строк и подстановки.
- awk — обработка и изменение строк и столбцов в текстах.
- perl -p -i — редактирование файлов прямо в командной строке.
- ed — минималистичный текстовый редактор, работает через команды.
- ex — командный режим vi.
- Также echo, cut, tr, paste — для простых трансформаций.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥1
🤔 Как происходит секьюрити тест какой алгоритм под капотом?
Security-тестирование – это процесс проверки системы на уязвимости, угрозы и риски атак. Оно помогает защитить данные и сервисы от хакеров.
🚩Сканеры уязвимостей (Nessus, OpenVAS)
- Загружают базу известных уязвимостей (CVE).
- Проверяют систему на наличие этих уязвимостей.
- Используют сигнатурный анализ (по шаблонам) и эвристический анализ (поведенческий).
🚩SQL-инъекции (SQLmap, Burp Suite)
- Автоматически подставляют вредоносные SQL-запросы (
- Проверяют, есть ли доступ к базе данных.
- Выполняют дамп данных, если нашли уязвимость.
🚩Поиск XSS-уязвимостей (DOM-XSS, Stored-XSS, Reflected-XSS)
- Вставляют вредоносный JavaScript-код в форму ввода.
- Если скрипт исполняется в браузере – уязвимость найдена.
🚩Подбор паролей (Brute Force, Dictionary Attack)
- Пробуют тысячи вариантов паролей (
- Используют
🚩Анализ трафика (MITM, Sniffing, Packet Analysis)
Захватывают пакеты сети (
Ищут передаваемые пароли, сессии, токены.
Ставь 👍 и забирай 📚 Базу знаний
Security-тестирование – это процесс проверки системы на уязвимости, угрозы и риски атак. Оно помогает защитить данные и сервисы от хакеров.
🚩Сканеры уязвимостей (Nessus, OpenVAS)
- Загружают базу известных уязвимостей (CVE).
- Проверяют систему на наличие этих уязвимостей.
- Используют сигнатурный анализ (по шаблонам) и эвристический анализ (поведенческий).
🚩SQL-инъекции (SQLmap, Burp Suite)
- Автоматически подставляют вредоносные SQL-запросы (
' OR 1=1 --). - Проверяют, есть ли доступ к базе данных.
- Выполняют дамп данных, если нашли уязвимость.
SELECT * FROM users WHERE username = 'admin' --' AND password = 'password'
🚩Поиск XSS-уязвимостей (DOM-XSS, Stored-XSS, Reflected-XSS)
- Вставляют вредоносный JavaScript-код в форму ввода.
- Если скрипт исполняется в браузере – уязвимость найдена.
<script>alert('XSS!')</script>🚩Подбор паролей (Brute Force, Dictionary Attack)
- Пробуют тысячи вариантов паролей (
rockyou.txt). - Используют
John the Ripper, Hydra, Hashcat. hydra -l admin -P passwords.txt 192.168.1.1 ssh
🚩Анализ трафика (MITM, Sniffing, Packet Analysis)
Захватывают пакеты сети (
tcpdump, Wireshark). Ищут передаваемые пароли, сессии, токены.
Ставь 👍 и забирай 📚 Базу знаний
🤔 Как организовать полный цикл CI/CD для 3 команд?
- Разделить пайплайны по проектам/компонентам;
- Использовать общие stages: build → test → scan → deploy;
- Настроить изолированные среды (dev/test/prod);
- Внедрить обратную связь (slack, email);
- Хранить все артефакты централизованно;
- Назначить ответственность за релиз каждой команды или централизованно через релиз-менеджера.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- Разделить пайплайны по проектам/компонентам;
- Использовать общие stages: build → test → scan → deploy;
- Настроить изолированные среды (dev/test/prod);
- Внедрить обратную связь (slack, email);
- Хранить все артефакты централизованно;
- Назначить ответственность за релиз каждой команды или централизованно через релиз-менеджера.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍1💊1