2015-12-28 7 views
15

У меня есть кластер kubernetes, который я пытаюсь построить с нуля, не используя их скрипты сборки. Практически все работает, кроме автомасштабирования. По какой-то причине диспетчер-менеджер не может найти или не знает, что работает heapster.kubernetes autoscaling не работает

У меня есть билет открытым, но это не похоже, нет ответов

https://github.com/kubernetes/kubernetes/issues/18652

вещи, которые я настройки.

Вот список всех стручков в настоящее время

[[email protected] test] [dev] # kubectl get pods --all-namespaces 
NAMESPACE  NAME         READY  STATUS RESTARTS AGE 
default   my-nginx-8kmlz      1/1  Running 0   11h 
default   my-nginx-z8cxb      1/1  Running 0   11h 
kube-system  heapster-v10-vdc1v     3/3  Running 0   11h 
kube-system  kube-apiserver-10.122.0.20   1/1  Running 0   4d 
kube-system  kube-controller-manager-10.122.0.20 1/1  Running 1   9h 
kube-system  kube-dns-6iw3a      4/4  Running 0   4d 
kube-system  kube-proxy-10.122.0.20    1/1  Running 0   3d 
kube-system  kube-proxy-10.122.42.163    1/1  Running 0   4d 
kube-system  kube-proxy-10.122.43.138    1/1  Running 1   4d 
kube-system  kube-scheduler-10.122.0.20   1/1  Running 1   4d 

Так heapster это работает против моего прокси, и я могу получить доступ к

http://10.122.0.20:8080/api/v1/proxy/namespaces/kube-system/services/heapster/api/v1/model/namespaces/default/pods/my-nginx-8kmlz/stats 

возвращает статистику о стручка.

Я действительно не уверен, что мне не хватает.

Вот что выход из AutoScale выглядит

[[email protected] test] [dev] # kubectl get hpa 
NAME  REFERENCE        TARGET CURRENT  MINPODS MAXPODS AGE 
my-nginx ReplicationController/my-nginx/scale 80%  <waiting> 1   5   22h 

В мой контроллер регистрирует единственное, что я действительно вижу

W1224 18:27:43.425126  1 horizontal.go:185] Failed to reconcile my-nginx: failed to compute desired number of replicas based on CPU utilization for ReplicationController/default/my-nginx: failed to get cpu utilization: failed to get CPU consumption and request: some pods do not have request for cpu 

ответ

13

Эта ошибка может быть вызвана, если вам не хватает процессора запрос на ваши контейнеры. Вы можете подтвердить, что, выполнив следующую команду:

kubectl get dc $YOUR_DC -o yaml 

Для того, чтобы использовать автомасштабирование CPU, вам необходимо указать запрос процессора в разделе ресурсов для стручка спецификации (CPU autoscaling основан на проценте запрошенный ЦП). Например:

... 
    spec: 
     containers: 
     - image: nginx 
     name: nginx 
     resources: 
      requests: 
      cpu: 400m 
... 
+0

Спасибо, что это было .. странно мне не нужно, чтобы сделать это для kube-up.sh кластера, но это работает, так что я счастлива – Mike

+0

я ударился головой о стол на это так сложно ... волшебство SO. Если у вас есть настройка автоскалера на ресурсе без запроса процессора, почему бы Кубернете не предупредить вас об этом? Довольно плохой интерфейс, который просто терпит неудачу. – speedplane

Смежные вопросы