`kubectl get hpa` показывает цели как неизвестные и не масштабирует модуль при увеличении нагрузки? - PullRequest
0 голосов
/ 12 сентября 2018

Я создаю развертывание и один HPA для этого развертывания (кластер мини-кубов с одним узлом). Но когда я запускаю kubectl get hpa, он показывает цели как неизвестные (скриншот ниже)

NAME       REFERENCE             TARGETS        MINPODS   MAXPODS   REPLICAS   AGE
producer   Deployment/producer   <unknown>/1%   1         3         1          42m

Ниже приведен файл deploy.yaml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.1.0 (36652f6)
  creationTimestamp: null
  labels:
    io.kompose.service: producer
  name: producer
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: producer
    spec:
      containers:
      - image: <image name>
        name: producer
        ports:
        - containerPort: 8090
        env:
        - name: mongoUrl
          value: mongodb://mongo:27017
        - name: mongoHost
          value: mongo
        - name: mongoPort
          value: "27017"
        resources:
          requests:
            cpu: 10m
         resources: {}
       restartPolicy: Always
status: {}

Я запускаю команду kubectl autoscale deployment producer --cpu-percent=1 --min=1 --max=3 для настройки автоскалера для развертывания производителя. Ниже приведен вывод для kubectl describe hpa:

Type     Reason                        Age                 From                       Message
  ----     ------                        ----                ----                       -------
  Warning  FailedComputeMetricsReplicas  43m (x13 over 49m)  horizontal-pod-autoscaler  failed to get cpu utilization: missing request for cpu on container producer in pod default/producer-c7dd566f6-69gbq
  Warning  FailedGetResourceMetric       4m (x91 over 49m)   horizontal-pod-autoscaler  missing request for cpu on container producer in pod default/producer-c7dd566f6-69gbq

Я уже включил надстройки heapster и metrics-server на мини-кубе и жду, когда работает hpa за последние 30 минут.

Журналы от kube-controller-manager в миникубе:

{"log":"I0912 10:36:40.806224       1 event.go:218] Event(v1.ObjectReference{Kind:\"HorizontalPodAutoscaler\", Namespace:\"default\", Name:\"producer\", UID:\"135d0ebc-b671-11e8-a19f-080027646864\", APIVersion:\"autoscaling/v2beta1\", ResourceVersion:\"71101\", FieldPath:\"\"}): type: 'Warning' reason: 'FailedGetResourceMetric' missing request for cpu on container producer in pod default/producer-c7dd566f6-w8zcd\n","stream":"stderr","time":"2018-09-12T10:36:40.80645916Z"}
{"log":"I0912 10:36:40.806511       1 event.go:218] Event(v1.ObjectReference{Kind:\"HorizontalPodAutoscaler\", Namespace:\"default\", Name:\"producer\", UID:\"135d0ebc-b671-11e8-a19f-080027646864\", APIVersion:\"autoscaling/v2beta1\", ResourceVersion:\"71101\", FieldPath:\"\"}): type: 'Warning' reason: 'FailedComputeMetricsReplicas' failed to get cpu utilization: missing request for cpu on container producer in pod default/producer-c7dd566f6-w8zcd\n","stream":"stderr","time":"2018-09-12T10:36:40.806564094Z"}

Вывод из kubectl top nodes

NAME       CPU(cores)   CPU%      MEMORY(bytes)   MEMORY%   
minikube   336m         16%       1518Mi          19%    

Я попытался установить horizontal-pod-autoscaler-use-rest-clients=false для kube-controller-manager, но проблема остается той же.

1 Ответ

0 голосов
/ 17 сентября 2018

Проблема была с моим producer-deployment.yaml, так как я переписал запрос ресурсов, чтобы он снова был нулевым, написав строку: resources: {} после

resources:
    requests:
        cpu: 10m

Это сделало мой запрос ресурсов недействительным, и поэтому heapster показывал missing request for cpu on container producer.

удаление строки resources: {} формы producer-deployment.yaml решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...