Docker Kubernetes
24 вопросов и ответов в разделе Docker Kubernetes.
Вопросы этого раздела
- Что такое контейнеризация и зачем она нужна?
- В чём отличие контейнера от виртуальной машины?
- Что такое Dockerfile?
- Какие основные инструкции используются в Dockerfile?
- В чём разница между CMD и ENTRYPOINT?
- Что такое multi-stage build?
- Что такое Docker Compose?
- Что такое Kubernetes и зачем он нужен?
- Что такое Pod в Kubernetes?
- Что такое Node в Kubernetes?
- Что такое Service в Kubernetes?
- Какие типы Service существуют (ClusterIP, NodePort, LoadBalancer)?
- Что такое ReplicaSet?
- Как происходит масштабирование в Kubernetes?
- Что такое HorizontalPodAutoscaler (HPA)?
- В чём разница между ConfigMap и Secret?
- Что такое liveness probe?
- Что такое Readiness Probe?
- Зачем нужны Health Checks в Kubernetes?
- Что такое Ingress в Kubernetes?
- Что такое Namespace в Kubernetes?
- Как организовать Rolling Update в Kubernetes?
- Что такое StatefulSet и когда его использовать?
- Как мониторить приложения в Kubernetes?
Навигатор по разделу
24 вопроса для подготовки к собеседованию на Middle Java Developer.
📋 Все вопросы
🗺️ Карта зависимостей тем
┌──────────────────────────────────────────┐
│ 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 routing, логическая изоляция |
| 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 experience, monitoring
- 🎯 Шпаргалка для интервью — ключевые тезисы, частые вопросы, красные флаги, связанные темы