2016-06-04 3 views
4

Я пытаюсь настроить kubernetes горизонтальный контейнер автомасштабирования. Определение моего развертывания - here.kubernetes hpa не может получить потребление процессора

Я начала развертывания heapster и heapster услуги, как показано ниже:

# kubectl run heapster --namespace=kube-system --image=gcr.io/google_containers/heapster:v1.0.2 --command -- /heapster --source=kubernetes:http://192.168.122.159:8080?inClusterConfig=false --sink=log 
# kubectl expose deployment heapster --port=80 --target-port=8082 --name=heapster --namespace=kube-system 

УПД это создать так:

# kubectl autoscale deployment nginx-rc --max=5 --cpu-percent=25 

heapster, кажется, прекрасно работать. Вот logs.

После этого hpa не получает никаких данных об использовании ЦП.

# kubectl describe hpa 
Name:    nginx-rc 
Namespace:   default 
Labels:    <none> 
Annotations:   <none> 
CreationTimestamp:  Sat, 04 Jun 2016 07:23:03 -0400 
Reference:   Deployment/nginx-rc/scale 
Target CPU utilization:  25% 
Current CPU utilization: <unset> 
Min replicas:   1 
Max replicas:   5 
Events: 
    FirstSeen LastSeen Count From    SubobjectPath Type  Reason   Message 
    --------- -------- ----- ----    ------------- -------- ------   ------- 
    9m  7s  22 {horizontal-pod-autoscaler }   Warning  FailedGetMetrics failed to get CPU consumption and request: metrics obtained for 0/1 of pods 
    9m  7s  22 {horizontal-pod-autoscaler }   Warning  FailedComputeReplicas failed to get CPU utilization: failed to get CPU consumption and request: metrics obtained for 0/1 of pods 

журналов менеджер контроллера имеет повторяющуюся строку:

Jun 04 07:21:33 master kube-controller-manager[8202]: W0604 07:21:33.079677 8202 horizontal.go:108] Failed to reconcile nginx-rc: failed to compute desired number of replicas based on CPU utilization for Deployment/default/nginx-rc: failed to get CPU utilization: failed to get CPU consumption and request: metrics obtained for 0/1 of pods 

Может кто-то указать на характер проблемы здесь?

+0

У меня такая же проблема, и я ищу решение в течение двух дней. Вы настроили DNS-сервер? – DarkSkull

+0

№. почему здесь нужен DNS-сервер? –

+0

если вы «описываете» heapster rc, вы можете увидеть, что он устанавливает http: kubernetes.default. В моем случае, там была ошибка – DarkSkull

ответ

3

Скорее всего, проблема в том, что вы не используете DNS в своем кластере.

В настоящее время HPA использует имя службы heapster для чтения показателей. Вы правильно создали его, но контроллер HPA не может разрешить имя службы на IP-адрес, поскольку в вашем кластере нет DNS.

У меня есть проблема https://github.com/kubernetes/kubernetes/issues/27044, чтобы иметь более информативные события, которые помогут пользователю/администратору лучше понять проблему.

0

Я подозреваю, что это связано с тем, что вы не используете службу хипстера. Клиент показателей для HorizontalPodAutoscaler пытается получить показатели от службы с именем heapster в пространстве имен kube-system. Вы можете посмотреть определение Heapster по умолчанию here.

Если это не проблема, найдите /var/log/kube-controller-manager на главном узле. В частности, найдите записи с failed to get pods metrics.

+0

Я написал и то, что было выше. 'kubectl expose' создает службу и конечную точку. В этом вопросе также сообщается строка журнала от диспетчера-менеджера. –