17 лютого 2026 · 9 хв читання

DevOps співбесіда: Docker, K8s, AWS — що питають у 2026

Розбираємо найпопулярніші питання на DevOps-співбесідах: контейнеризація, оркестрація, хмарні сервіси, CI/CD, моніторинг та безпека. ~20 питань з детальними відповідями українською.

🐳 Docker (контейнеризація)

1. Чим Docker-контейнер відрізняється від віртуальної машини?

Контейнер використовує ядро хост-системи і ізолює процеси через namespaces та cgroups. VM запускає повну гостьову ОС з власним ядром через гіпервізор. Контейнери легші (МБ замість ГБ), стартують за секунди і споживають менше ресурсів. VM забезпечують сильнішу ізоляцію — тому для multi-tenant середовищ іноді обирають саме їх.

💡 Порада: згадайте namespaces (PID, NET, MNT) та cgroups — це покаже глибину знань.

2. Як оптимізувати розмір Docker-образу?

Використовуйте multi-stage builds: у першому етапі компілюєте, у фінальному — тільки runtime та артефакт. Обирайте мінімальні базові образи (Alpine, distroless). Об'єднуйте RUN-команди щоб зменшити кількість шарів. Додавайте .dockerignore щоб не копіювати node_modules, .git тощо. Різниця може бути 10x — образ з 1.2 ГБ стискається до 80-120 МБ.

3. Що таке Docker-мережі і які типи існують?

bridge — дефолтна мережа, контейнери на одному хості спілкуються між собою. host — контейнер використовує мережу хоста напряму (без NAT, максимальна продуктивність). overlay — для Swarm/multi-host, контейнери на різних нодах бачать один одного. none — повна ізоляція. У Kubernetes зазвичай мережу забезпечує CNI-плагін (Calico, Flannel, Cilium).

☸️ Kubernetes (оркестрація)

4. Поясніть архітектуру Kubernetes-кластера.

Control Plane: API Server (вхідна точка для всіх операцій), etcd (розподілене key-value сховище стану), Scheduler (розподіляє поди по нодах), Controller Manager (слідкує за desired state). Worker Nodes: kubelet (агент, запускає контейнери), kube-proxy (мережеві правила, iptables/IPVS), Container Runtime (containerd/CRI-O). Вся взаємодія — через API Server, декларативно.

5. Різниця між Deployment, StatefulSet та DaemonSet?

Deployment — для stateless-сервісів, поди взаємозамінні, rolling update з нульовим даунтаймом. StatefulSet — для stateful (бази даних, Kafka): стабільні імена (pod-0, pod-1), Persistent Volumes прив'язані до конкретних подів, порядковий запуск. DaemonSet — по одному поду на кожну ноду (агенти моніторингу, log collectors, CNI-плагіни).

6. Як працюють Liveness, Readiness та Startup Probes?

Liveness — перевіряє чи процес живий; якщо ні — kubelet перезапускає контейнер. Readiness — визначає чи под готовий приймати трафік; поки не пройде — Service не направляє запити. Startup — для повільних додатків, поки не пройде — інші проби не запускаються. Типи: HTTP GET, TCP Socket, exec command. Завжди встановлюйте initialDelaySeconds щоб дати додатку стартувати.

☁️ AWS/Cloud (хмарні сервіси)

7. Як працює мережа у AWS VPC?

VPC — ізольована віртуальна мережа з власним CIDR-блоком. Всередині — підмережі (public з Internet Gateway, private з NAT Gateway). Route Tables визначають маршрутизацію, Security Groups (stateful firewall на рівні інстансу) та NACLs (stateless на рівні підмережі) контролюють доступ. Для з'єднання VPC між собою — VPC Peering або Transit Gateway.

8. Коли обирати ECS vs EKS?

ECS — рідний AWS-сервіс для контейнерів, простіший у налаштуванні, тісно інтегрований з IAM, ALB, CloudWatch. Підходить, коли вся інфраструктура в AWS і не потрібна портабельність. EKS — managed Kubernetes, обирають коли потрібна сумісність з K8s-екосистемою, multi-cloud стратегія або вже є K8s-експертиза. EKS дорожчий ($0.10/год за control plane), але гнучкіший.

9. Що таке IAM Roles та як працює least privilege?

IAM Role — набір permissions без постійних credentials; сервіси/поди «assume» роль і отримують тимчасові токени через STS. Least privilege: починайте з нуля прав і додавайте тільки необхідні. Використовуйте IAM Access Analyzer для аудиту. Для EKS — IRSA (IAM Roles for Service Accounts), щоб кожен мікросервіс мав свою роль, а не shared node role.

🔄 CI/CD (автоматизація)

10. Чим відрізняється Continuous Integration від Continuous Deployment?

CI — автоматична збірка + тести при кожному коміті/PR. Мета: рано виявити баги, тримати main branch стабільним. CD (Delivery) — артефакт автоматично готовий до деплою, але реліз потребує ручного підтвердження. CD (Deployment) — повна автоматизація до продакшену. Більшість команд працюють з Delivery, а повний Deployment вимагає зрілих тестів та feature flags.

11. Як реалізувати blue/green та canary deployments?

Blue/Green: дві ідентичні середовища; нова версія деплоїться в «green», після перевірки трафік перемикається. Відкат миттєвий — повертаємо трафік на «blue». Canary: нова версія отримує 5-10% трафіку, моніторимо метрики (error rate, latency), поступово збільшуємо до 100%. У K8s: Argo Rollouts або Istio/Linkerd для traffic splitting.

12. Як безпечно зберігати секрети в CI/CD?

Ніколи не хардкодьте в код або Dockerfile. Використовуйте: Vault (HashiCorp) для централізованого управління, AWS Secrets Manager / Parameter Store, GitHub Actions Secrets (encrypted at rest). У K8s — External Secrets Operator синхронізує з Vault/AWS. Ротація секретів — автоматична. Аудит доступу — обов'язковий.

🐧 Linux та мережі

13. Як діагностувати високий load average на сервері?

Load average показує кількість процесів у чергах run + wait. Кроки: top/htop — хто їсть CPU; iostat — disk I/O bottleneck; vmstat — swap, context switches; dmesg — OOM killer. Якщо load > кількість CPU-ядер — система перевантажена. Часті причини: IO-wait (повільний диск), runaway процес, memory pressure → swapping.

14. Поясніть різницю між TCP та UDP.

TCP — connection-oriented, гарантує доставку (ACK, retransmission), порядок пакетів, flow/congestion control. Використовується для HTTP, SSH, DB connections. UDP — connectionless, не гарантує доставку, але швидший і з меншим overhead. Для DNS, VoIP, відео-стрімінгу, ігор. У DevOps-контексті: health checks зазвичай TCP, а DNS-резолвінг — UDP (port 53).

15. Як працюють file permissions у Linux?

Три рівні: owner, group, others. Три типи: read (4), write (2), execute (1). chmod 755 = rwxr-xr-x. Спеціальні біти: SUID (виконується з правами власника), SGID (наслідує групу директорії), Sticky bit (тільки власник видаляє файли, як /tmp). Для DevOps критично: Docker-контейнери не повинні працювати від root — використовуйте USER в Dockerfile.

📊 Моніторинг та логування

16. Як побудувати стек моніторингу для K8s?

Стандартний стек: Prometheus (збір метрик, PromQL) + Grafana (візуалізація, дашборди) + Alertmanager (алерти в Slack/PagerDuty). Для логів: Loki або EFK-стек (Elasticsearch + Fluentd + Kibana). Для трейсингу: Jaeger або Tempo. OpenTelemetry — єдиний стандарт для метрик, логів і трейсів. Встановлюйте через kube-prometheus-stack Helm chart.

17. Які ключові метрики SRE повинен моніторити?

Google SRE «чотири золотих сигнали»: Latency (час відповіді, p50/p95/p99), Traffic (RPS, QPS), Errors (5xx rate, failed requests), Saturation (CPU, RAM, disk, connections). Додатково: SLI/SLO/SLA — наприклад, SLO: 99.9% запитів < 200ms. Error budget = 100% - SLO — коли вичерпаний, зупиняємо релізи і фіксимо надійність.

18. Як правильно організувати логування?

Логи мають бути структурованими (JSON), з полями: timestamp, level, service, trace_id, message. Рівні: DEBUG, INFO, WARN, ERROR. У K8s контейнери пишуть в stdout/stderr, а Fluentd/Fluent Bit збирає і відправляє в Loki/Elasticsearch. Retention policy: гарячі дані 7-30 днів, архів у S3. Не логуйте PII та секрети — це compliance-ризик (GDPR).

🔒 Безпека (DevSecOps)

19. Як забезпечити безпеку Docker-образів?

Скануйте образи на вразливості: Trivy, Snyk, Grype — інтегруйте в CI pipeline. Використовуйте мінімальні базові образи (distroless, Alpine). Не запускайте контейнери від root — додайте USER nonroot. Підписуйте образи через Cosign/Sigstore. Встановіть Pod Security Standards (restricted) у K8s. Регулярно оновлюйте базові образи — автоматизуйте через Renovate/Dependabot.

20. Що таке Network Policies у Kubernetes?

Network Policies — L3/L4 firewall-правила для подів. За замовчуванням у K8s весь трафік дозволений (flat network). Network Policy обмежує ingress/egress на основі labels, namespaces, IP-блоків. Приклад: дозволити трафік до бази даних тільки з backend-подів. Потрібен CNI з підтримкою (Calico, Cilium). Best practice: default-deny all, потім відкривайте тільки необхідне.

Готовий до DevOps-співбесіди?

Наш Telegram-бот симулює реальні технічні співбесіди з адаптивною складністю. Docker, Kubernetes, AWS, CI/CD — всі теми. Миттєвий фідбек та детальний звіт.

🚀 Почати тренування

Безкоштовно · 5 інтерв'ю без оплати