DevOps | Вопросы собесов
الذهاب إلى القناة على Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
إظهار المزيد5 544
المشتركون
-624 ساعات
+27 أيام
+3730 أيام
أرشيف المشاركات
🤔 Из чего состоит worker node?
Worker-нода содержит:
- kubelet — агент, управляющий подами.
- kube-proxy — сетевое взаимодействие и балансировка.
- container runtime — Docker, containerd, CRI-O.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Запустите рекламу в телеграм-каналах с Яндекс Директом
Перфоманс-реклама теперь в телеграм-каналах ⚡
Яндекс Директ знает, как привлечь целевую аудиторию 💰👌
Попробовать
#реклама
yandex.ru
О рекламодателе
🤔 Есть 1000 разработчиков, каждый создал по 1-2 уникальному приложению, как это все масштабировать?
Если у вас 1000 разработчиков и 2000 сервисов, то без автоматизации не обойтись.
🟠 Kubernetes для контейнеров
Организация:
Каждое приложение → отдельный Pod.
Namespaces → для команд и сред (dev, stage, prod).
Helm → для удобного управления.
Манифест деплоя
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-registry.com/my-app:v1
🟠CI/CD для автоматического деплоя
Инструменты: GitLab CI/CD, ArgoCD
stages:
- build
- deploy
build:
script:
- docker build -t my-registry.com/my-app:$CI_COMMIT_SHA .
- docker push my-registry.com/my-app:$CI_COMMIT_SHA
deploy:
script:
- kubectl set image deployment/my-app my-app=my-registry.com/my-app:$CI_COMMIT_SHA
🟠Мониторинг и логирование
Prometheus + Grafana → метрики, алерты
Loki / ELK (Elasticsearch + Kibana) → логи
Запрос ошибок API:
rate(http_requests_total{status="500"}[5m])
🟠Автоматическое масштабирование
Горизонтальный автоскейлинг (HPA)
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: my-app-hpa
spec:
minReplicas: 3
maxReplicas: 10
targetCPUUtilizationPercentage: 70
🟠Service Mesh (Istio) для управления трафиком
Разделение нагрузки между версиями:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
spec:
hosts:
- my-app.example.com
http:
- route:
- destination:
host: my-app
subset: v1
weight: 80
- destination:
host: my-app
subset: v2
weight: 20
🟠Безопасность (RBAC, Network Policies)
Ограничение доступа разработчиков:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: dev-access
subjects:
- kind: User
name: dev-user
roleRef:
kind: Role
name: read-only
apiGroup: rbac.authorization.k8s.io
Ставь 👍 и забирай 📚 Базу знанийОбучение плиточников с нуля за 30 дней с сертификатом!
Школа плиточников Keramaster — это обучение, которое сочетает теорию и практику, создавая высококлассных специалистов. Мы обучаем как новичков, так и опытных мастеров, помогая освоить новые техники укладки плитки и повысить квалификацию.
Курс разделён на 3 модуля и включает 120+ часов практики, более 80 уроков и 20+ часов видеоуроков. В конце обучения вы получаете сертификат и можете быть уверены в своих силах. Наши преподаватели — реальные мастера, востребованные на рынке.
Помощь в трудоустройство после курса поможем вам начать карьеру плиточника или расширить сферу деятельности.
Акции:
✅Скидка 10% при оплате курса целиком
✅Скидка 50% на доступ к закрытому чату мастеров
✅Рассрочка на оплату курса
Подать заявку
#реклама 16+
keramaster.pro
О рекламодателе
🤔 Какие могут быть лимиты у Nginx и со стороны чего?
1. worker_connections: количество соединений на один процесс-воркер.
2. worker_rlimit_nofile: количество открытых файлов.
3. Лимиты ОС: ulimit, параметры ядра (net.core.somaxconn, fs.file-max).
4. Аппаратные ограничения: ресурсы процессора и памяти.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что такое SLA, SLO, SLI?
Эти три термина относятся к управлению надежностью и качеством IT-сервисов. Они помогают определить, измерить и гарантировать уровень обслуживания пользователей.
🚩SLI (Service Level Indicator) – Показатель уровня сервиса
SLI – это метрика, которая показывает, насколько хорошо работает сервис.
- Доступность (например, uptime 99.9%)
- Время ответа API (например, менее 200 мс)
- Ошибки запросов (например, не более 1% 5xx ошибок)
🚩SLO (Service Level Objective) – Целевой уровень сервиса
SLO – это цель, которую компания ставит для SLI.
Доступность 99.9% сервиса в месяц.
Среднее время ответа API ≤ 200 мс.
🚩SLA (Service Level Agreement) – Соглашение об уровне сервиса
SLA – это официальное соглашение между клиентом и провайдером сервиса, которое описывает обязательства и штрафы за их невыполнение.
- Если доступность меньше 99.9%, клиент получает возврат денег.
- Если среднее время ответа API больше 500 мс, клиент получает скидку.
🚩Как они связаны?
SLI (метрика) → измеряет, насколько хорош сервис.
SLO (цель) → устанавливает, каким должен быть сервис.
SLA (договор) → фиксирует обязательства и штрафы.
Ставь 👍 и забирай 📚 Базу знаний
⚡️ Айтишник из «VISION» скупил топовые айти-курсы и выложил гигабайты материалов к себе
Каждый найдет что-то по душе:
903 ГБ — Python
812 ГБ — Frontend
978 ГБ — C, C++
804 ГБ — Java
432 ГБ — C#, GameDev
411 ГБ — SQL & БД
309 ГБ — DevOps
998 ГБ — ИБ & Хакинг
773 ГБ — Kotlin, Swift
189 ГБ — PHP
201 ГБ — GoLang
170 ГБ — Rust
167 ГБ — QA-Тестирование
310 ГБ — 1C + Лицензии
495 ГБ — Машинное обучение
704 ГБ — Аналитика Данных
991 ГБ — Дизайн
Материалы в закрепе, постоянно пополняются👆🏻
Подключите высокоскоростной интернет в офис от МегаФона
Доступ в интернет для компаний с выделенным каналом на высоких скоростях — до 10 Гбит/с
— Собственные дата-центры и оборудование ведущих мировых производителей обеспечивают бесперебойную связь
— Высокая скорость передачи данных благодаря собственной магистральной IP/MPLS-сети МегаФона. Общая пропускная способность — более 1000 Гбит/с
— Архив 180 дней (хранение записи в облаке до 180 дней)
— Постоянный безлимитный интернет в любой точке России
Перейти на сайт
#реклама
megafon.ru
О рекламодателе
🤔 Есть плейбук Ansible для одного пользователя. Как завести десятки?
- Заменить одного пользователя на список (массив).
- Пройтись по нему с помощью with_items или loop.
- Данные можно хранить в переменной или в отдельном файле YAML с массивом пользователей.
Таким образом, минимальные изменения: обобщение задачи и использование цикла.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что такое acl в linux?
ACL (Access Control List) – это механизм расширенных прав доступа в Linux, который позволяет задавать более гибкие разрешения для файлов и директорий, чем стандартные
chmod и chown.
Позволяет назначать дополнительные права для отдельных пользователей и групп
Упрощает гранулярный контроль доступа
Работает поверх стандартных прав (rwx)
🚩Проверка поддержки ACL
Убедимся, что файловая система поддерживает ACL
mount | grep acl
Если ACL не включен, монтируем с поддержкой ACL
mount -o remount,acl /home
🚩Проверка текущих ACL-прав
Команда getfacl показывает текущие ACL для файла или папки
getfacl myfile.txt
Пример вывода
# file: myfile.txt # owner: user1 # group: users user::rw- user:john:r-- group::r-- mask::r-- other::---🚩Добавление новых ACL-прав (`setfacl`) Разрешить пользователю
john запись (rw) в myfile.txt
setfacl -m u:john:rw myfile.txt
Разрешить группе developers выполнение (x)
setfacl -m g:developers:x myfile.txt
Дать всем (other) полный доступ (rwx)
setfacl -m o::rwx myfile.txt
Назначить по умолчанию права для всех новых файлов в папке project/
setfacl -d -m u:john:rwx project/
🚩Удаление ACL-прав
Удалить ACL для пользователя john
setfacl -x u:john myfile.txt
Очистить все ACL-права файла
setfacl -b myfile.txt
Ставь 👍 и забирай 📚 Базу знаний🤔 Что мы можем делать с помощью ArgoCD?
- Доставлять Kubernetes-манифесты из Git;
- Отслеживать дрифт и синхронизацию;
- Обновлять Helm-чарты;
- Делать rollback и promote версий;
- Настраивать RBAC и уведомления.
Это ключевой инструмент GitOps в Kubernetes.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Как версионируете чарты?
Helm-чарты должны быть версионированы, чтобы отслеживать изменения и управлять развертываниями.
Версии чарта (
Chart.yaml)
Версии приложения (appVersion)
Репозиторий Helm (helm repo)
Git-теги и CI/CD
🚩Версия чарта (`Chart.yaml`)
Каждый Helm-чарт содержит Chart.yaml, где указывается версия чарта.
yaml apiVersion: v2 name: my-app description: Helm chart for my application version: 1.2.3 appVersion: 2.0.1🚩Хранение и обновление чарта в репозитории Helm Helm-чарты можно хранить в локальном или удаленном репозитории.
sh helm package my-chart/Обновить индекс в репозитории
sh
helm repo index .
Добавить новый чарт в Helm-репозиторий
sh helm repo add my-repo https://charts.example.com helm push my-app-1.2.3.tgz my-repo🚩Автоматическое версионирование через Git и CI/CD Обычно чарты хранятся в Git, и версии обновляются автоматически через CI/CD. Пример автоматического увеличения версии (
version) в Chart.yaml через helm/chart-releaser-action
yaml
name: Release Helm Chart
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: 'latest'
- name: Package Helm Chart
run: helm package my-chart/
- name: Upload to Helm Repo
uses: helm/chart-releaser-action@v1
🚩Как установить конкретную версию чарта?
Чтобы развернуть определенную версию Helm-чарта, указываем --version
sh
helm install my-app my-repo/my-app --version 1.2.3
Или обновить до новой версии:
sh
helm upgrade my-app my-repo/my-app --version 1.2.4
Ставь 👍 и забирай 📚 Базу знанийИщу желающих выполнять задачи с помощью ИИ!
Работа полностью на удаленке с зп до 150 000 рублей в месяц.
Без опыта, нужен только телефон, занятость 3-6 часов в день.
Всему обучат на бесплатном курсе и после возьму на работу:
✅ 3 дня уроков по 30 минут
✅ Домашки с проверкой и оплатой бонусами
✅ Плачу 10 тыс за каждую выполненную домашку
Все кто пройдет курс, получат сертификат от школы с образовательной лицензией.
⚡ Набор заканчивается завтра.
👍 Для регистрации жмите кнопку "Зарегистрироваться":
Зарегистрироваться
#реклама 16+
ganstaagency.com
О рекламодателе
🤔 Как работает memory swap?
Параметр memory swap в Docker ограничивает общее количество памяти (оперативной + swap), которую может использовать контейнер. Если задать memory и memory-swap, то swap = memory-swap - memory. Если memory-swap равен memory, то контейнер не сможет использовать swap. Если memory-swap не задан, контейнер может использовать неограниченное количество swap.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Какие коды ответа мы получаем от веб-сервера?
Коды ответа (HTTP status codes) от веб-сервера представляют собой числовые коды, которые отправляются клиенту (обычно веб-браузеру) в ответ на его запрос. Эти коды помогают клиенту понять, что произошло с его запросом: был ли он успешен, произошла ли ошибка, требуется ли дополнительное действие и т.д.
🚩HTTP-коды ответа разделены на пять основных категорий:
🟠1xx (Информационные):
Запрос принят, продолжается обработка.
100 Continue: Сервер получил начальную часть запроса, и клиент должен продолжать.
101 Switching Protocols: Сервер принимает запрос на изменение протокола.
🟠2xx (Успех):
Запрос успешно обработан.
200 OK: Запрос успешно обработан, и сервер возвращает запрошенные данные.
201 Created: Запрос успешно выполнен, и в результате создан новый ресурс.
202 Accepted: Запрос принят для обработки, но обработка еще не завершена.
204 No Content: Запрос успешно выполнен, но сервер не возвращает никакого содержимого.
🟠3xx (Перенаправление):
Для завершения обработки запроса требуется дальнейшее действие со стороны клиента.
301 Moved Permanently: Запрашиваемый ресурс был перемещен на новый постоянный URL.
302 Found: Запрашиваемый ресурс временно доступен по другому URL.
304 Not Modified: Запрашиваемый ресурс не изменился со времени последнего доступа (кэширование).
307 Temporary Redirect: Запрашиваемый ресурс временно доступен по другому URL. Клиент должен использовать исходный метод для нового запроса.
🟠4xx (Ошибка клиента):
Ошибка в запросе клиента.
400 Bad Request: Сервер не может обработать запрос из-за неверного синтаксиса.
401 Unauthorized: Запрос требует аутентификации.
403 Forbidden: Сервер понял запрос, но отказывается его выполнять.
404 Not Found: Запрашиваемый ресурс не найден на сервере.
405 Method Not Allowed: Метод, указанный в запросе, не разрешен для запрашиваемого ресурса.
409 Conflict: Запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса.
🟠5xx (Ошибка сервера):
Ошибка на стороне сервера при попытке обработки запроса.
500 Internal Server Error: Общая ошибка сервера. Сервер не может выполнить запрос.
501 Not Implemented: Сервер не поддерживает функциональность, необходимую для выполнения запроса.
502 Bad Gateway: Сервер, действуя как шлюз или прокси, получил неверный ответ от вышестоящего сервера.
503 Service Unavailable: Сервер временно недоступен, обычно из-за перегрузки или технического обслуживания.
504 Gateway Timeout: Сервер, действуя как шлюз или прокси, не дождался ответа от вышестоящего сервера.
Ставь 👍 и забирай 📚 Базу знаний
MTC Engineer Hack — хакатон на стыке инженерии и ИТ от МТС. Реши технический кейс онлайн и получи приглашение в финал, где сможешь познакомиться с экспертами МТС и выиграть мерч.
12 победителей разделят призовой фонд в 500 000 рублей.
📎 Зарегистрироваться: ссылка
🎯 Для кого: студенты и молодые инженеры в областях DevOps, аппаратной разработки, радиоинженерии, сетевых технологий.
💻 Формат: онлайн-тур + офлайн-финал в Москве
👤 Участие: индивидуальное
Приглашаем всех, кто интересуется телеком-отраслью, хочет прокачать навыки в инженерии и попробовать себя в задачах МТС. Будет отлично, если ты владеешь одним из навыков:
→ разбираешься в сотовых сетях и оборудовании базовых станций;
→ умеешь работать с данными и статистикой;
→ знаком с LTE/NR и схемотехникой;
→ интересуешься цифровой обработкой сигналов;
→ понимаешь маршрутизацию и пишешь скрипты для сетевого оборудования.
C 3 по 5 октября пройдёт онлайн-этап: участники готовят кейс по своему профилю. 11 октября — встреча финалистов на площадке, где эксперты компании помогут разобраться в деталях и дадут советы по доработке решений.
Что тебя ждёт:
🔺 Задачи, близкие к реальной работе инженеров МТС: от проектирования до оптимизации сетей.
🔺 Возможность показать экспертам свои решения и получить обратную связь.
🔺 Практика, которая позволит почувствовать себя частью технологической команды МТС.
🔺 Офлайн-финал в Москве: живое общение, защита проектов и Tech Corner с Arduino и роботами. Билеты и проживание оплатят организаторы.
Регистрация открыта до 1 октября включительно: https://cnrlink.com/mtsengineerhackeasydev
🤔 Как различается работа Prometheus и Zabbix?
Prometheus — это pull-based система: сам забирает метрики.
Zabbix — чаще push-based, через агента.
Prometheus легче в интеграции с Kubernetes, облаками, микросервисами. Zabbix — удобен для классической инфраструктуры и Windows-машин. Prometheus масштабируется горизонтально, Zabbix — вертикально.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Чем firewall отличается от iptables?
Firewall (брандмауэр) — это общее понятие, означающее систему фильтрации сетевого трафика.
iptables — это конкретный инструмент (утилита) для управления брандмауэром в Linux.
🚩Что такое firewall?
Firewall (брандмауэр) — это система фильтрации трафика, которая пропускает или блокирует пакеты на основе правил.
Аппаратным (Cisco ASA, FortiGate, Palo Alto).
Программным (UFW, firewalld, iptables).
Облачным (AWS Security Groups, Azure Firewall).
🚩Что такое iptables?
iptables — это утилита для настройки брандмауэра в Linux.
Ключевая особенность: iptables работает на основе **таблиц и цепочек правил.
Пример команды iptables
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # Разрешить SSH (22 порт)
iptables -A INPUT -p tcp --dport 80 -j DROP # Заблокировать HTTP (80 порт)
Ставь 👍 и забирай 📚 Базу знаний🤔 Экспортеры в Prometheus?
Экспортеры — это компоненты, которые собирают метрики с внешних систем и преобразуют их в формат, совместимый с Prometheus. Например, node_exporter для метрик узлов, blackbox_exporter для проверки доступности сервисов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что сейчас больше используется ингресс класс в ингрессе или указывается ингресс контроллер непосредственно в апликейшене?
Сейчас стандартом является использование
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-nginx2⃣Используем
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
Ставь 👍 и забирай 📚 Базу знаний