Автоматическая очистка кубернетов не работает

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

У меня открыт билет, но ответов нет

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

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

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

Он возвращает статистику о контейнере.

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

Вот как выглядит вывод автомасштаба:

[[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

Ответ 1

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

kubectl get dc $YOUR_DC -o yaml

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

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