Page 1
Управление контейнерами в облаках
Алексей ЗалесовEngineer @ Altoros
10 октября 2015
➔ Несоразмерность задач и машин➔ Как управлять облаком?➔ Восемь характеристик контейнер
менеджера➔ Сравнение Cloud Foundry, Mesos и
Kubernetes➔ Демо Cloud Foundry
Page 2
Алексей Залесов
работаю Cloud Foundry Engineer @ Altoros
учился в МФТИ молекулярной биофизике
интересы• распределенные системы• DevOps практики• самоуправляемые
информационные системы 2
Page 6
Что такое PaaS?
➔ Container Orchestration
➔ Resource Scheduling
➔ App Packaging
➔ Routing
➔ Logging
➔ Service Integration
➔ User Management
Page 7
Что такое PaaS?
➔ Container Orchestration
➔ Resource Scheduling
➔ App Packaging
➔ Routing
➔ Logging
➔ Service Integration
➔ User Management
Page 8
8
Несоразмерность задачи и сервера
Page 9
9
Задачи: однократные и непрерывные
Page 10
10
Автоматическая балансировка нагрузки
Page 11
11
Перезапуск контейнера при сбое
Page 12
12
Эвакуация контейнеров при отказе сервера
Page 13
Восемь характеристик менеджера контейнеров
маркировка контеинеров
кэширование артефактов
пространства имен приложении
откат установки
Blue-Green Deployment
Rolling Deployment
проверка состояния
контеинера
ограничения по размещению
Page 14
1. Container LabellingХарактеристики
Что это такое? ❏ Связать текстовые метки с контейнером и использовать их при выполнении операций.
Примеры использования
❏ Перезагрузить все контейнеры помеченные как “frontend”
❏ Остановить все контейнеры “QA”
Степень поддержки
Cloud Foundry - noneMesos - fullKubernetes - full
Page 15
2. Artifact Caching
Что это такое? ❏ Быстрое создание одинаковых контейнеров из образа в репозитории
❏ Образ загружается лишь один раз
Примеры использования
❏ Создать 100 одинаковых контейнеров из образа в репозитории
Степень поддержки
Cloud Foundry - partialMesos - fullKubernetes - none
Характеристики
Page 16
3. Application Namespaces
Что это такое? ❏ Допустимо использовать одинаковые имена приложений в разных пространствах
Примеры использования
❏ Отсутствие конфликтов имен между командами
Степень поддержки
Cloud Foundry - fullMesos - noneKubernetes - full
Характеристики
Page 17
4. Deployment RollbacksХарактеристики
Что это такое? ❏ Размещение предыдущей версии контейнера при сбое текущей
Примеры использования
❏ Rollback на версию X
Степень поддержки
Cloud Foundry - noneMesos - noneKubernetes - full
Page 18
5. Blue-Green DeploymentsЧто это такое? ❏ Обновления без остановки сервиса
Примеры использования
❏ У вас есть две копии контейнера - blue и green.❏ Вы обновляете blue. Трафик клиентов обслуживается
только green❏ Если blue работает корректно, трафик клиентов
переключается на него❏ Вы обновляете green
Степень поддержки
Cloud Foundry - fullMesos - fullKubernetes - none
Характеристики
Page 19
6. Rolling Deployment
Что это такое? ❏ Поэтапное обновление контейнеров
Примеры использования
❏ Обновить несколько контейнеров ❏ Если успешно, то обновить остальные ❏ Иначе - прекратить обновление
Степень поддержки
Cloud Foundry - noneMesos - noneKubernetes - full
Характеристики
Page 20
7. Health Check
Что это такое? ❏ Способ проверки состояния контейнеров
Примеры использования
❏ TCP порт открыт?❏ HTTP запрос возвращает код 200?❏ Скрипт отрабатывает с кодом 0?❏ Ссылка обновлялась не более 1 мин назад?
Степень поддержки
Cloud Foundry - partialMesos - partialKubernetes - partial
Характеристики
Page 21
8. Placement Constraints
Что это такое? ❏ Указать физический сервер, который будет запускать контейнеры
Примеры использования
❏ Запустить контейнеры ‘compute’ на серверах с GPU.
❏ Запускать все контейнеры ‘payment processing’ в rack2.
Степень поддержки
Cloud Foundry - noneMesos - fullKubernetes - partial
Характеристики
Page 22
Container Labeling none full full
Artifact Caching partial full none
Application Namespaces full none full
Deployment Rollbacks none none full
Blue-Green Deployments full full none
Rolling Deployment none none full
Health Check partial partial partial
Placement Constraints none full partial
Характеристики
Page 23
ДемоУправление контейнерами в Cloud Foundry
23
Page 24
Вопросы?
Алексей Залесов[email protected]
@azalesovaleksey_zalesov