2015-02-26 2 views
3

Можно ли автомасштабировать контейнеры докеров, которые содержат серверы приложений (например, wildfly/tomcat/jetty /) внутри кубернетов? Например, при cpu & использование ram или на основе HTTP-запросов? Если есть встроенная функция для того, что я не могу ее найти, или можно написать что-то вроде скрипта конфигурации для этого? Если да, то откуда эта магия?Kubernetes Autoscaling Containers

ответ

3

Автомасштабирование контейнеров еще не поддерживается и не является частью ближайшего срока 1.0 roadmap для Kubernetes (что означает, что основная команда не собирается добавлять его в ближайшее время, но внешние взносы, безусловно, приветствуются).

+1

Как следовать дальше, если вы в состоянии обнаружить ситуацию, в которой вам нужно масштабирование (например, ваш пример о CPU/использование RAM), это тривиально, чтобы выполнить команду в масштабе. kubectl resize rc <имя_контейнера> --replicas = aronchick

1

Поскольку автосканирование Kubernetes 1.2 является частью стабильного API. Это делается на основе использования ЦП или на основе показателей, предоставляемых самим контейнером.

Он может быть использован для развертывания или контроллеров репликации, как это:

# Auto scale a deployment "foo", with the number of pods between 2 and 10, target CPU utilization specified so a default autoscaling policy will be used: 
kubectl autoscale deployment foo --min=2 --max=10 

# Auto scale a replication controller "foo", with the number of pods between 1 and 5, target CPU utilization at 80%: 
kubectl autoscale rc foo --max=5 --cpu-percent=80 

Более подробную информацию можно найти в официальной документации в описании Horizontal scaling, в документации kubectl autoscale и в official blog.

2

Вы можете использовать автомасштабирование горизонтального прямоугольника в кубернетах 1.3 и далее. Блог kubernetes содержит подробную информацию о функциональности.

http://blog.kubernetes.io/2016/07/autoscaling-in-kubernetes.html

но выше статье в основном сосредоточены на GKE. поэтому ниже будет более информативным.

https://kubernetes.io/docs/user-guide/horizontal-pod-autoscaling/

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

kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags] 

Примеры

# Auto scale a deployment "foo", with the number of pods between 2 and 10, target CPU utilization specified so a default autoscaling policy will be used: 
    kubectl autoscale deployment foo --min=2 --max=10 

    # Auto scale a replication controller "foo", with the number of pods between 1 and 5, target CPU utilization at 80%: 
    kubectl autoscale rc foo --max=5 --cpu-percent=80