ch
Feedback
DevOps | Вопросы собесов

DevOps | Вопросы собесов

前往频道在 Telegram
5 510
订阅者
+324 小时
-57
无数据30
帖子存档
🤔 Что такое аккаунт в Terraform? Обычно имеется в виду: - Terraform Cloud/Enterprise account — для управления workspace'ами, доступами, state. - Или облачный провайдер-аккаунт (AWS, GCP), используемый через provider. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Из чего состоит ELK стек? ELK (Elasticsearch, Logstash, Kibana) – это стек для сбора, обработки, хранения и визуализации логов. Он помогает DevOps-инженерам анализировать логи в реальном времени и выявлять проблемы в системе. 🚩Elasticsearch – хранилище и поиск логов - Хранит структурированные и неструктурированные данные (логи, метрики) - Поддерживает быстрый полнотекстовый поиск - Использует кластеризацию для высокой доступности
json  
GET /logs/_search  
{  
  "query": {  
    "match": { "message": "error" }  
  }  
}  
🚩Logstash – обработка и отправка логов - Собирает логи из файлов, TCP, Kafka, Beats - Фильтрует и преобразует данные перед отправкой в Elasticsearch - Поддерживает шифрование и маршрутизацию
yaml  
input {  
  file {  
    path => "/var/log/nginx/access.log"  
    start_position => "beginning"  
  }  
}  
filter {  
  grok { match => { "message" => "%{COMBINEDAPACHELOG}" } }  
}  
output {  
  elasticsearch {  
    hosts => ["http://elasticsearch:9200"]  
  }  
}  
🚩Kibana – визуализация и анализ - Позволяет строить дашборды и графики - Делает поиск по логам и метрикам - Визуализирует реальное время работы системы
  
message: "error" AND @timestamp:[now-24h TO now]  
🚩Как ELK-стек работает вместе? Logstash собирает и обрабатывает логи Отправляет их в Elasticsearch Kibana визуализирует данные
yaml  
version: "3"  
services:  
  elasticsearch:  
    image: docker.elastic.co/elasticsearch/elasticsearch:8.5.0  
    environment:  
      - discovery.type=single-node  
    ports:  
      - "9200:9200"  

  logstash:  
    image: docker.elastic.co/logstash/logstash:8.5.0  
    depends_on:  
      - elasticsearch  
    volumes:  
      - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf  
    ports:  
      - "5044:5044"  

  kibana:  
    image: docker.elastic.co/kibana/kibana:8.5.0  
    depends_on:  
      - elasticsearch  
    ports:  
      - "5601:5601"
Ставь 👍 и забирай 📚 Базу знаний

Бесплатный курс диджитал-дизайна На бесплатном курсе ты сможешь: ✨попробовать себя в диджитал-дизайне: афиши, сайты, UX/UI-ди
Бесплатный курс диджитал-дизайна На бесплатном курсе ты сможешь: ✨попробовать себя в диджитал-дизайне: афиши, сайты, UX/UI-дизайн (дизайн интерфейсов) ✨сделать 3 проекта для портфолио с обратной связью от наставника ✨понять, как устроена работа дизайнера ✨получить доступ к закрытой базе материалов и пошаговым инструкциям по профессии Попробовать #реклама 18+ study.logomachine.ru О рекламодателе

🤔 Как работает лоадбалансер в облаке? - Создаётся внешнее IP. - Проксирует входящий трафик к NodePort сервисам. - Использует healthcheck, может поддерживать sticky sessions. - Под капотом — реализация у облачного провайдера (AWS ALB, GCP LB, Azure LB). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое IaC? Это практика управления и настройки IT-инфраструктуры (серверов, сетей, баз данных и других ресурсов) с помощью кода, а не вручную через консоли или графические интерфейсы. 🚩Зачем нужен IaC? 🟠Автоматизация вместо ручной настройки серверов вы пишете код, который делает это автоматически. 🟠Консистентность одинаковая среда на всех серверах, исключение человеческих ошибок. 🟠Быстрое развертывание развернуть инфраструктуру можно за минуты. 🟠Легкость в откате если что-то пошло не так, можно быстро вернуть предыдущее состояние. 🟠Масштабируемость легко добавить новые серверы или ресурсы при увеличении нагрузки. 🚩Как работает IaC? С помощью IaC вы описываете всю инфраструктуру в коде (например, в YAML, JSON, HCL и др.), а затем используете инструменты для автоматического развертывания.
provider "aws" {
  region = "us-east-1"
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}
🚩Основные инструменты IaC 🟠Terraform универсальный инструмент для облаков (AWS, Azure, GCP и др.). 🟠Ansible удобен для настройки серверов (конфигурации ПО). 🟠Puppet / Chef похожи на Ansible, но требуют агента на серверах. 🟠CloudFormation инструмент от AWS для управления ресурсами. Ставь 👍 и забирай 📚 Базу знаний

🤔 Что даёт DevOps как концепция? DevOps объединяет разработку и эксплуатацию в единый цикл поставки ПО. Он обеспечивает: - автоматизацию процессов (CI/CD), - стабильность и контроль версий, - ускорение вывода продукта на рынок, - мониторинг и обратную связь. Цель — улучшить качество и скорость релизов за счёт совместной культуры и инструментов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 При попытке создания файла на диске на linux ошибка что места нет проверяете место есть с чем это может быть связано Если при создании файла в Linux появляется ошибка, что места нет, но df -h показывает свободное место, проблема может быть в следующем: 🚩Закончились inodes Inodes – это структуры, которые хранят метаданные о файлах. Даже если есть свободное место, но inodes кончились, новые файлы создать нельзя.
df -i
Найти каталоги с множеством маленьких файлов:
  find /path -xdev -type f | wc -l  # Количество файлов в каталоге
  
🚩Ограничение дискового квотирования (quota) В системе могут быть настроены дисковые квоты, которые ограничивают использование диска для пользователя или группы.
quota -v
🚩Заполнен раздел `/var`, `/tmp` или `/home` В системе может быть несколько дисковых разделов (/, /var, /home и т. д.). Если один из них заполнен, в него нельзя записывать файлы.
df -hT
🚩Файловая система смонтирована в режиме `read-only` Если файловая система перешла в режим «только для чтения» (read-only) из-за ошибки или сбоя, запись на неё невозможна.
mount | grep ' ro,'
Если файловая система смонтирована с `ro`, значит, запись запрещена. Перемонтировать диск:
  mount -o remount,rw /path
  
Проверить диск на ошибки:
  dmesg | tail -20  # Лог ошибок
  fsck /dev/sdX  # Проверка диска
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое гипервизор? Гипервизор — это программный или аппаратный слой, позволяющий запускать несколько операционных систем (виртуальных машин) на одной физической машине. Бывает двух типов: на уровне железа и в ОС. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как бы построить выделение ресурсов, балансировку, нагрузку и всю масштабированность? Чтобы система работала стабильно и эффективно, нужно правильно распределять ресурсы, балансировать нагрузку и масштабировать сервисы. 🚩Основные компоненты Выделение ресурсов - CPU, RAM, диски, сеть Балансировка нагрузки равномерное распределение трафика Горизонтальное и вертикальное масштабирование Авто-масштабировани – динамическое добавление/удаление мощностей 🟠Выделение ресурсов (CPU, RAM, Диск, Сеть) В виртуализированных средах (Kubernetes, Docker, AWS, KVM, ESXi) выделение ресурсов настраивается через лимиты и квоты.
yaml  
apiVersion: v1  
kind: Pod  
metadata:  
  name: my-app  
spec:  
  containers:  
  - name: app  
    image: my-app:latest  
    resources:  
      requests:  
        cpu: "500m"   # Минимально 0.5 CPU  
        memory: "256Mi" # Минимально 256MB RAM  
      limits:  
        cpu: "1000m"  # Максимально 1 CPU  
        memory: "512Mi" # Максимально 512MB RAM  
🟠Балансировка нагрузки Балансировка уменьшает нагрузку на один сервер и равномерно распределяет запросы.
nginx  
upstream backend {  
  server app1:5000;  
  server app2:5000;  
}  
server {  
  listen 80;  
  location / {  
    proxy_pass http://backend;  
  }  
}  
Пример терраформа для AWS ALB
hcl  
resource "aws_lb" "example" {  
  name               = "my-load-balancer"  
  internal           = false  
  load_balancer_type = "application"  
  security_groups    = [aws_security_group.lb_sg.id]  
}  
🟠Масштабирование (Горизонтальное и Вертикальное) Горизонтальное масштабирование (добавление новых инстансов) Kubernetes Horizontal Pod Autoscaler (HPA)
yaml  
apiVersion: autoscaling/v2beta2  
kind: HorizontalPodAutoscaler  
metadata:  
  name: my-app-hpa  
spec:  
  scaleTargetRef:  
    apiVersion: apps/v1  
    kind: Deployment  
    name: my-app  
  minReplicas: 2  
  maxReplicas: 10  
  metrics:  
  - type: Resource  
    resource:  
      name: cpu  
      target:  
        type: Utilization  
        averageUtilization: 70  
🟠Авто-масштабирование (AWS/GCP/Kubernetes) AWS Auto Scaling Group
hcl  
resource "aws_autoscaling_group" "example" {  
  min_size             = 2  
  max_size             = 10  
  desired_capacity     = 2  
  launch_configuration = aws_launch_configuration.example.name  
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Удалил файлы, но место не очищается, в чём дело? Обычно это связано с тем, что: - Файлы всё ещё используются (открыты каким-то процессом). Даже если файл удалён, пока он открыт, диск не освобождается. - Журналы или базы данных могут продолжать записывать в старые дескрипторы. - Посмотреть, кто использует удалённые файлы, можно с помощью lsof или fuser. Решение — перезапустить процесс, который удерживает удалённый файл. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что сейчас больше используется ингресс класс в ингрессе или указывается ингресс контроллер непосредственно в апликейшене? Сейчас стандартом является использование ingressClassName, а аннотации kubernetes.io/ingress.class считаются устаревшими (deprecated). 🚩Что лучше использовать? 🟠`ingressClassName` (новый метод, Kubernetes 1.19+) Современный, удобный, поддерживается официально Работает с IngressClass ресурсами Можно управлять через CRD (IngressClass) 🟠Аннотация `kubernetes.io/ingress.class` (старый метод, deprecated с 1.18) Все еще работает, но устарела Нельзя контролировать IngressClass через CRD 🚩Как правильно указывать `ingressClassName`? 1⃣Настраиваем IngressClass (если нужно)
yaml  
apiVersion: networking.k8s.io/v1  
kind: IngressClass  
metadata:  
  name: nginx  
spec:  
  controller: k8s.io/ingress-nginx  
2⃣Используем ingressClassName в Ingress
yaml  
apiVersion: networking.k8s.io/v1  
kind: Ingress  
metadata:  
  name: my-ingress  
spec:  
  ingressClassName: nginx  
  rules:  
  - host: example.com  
    http:  
      paths:  
      - path: /  
        pathType: Prefix  
        backend:  
          service:  
            name: my-service  
            port:  
              number: 80  
🚩Старый способ (не рекомендуется, но все еще встречается) Раньше использовали аннотацию kubernetes.io/ingress.class
yaml  
apiVersion: networking.k8s.io/v1  
kind: Ingress  
metadata:  
  name: my-ingress  
  annotations:  
    kubernetes.io/ingress.class: "nginx"  
spec:  
  rules:  
  - host: example.com  
    http:  
      paths:  
      - path: /  
        pathType: Prefix  
        backend:  
          service:  
            name: my-service  
            port:  
              number: 80
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое tfstate? tfstate — это файл состояния Terraform, который: - Хранит информацию о текущем состоянии ресурсов инфраструктуры. - Нужен для сопоставления реального состояния с конфигурацией. - Используется для определения что изменить, создать или удалить при следующем apply. Этот файл — центральный источник правды для Terraform. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Сегодня последний день! Акция на Пожизненный easyoffer PRO - по цене 1 года заканчивается сегодня. PRO подписка включает: – Д
Сегодня последний день! Акция на Пожизненный easyoffer PRO - по цене 1 года заканчивается сегодня. PRO подписка включает: – Доступ ко всем профессиям сайта без ограничений – Все текущие и новые функции, которые будут появляться на сайте 👉 Акция до 31 марта 23:59 по МСК https://easyoffer.ru/pro

🤔 Чем отличается образ от контейнера? Образ (Image) – это шаблон, из которого создаются контейнеры. Контейнер (Container) – это запущенный экземпляр образа. 🚩Что такое образ (Image)? Образ – это неизменяемый шаблон с установленным ПО Содержит все файлы, библиотеки и зависимости Может храниться в реестре (Docker Hub, GitHub Container Registry, ECR)
docker pull nginx:latest
Пример списка образов
docker images
Пример создания образа через Dockerfile
FROM ubuntu:latest
RUN apt update && apt install -y nginx
CMD ["nginx", "-g", "daemon off;"]
docker build -t my-nginx .
🚩Что такое контейнер (Container)? Контейнер – это запущенный экземпляр образа Может изменять файлы и состояние, но это не сохраняется в образе Изолирован, но использует ядро ОС хоста
docker run -d --name web -p 80:80 nginx
Пример списка контейнеров
docker ps
Пример остановки контейнера
docker stop web
Ставь 👍 и забирай 📚 Базу знаний

📘 На Stepik вышел курс — «DevOps-инженер: От основ до продакшена» Хотите автоматизировать деплой и выстраивать надёжные CI/C
📘 На Stepik вышел курс — «DevOps-инженер: От основ до продакшена» Хотите автоматизировать деплой и выстраивать надёжные CI/CD процессы? Этот курс — полный путь DevOps-инженера: от первого сервера до продакшена. • CI/CD: Jenkins, GitLab CI/CD, GitHub Actions, Blue-Green, Canary, rollback • Контейнеризация: Docker (образы, Compose, networking), безопасность контейнеров • Kubernetes: Pods, Services, Deployments, Helm • Infrastructure as Code: Terraform, Ansible, ArgoCD и Flux для GitOps • Мониторинг: Prometheus, Grafana, ELK Stack, OpenTelemetry, SLI/SLO/SLA • Продакшен практики: High Availability, Disaster Recovery, Chaos Engineering • В стоимость включено: поддержка на протяжении курса, разбор задач и вопросов, рецензирование итогового проекта и помощь в составлении резюме 🎓 Сертификат — добавьте в резюме или LinkedIn 🔥 Цена со скидкой: 9 990 ₽ → 5 990 ₽, действует ограниченное время 👉 Пройти курс на Stepik

Куда срочно перенести рабочие чаты? Битрикс24 — ваш мессенджер для работы и бизнеса. Личные и групповые чаты, видеозвонки и к
Куда срочно перенести рабочие чаты? Битрикс24 — ваш мессенджер для работы и бизнеса. Личные и групповые чаты, видеозвонки и каналы в одном сервисе. Приглашайте коллег и внешние команды. Работает как привычный мессенджер. Есть бесплатный тариф. Начните работать уже сейчас. Битрикс24 — мессенджер для вашей компании. Попробовать #реклама 16+ bitrix24.ru О рекламодателе

🤔 Шифруется ли state file? По умолчанию локальный state file не шифруется, если вы не настроили это явно. Если используется удалённое хранилище (например, S3, Azure Blob), можно настроить: - Шифрование на уровне хранилища (например, AWS KMS). - Шифрование ключей в backend конфигурации. - Использование gpg или sops для ручного шифрования, если нужно. Для чувствительных данных (например, паролей в переменных) рекомендуется использовать sensitive = true. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Завтра последний день! Успей купить пожизненный easyoffer PRO - по цене 1 года Покупаешь один раз — пользуешься всю жизнь. 👉
Завтра последний день! Успей купить пожизненный easyoffer PRO - по цене 1 года Покупаешь один раз — пользуешься всю жизнь. 👉 Акция до 31 марта: https://easyoffer.ru/pro

🤔 Какая может быть проблема если вы подключаетесь к серверу через ssh а вам приходят тикеты, что другие пользователи не могут подключиться по ssh по одной и той же учётной записи Если вы можете подключиться к серверу по SSH, но другие пользователи, использующие ту же учетную запись, не могут, возможны следующие причины: 🟠Проблема с ограничением количества подключений В файле конфигурации SSH (/etc/ssh/sshd_config) могут быть ограничения на число одновременных подключений. Открываем конфигурацию SSH
sudo nano /etc/ssh/sshd_config
Проверяем параметры
MaxSessions 1
MaxStartups 10:30:60
Решение Увеличьте MaxSessions, например:
MaxSessions 10
Перезапустите SSH:
sudo systemctl restart sshd
🟠Файл .ssh/authorized_keys имеет неверные права Если у вас ключевая авторизация, возможно, права на файлы .ssh/authorized_keys нарушены. На сервере выполните:
ls -l ~/.ssh/authorized_keys
Если права не 600, исправьте
chmod 600 ~/.ssh/authorized_keys
🟠Ограничение по IP (DenyUsers, AllowUsers, TCP Wrappers) Конфигурация SSH может блокировать подключения для определенных IP или пользователей. Откройте /etc/ssh/sshd_config и проверьте параметры
DenyUsers user1
AllowUsers admin
Проверьте /etc/hosts.deny и /etc/hosts.allow
cat /etc/hosts.deny
cat /etc/hosts.allow
🟠Закончились доступные PTY (псевдотерминалы) Если исчерпан лимит доступных PTY, новые сессии не смогут открываться. Запустите
ls /dev/pts
Если там слишком много открытых сессий, попробуйте очистить:
pkill -u user
или увеличьте лимит в /etc/security/limits.conf
* hard nproc 1024
* soft nproc 1024
Ставь 👍 и забирай 📚 Базу знаний

🤔 Чем отличается list от dict? list — это упорядоченная коллекция, доступ к элементам которой осуществляется по числовому индексу. Она используется, когда важен порядок и нужен последовательный доступ. dict — это ассоциативная коллекция, где доступ происходит по уникальному ключу. Списки удобны для хранения последовательностей данных, словари — для хранения пар "ключ:значение" и быстрого поиска по ключу. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний