Розділ 14 · 24 питань

Docker Kubernetes

24 питань і відповідей у розділі Docker Kubernetes.

Ukrainian Docker Kubernetes Вихідний Markdown
Мовні версії: English Russian Ukrainian

Питання цього розділу

  1. Що таке контейнеризація і навіщо вона потрібна?
  2. В чому відмінність контейнера від віртуальної машини?
  3. Що таке Dockerfile?
  4. Які основні інструкції використовуються в Dockerfile?
  5. В чому різниця між CMD та ENTRYPOINT?
  6. Що таке multi-stage build?
  7. Що таке Docker Compose?
  8. Що таке Kubernetes і навіщо він потрібен?
  9. Що таке Pod в Kubernetes?
  10. Що таке Node в Kubernetes?
  11. Що таке Service в Kubernetes?
  12. Які типи Service існують (ClusterIP, NodePort, LoadBalancer)?
  13. Що таке ReplicaSet?
  14. Як відбувається масштабування в Kubernetes?
  15. Що таке HorizontalPodAutoscaler (HPA)?
  16. В чому різниця між ConfigMap та Secret?
  17. Що таке liveness probe?
  18. Що таке Readiness Probe?
  19. Навіщо потрібні Health Checks в Kubernetes?
  20. Що таке Ingress в Kubernetes?
  21. Що таке Namespace в Kubernetes?
  22. Як організувати Rolling Update в Kubernetes?
  23. Що таке StatefulSet і коли його використовувати?
  24. Як моніторити додатки в Kubernetes?

Навігатор по розділу

24 питання для підготовки до співбесіди на Middle Java Developer.


📋 Усі питання

# Питання Рівень складності
1 Що таке контейнеризація і навіщо вона потрібна
2 В чому відмінність контейнера від віртуальної машини
3 Що таке Dockerfile
4 Які основні інструкції використовуються в Dockerfile ⭐⭐
5 В чому різниця між CMD та ENTRYPOINT ⭐⭐
6 Що таке multi-stage build ⭐⭐
7 Що таке Docker Compose
8 Що таке Kubernetes і навіщо він потрібен ⭐⭐
9 Що таке Pod в Kubernetes ⭐⭐
10 Що таке Node в Kubernetes ⭐⭐
11 Що таке Service в Kubernetes ⭐⭐
12 Які типи Service існують ⭐⭐
13 Що таке ReplicaSet ⭐⭐
14 Як відбувається масштабування в Kubernetes ⭐⭐
15 Що таке HorizontalPodAutoscaler ⭐⭐⭐
16 В чому різниця між ConfigMap та Secret
17 Що таке liveness probe ⭐⭐
18 Що таке readiness probe ⭐⭐
19 Навіщо потрібні health checks ⭐⭐
20 Що таке Ingress в Kubernetes ⭐⭐
21 Що таке namespace
22 Як організувати rolling update в Kubernetes ⭐⭐
23 Що таке StatefulSet і коли його використовувати ⭐⭐⭐
24 Як моніторити додатки в Kubernetes ⭐⭐

🗺️ Карта залежностей тем

                    ┌──────────────────────────────────────────┐
                    │   DOCKER ОСНОВИ (1-7)                    │
                    │   1. Контейнеризація                     │
                    │   2. Контейнер vs ВМ                     │
                    │   3. Dockerfile                          │
                    │   4. Інструкції Dockerfile               │
                    │   5. CMD vs ENTRYPOINT                   │
                    │   6. Multi-stage build                   │
                    │   7. Docker Compose                      │
                    └──────────────────┬───────────────────────┘
                                       │
            ┌──────────────────────────┼──────────────────────────┐
            ▼                          ▼                          ▼
    ┌───────────────┐        ┌───────────────┐        ┌────────────────────┐
    │ K8s ОСНОВИ     │        │ K8s МЕРЕЖА     │        │ K8s МАСШТАБУВАННЯ  │
    │ (8-13)         │        │ (11-12, 20)    │        │ (14-15, 22)        │
    │ 8. K8s огляд   │        │ 11. Service    │        │ 14. Масштабув.     │
    │ 9. Pod         │        │ 12. Типи Svc   │        │ 15. HPA            │
    │ 10. Node       │        │ 20. Ingress    │        │ 22. Rolling update │
    │ 13. ReplicaSet │        │                │        │                    │
    └───────┬───────┘        └───────┬───────┘        └────────┬───────────┘
            │                        │                        │
            └────────────────────────┼────────────────────────┘
                                     ▼
                    ┌──────────────────────────────────────────┐
                    │   K8s КОНФІГ І ЗДОРОВ'Я (16-21)          │
                    │   16. ConfigMap vs Secret                │
                    │   17. Liveness probe                     │
                    │   18. Readiness probe                    │
                    │   19. Health checks                      │
                    │   21. Namespace                          │
                    └──────────────────────────────────────────┘
                                     │
                                     ▼
                    ┌──────────────────────────────────────────┐
                    │   STATEFUL І МОНІТОРИНГ (23-24)          │
                    │   23. StatefulSet                        │
                    │   24. Моніторинг                         │
                    └──────────────────────────────────────────┘

🎯 Рекомендований порядок вивчення

🟢 Рівень Junior (тижні 1-2)

Крок Тема Файли Мета
1 Docker база Q1, Q2, Q3 Контейнер vs ВМ, Dockerfile
2 Dockerfile інструкції Q4, Q5 RUN/COPY/ADD, CMD vs ENTRYPOINT
3 Multi-stage і Compose Q6, Q7 Маленькі образи, багатоконтейнерна розробка
4 K8s база Q8, Q9, Q10 Оркестратор, Pod, Node
5 Service і Config Q11, Q16 Стабільна адреса, ConfigMap vs Secret

🟡 Рівень Middle (тижні 3-4)

Крок Тема Файли Мета
1 Service types Q12 ClusterIP, NodePort, LoadBalancer
2 ReplicaSet і Deployment Q13 Desired state, self-healing
3 Health checks Q17, Q18, Q19 Liveness, readiness, startup
4 Ingress і Namespace Q20, Q21 L7 маршрутизація, логічна ізоляція
5 Rolling update Q22 Zero-downtime deploy

🔴 Рівень Senior (тижні 5-6)

Крок Тема Файли Мета
1 HPA deep dive Q15 Formula, stabilizationWindow, custom metrics
2 StatefulSet Q23 Stable identity, ordered updates, headless service
3 Monitoring Q24 Prometheus, Grafana, ELK, distributed tracing
4 Scaling strategies Q14, Q15, Q22 HPA + VPA + Cluster Autoscaler

🔗 Ключові зв’язки між темами

Тема: Docker

Q1 (Контейнеризація) → Q2 (Контейнер vs ВМ) → Q3 (Dockerfile)
     ↓
Q4 (Інструкції) → Q5 (CMD vs ENTRYPOINT) → Q6 (Multi-stage) → Q7 (Compose)

Тема: K8s Основи

Q8 (K8s огляд) → Q9 (Pod) → Q10 (Node) → Q13 (ReplicaSet)

Ключові зв’язки:

  • Q9 ↔ Q13: Pod’и керуються через ReplicaSet (який створюється Deployment)
  • Q10 ↔ Q9: Node — сервер, на якому запускаються Pod’и

Тема: Мережа

Q11 (Service) → Q12 (Типи Service) → Q20 (Ingress)

Ключові зв’язки:

  • Q11 ↔ Q12: Service — абстракція, типи — конкретні реалізації
  • Q12 ↔ Q20: LoadBalancer (L4) vs Ingress (L7) — різні рівні

Тема: Конфігурація і здоров’я

Q16 (ConfigMap/Secret) → Q17 (Liveness) → Q18 (Readiness) → Q19 (Health checks)

Тема: Масштабування

Q14 (Масштабування) → Q15 (HPA) → Q22 (Rolling update)

🎓 Шпаргалка: що знати для кожного рівня

🟢 Junior

  • Контейнер = процес Linux, ВМ = повноцінна ОС
  • Dockerfile: FROM, RUN, COPY, CMD, ENTRYPOINT
  • CMD можна перевизначити при запуску, ENTRYPOINT — ні (але можна додати аргументи)
  • Pod = мінімальна одиниця в K8s, зазвичай 1 контейнер
  • Service = стабільна адреса для групи Pod’ів
  • ConfigMap = конфіги, Secret = секрети (base64, НЕ шифрування!)

🟡 Middle

  • Multi-stage build: тільки останній FROM у фінальному образі
  • ReplicaSet створюється Deployment’ом, напряму не використовується
  • Liveness probe → перезапуск, Readiness probe → прибрати з балансування
  • ClusterIP (внутрішній), NodePort (порт на Node), LoadBalancer (хмарний LB)
  • Ingress = L7 маршрутизатор, потребує Ingress Controller
  • Rolling update: maxUnavailable + maxSurge контролюють процес

🔴 Senior

  • HPA formula: desiredReplicas = ceil(current * (currentMetric / desiredMetric))
  • stabilizationWindow запобігає flapping
  • StatefulSet: stable identity (web-0, web-1), ordered updates, headless service
  • Secrets в etcd без EncryptionConfiguration = відкритий текст
  • Prometheus: pull-model, local storage 15-30 днів, Thanos для long-term
  • Gateway API (GA v1.28) поступово замінює Ingress

📝 Формат кожного файлу

Кожен файл містить:

  • 🟢 Junior Level — базове розуміння, прості аналогії, приклади
  • 🟡 Middle Level — нутрощі, типові помилки, практичні приклади
  • 🔴 Senior Level — deep dive, edge cases, production досвід, моніторинг
  • 🎯 Шпаргалка для інтерв’ю — ключові тези, часті питання, червоні прапорці, пов’язані теми