Получить метрики от модуля с докером для Mac - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь использовать Horizontal Pod Autosclaer для nginx pod.

Когда я описываю свой hpa, у меня появляется это сообщение horizontal-pod-autoscaler failed to get cpu utilization: unable to get metrics for resource cpu: unable to fetch metrics from resource metrics API: the server could not find the requested resource

Я использую Docker для Mac . Я не знаю, может ли это оказать влияние

Мое развертывание

apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-app
spec:
 selector:
   matchLabels:
     run: demo-app
 replicas: 1
 template:
   metadata:
     labels:
       run: demo-app
   spec:
  containers:
    - name: demo-app
      image: my-demo-app:v3
      imagePullPolicy: Never
      resources:
        requests:
          cpu: 250m
        limits:
          cpu: 300m
      ports:
        - containerPort: 80

Мой HPA

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
 name: demo-app-hpa
 namespace: default
spec:
 scaleTargetRef:
   apiVersion: apps/v1
   kind: Deployment
   name: demo-app
 minReplicas: 1
 maxReplicas: 3
 targetCPUUtilizationPercentage: 3

Вывод kubectl get hpa команда:

NAME           REFERENCE             TARGETS        MINPODS   MAXPODS   REPLICAS   AGE
demo-app-hpa   Deployment/demo-app   <unknown>/3%   1         3         1          20m

Вывод kubectl get --raw /apis/metrics.k8s.io/v1beta1 команды

{"kind":"APIResourceList","apiVersion":"v1","groupVersion":"metrics.k8s.io/v1beta1","resources":[{"name":"nodes","singularName":"","namespaced":false,"kind":"NodeMetrics","verbs":["get","list"]},{"name":"pods","singularName":"","namespaced":true,"kind":"PodMetrics","verbs":["get","list"]}]}

Я настраиваю метрический сервер с , это , но не работает

Scaling active установлено в False. Я думаю, что это проблема, но я не знаю, как изменить значение

1 Ответ

0 голосов
/ 12 марта 2019

Похоже, вам не хватает сервера метрик.

HorizontalPodAutoscaler обычно выбирает метрики из ряда агрегированных API (metrics.k8s.io, custom.metrics.k8s.io и external.metrics.k8s.io). API metrics.k8s.io обычно предоставляется сервером метрик, который нужно запускать отдельно. См. metrics-server для получения инструкций. HorizontalPodAutoscaler также может получать метрики непосредственно из Heapster.

Вы можете проверить, есть ли метрики, развернутые с помощью kubectl get --raw /apis/metrics.k8s.io/v1beta1.

Чтобы установить metrics-server , просто клонируйте репо и запустите kubectl create -f deploy/1.8+/

Если у вас все еще есть проблема, я рекомендую проверить Docker Kubernetes (Mac) - Autoscaler не может найти метрики .

...