Standalone Containers
Концепція: Окремий контейнер працює незалежно без оркестрації. Він самодостатній з додатком, залежностями та середовищем виконання, але не має автоматизації для масштабування та керування.
Приклад із реального світу:
Запуск Docker контейнера на ноутбуці розробника:
Це запускає NGINX веб-сервер як окремий контейнер.
Підсумкові поради:
- Окремі контейнери найкраще підходять для простого, локального розроблення.
- Вони не мають вбудованих функцій масштабування, моніторингу та автоматичного перезапуску.
- Використовуйте Docker або Podman для запуску окремих контейнерів.
Workload Orchestration
Концепція: Оркестрація автоматизує розгортання, масштабування та керування кількома контейнерами на серверах.
Приклад із реального світу:
Використання Kubernetes (K8s) для управління веб-застосунком з кількома екземплярами (Pods).
Kubernetes управляє:
- Балансуванням навантаження
- Автоматичним масштабуванням
- Самовідновленням (перезапускає неуспішні контейнери)
- Кроковими оновленнями
Підсумкові поради:
- Kubernetes, Docker Swarm і OpenShift — це популярні оркестратори.
- Оркестрація є необхідною для високої доступності та стійкості до відмов.
- Ознайомтесь з концепціями Kubernetes, такими як Pods, Deployments і Nodes.
Networking in Containers
Port Mapping
Концепція: Контейнери мають свою внутрішню мережу. Портове відображення відкриває внутрішній порт контейнера для хостової системи.
Приклад із реального світу:
Веб-сервер (Apache), що працює в контейнері на порту 80, відображений на порт
8080 на хості:
Тепер, доступ до http://localhost:8080
звертається до веб-сервера всередині контейнера.
Підсумкові поради:
- Використовуйте
-p :
в Docker. - Kubernetes використовує сервіси ClusterIP, NodePort і LoadBalancer для мережевих з'єднань.
- Портове відображення необхідне для зовнішнього доступу до контейнеризованих додатків.
Storage Types
Persistent Volumes
Концепція: Дані зберігаються поза контейнером і залишаються після того, як контейнер буде видалено.
Приклад із реального світу:
Контейнер бази даних (MySQL) зберігає дані в монтуваному томі, тому дані зберігаються навіть після зупинки контейнера.
Підсумкові поради:
- Використовується для баз даних, логів і довгострокового зберігання.
- Керуються в Kubernetes через Persistent Volume Claims (PVCs).
- Варіанти зберігання: AWS EBS, Azure Disks, NFS, Ceph тощо.
Ephemeral Storage
Концепція: Тимчасове зберігання, яке зникає, коли контейнер зупиняється.
Приклад із реального світу:
Контейнер, що виконує API-сервіс, зберігає тимчасові логи в /tmp
, але логи зникають, коли контейнер видаляється.
Підсумкові поради:
- Найкраще для кешування, зберігання сесій і логів.
- Уникайте використання тимчасового зберігання для критичних даних.
- EmptyDir томи в Kubernetes надають тимчасове зберігання.
Image Registries
Концепція: Репозиторій для зберігання і розповсюдження контейнерних образів.
Приклад із реального світу:
Розробники завантажують і тягнуть образи з Docker Hub або Amazon Elastic Container Registry (ECR):
Підсумкові поради:
- Публічні реєстри: Docker Hub, Quay.io.
- Приватні реєстри: AWS ECR, Google Container Registry (GCR), Harbor.
- Краща практика: Підписуйте образи, використовуйте контроль доступу та скануйте на вразливості.
Final Exam Tips Recap
✔ Standalone containers = добре для локальних тестів, але не масштабуються.
✔ Orchestration (K8s, Docker Swarm) = автоматизує масштабування та керування.
✔ Port mapping відкриває порти контейнерів для хоста (-p host:container
).
✔ Persistent Volumes зберігають дані довготривало; Ephemeral Storage тимчасове.
✔ Image registries зберігають і розповсюджують контейнерні образи безпечно.
Перекладено з: CompTIA Cloud+ (CV0–004) : Cloud Architecture — Part 6