24
Управление контейнерами в облаках Алексей Залесов Engineer @ Altoros 10 октября 2015 Несоразмерность задач и машин Как управлять облаком? Восемь характеристик контейнер менеджера Сравнение Cloud Foundry, Mesos и Kubernetes Демо Cloud Foundry

Управление контейнерами в облаках

Embed Size (px)

Citation preview

Page 1: Управление контейнерами в облаках

Управление контейнерами в облаках

Алексей ЗалесовEngineer @ Altoros

10 октября 2015

➔ Несоразмерность задач и машин➔ Как управлять облаком?➔ Восемь характеристик контейнер

менеджера➔ Сравнение Cloud Foundry, Mesos и

Kubernetes➔ Демо Cloud Foundry

Page 2: Управление контейнерами в облаках

Алексей Залесов

работаю Cloud Foundry Engineer @ Altoros

учился в МФТИ молекулярной биофизике

интересы• распределенные системы• DevOps практики• самоуправляемые

информационные системы 2

Page 3: Управление контейнерами в облаках
Page 4: Управление контейнерами в облаках

System Stack

Page 5: Управление контейнерами в облаках
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