Чего я пытаюсь достичь?
Пытаюсь установить горизонтальный скейлер для одного из наших сервисов в экс, перед которым стоит ALB. Я использовал контроллер входящего трафика ALB и входной поток, чтобы развернуть балансировщик нагрузки. Влияет ли это на получение показателей?
Что НЕ работает?
Когда я использую значения использования процессора / памяти в метрике для масштабирования, метрику использования невозможно найти.
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
Что работает?
Но если я использую value / AverageValue процессора (например, 200 м и т. Д.), Он сможет получить метрику и работать должным образом.
metrics:
- type: Resource
resource:
name: cpu
target:
type: AverageValue
averageValue: 500m
Что я пробовал?
Сервер метрик в кубе-системе.
ИМЯ ГОТОВА АКТУАЛЬНО ДОСТУПНО ВОЗРАСТ metrics-server 1/1 1 1 11ч.
Взлом, который я использовал, чтобы избежать проблем с доступом
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
Развертывание службы с запросами ресурсов
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
С указанными выше компонентами я могу получать метрики узлов, модулей и т. Д. Без каких-либо ошибок.
kubectl top pods
NAME CPU(cores) MEMORY(bytes)
xxxxxxxxxxxxxxx 5m 161Mi
xxxxxxxxxxxxxxx 3m 132Mi
xxxxxxxxxxxxxxx 4m 149Mi
Я не получаю здесь и проценты, если предположить, что мы не получим их здесь.
Я включил уровень журнала v = 4 для сервера метрик и не увидел никаких проблем.
kubectl version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.2", GitCommit:"c97fe5036ef3df2967d086711e6c0c405941e14b", GitTreeState:"clean", BuildDate:"2019-10-15T19:18:23Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"17+", GitVersion:"v1.17.9-eks-4c6976", GitCommit:"4c6976793196d70bc5cd29d56ce5440c9473648e", GitTreeState:"clean", BuildDate:"2020-07-17T18:46:04Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Сообщение об ошибке, которое я вижу,
Name: xxxxxxx
Namespace: xxxxxxx
Labels: app=xxxxxxx
Annotations: <none>
CreationTimestamp: Tue, 29 Sep 2020 21:09:58 -0400
Reference: Deployment/xxxxxxxx
Metrics: ( current / target )
resource cpu on pods (as a percentage of request): <unknown> / 50%
Min replicas: 2
Max replicas: 8
Deployment pods: 2 current / 0 desired
Conditions:
Type Status Reason Message
---- ------ ------ -------
AbleToScale True SucceededGetScale the HPA controller was able to get the target's current scale
ScalingActive False FailedGetResourceMetric the HPA was unable to compute the replica count: missing request for cpu
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedGetResourceMetric 5m37s (x320 over 100m) horizontal-pod-autoscaler missing request for cpu
Warning FailedComputeMetricsReplicas 37s (x340 over 100m) horizontal-pod-autoscaler invalid metrics (1 invalid out of 1), first error is: failed to get cpu utilization: missing request for cpu
Поскольку я могу масштабировать его, используя Value / AverageValue, но не Utilization, меня смущает, я что-то здесь упускаю?