Управление контейнерами Docker в низком масштабе - PullRequest
1 голос
/ 25 сентября 2019

Я развернул 5 приложений, используя экземпляры контейнеров Azure, они работают нормально, проблема в том, что в настоящее время все контейнеры работают все время, что обходится дорого.

То, что я хочу сделать, - это запускать / останавливать экземпляры при необходимости, используя для этого мастер-контейнер или виртуальную машину, которая будет работать все время.

EG

Этот мастерСлужба получает запрос на ускорение услуги № 3 на 2 часа, затем выключает его, и все остальные контейнеры будут отключены, пока они не получат аналогичный запрос.

В моем случае каждая услуга будет использоваться менее 5 часов в день большую часть времени.

Теперь я знаю, что Kubernetes - это механизм, созданный для управления контейнерами, но все примеры, которые я нашел, относятся к высокопроизводительным сервисам, а не к 5 сервисам с одним контейнером в каждом, также не уверен, что Kubernetes позволяет иметь всеКонтейнеры выключены большую часть времени.

Я думал о том, чтобы справиться со всеми этими API-интерфейсами, но я не ищу ни одного сервиса в Azure, который бы позволял что-то похожее на это, я нашел только варианты создания новых контейнеров, а не вращенияи закрой их.

РЕДАКТИРОВАТЬ:

Кроме того, эти приложения запускают процесс, который слишком тяжел, чтобы иметь их на безсерверной платформе.

1 Ответ

1 голос
/ 26 сентября 2019

Решение состоит в том, чтобы определить горизонтальное автоматическое масштабирование модуля для вашего развертывания.

Горизонтальное автоматическое масштабирование модуля автоматически масштабирует количество модулей в контроллере репликации, развертывании или наборе реплик на основе наблюдаемого использования ЦП (или с помощью пользовательских метрик).поддержка, по некоторым другим метрикам, предоставляемым приложением).Обратите внимание, что горизонтальное автоматическое масштабирование модуля не применяется к объектам, которые невозможно масштабировать, например, DaemonSets.

Горизонтальное автоматическое масштабирование модуля реализовано как ресурс API Kubernetes и контроллер.Ресурс определяет поведение контроллера.Контроллер периодически регулирует количество реплик в контроллере или развертывании репликации, чтобы сопоставить наблюдаемое среднее использование ЦП с целью, указанной пользователем.

Файл конфигурации должен выглядеть следующим образом:

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
 name: hpa-images-service
spec:
 scaleTargetRef:
   apiVersion: apps/v1beta1
   kind: Deployment
   name: example-deployment
 minReplicas: 2
 maxReplicas: 100
 targetCPUUtilizationPercentage: 75

scaleRef должен ссылаться на ваше определение развертывания и minReplicas, которые вы можете установить на 0, значение targetCPUUtilization, которое вы можете установить в соответствии со своими предпочтениями. Такой подход должен помочь вам сэкономить деньги за счет модуля завершения, который имеет высокую загрузку ЦП.

Официальная документация Kubernetes: kubernetes-hpa .

Документация автоскалера GKE: gke-autoscaler .

Полезный блог об экономии средств с помощью GCP: kubernetes-Google облако .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...