Kubernetes自动缩放不工作 - 显示未知

问题描述 投票:0回答:2

关于这个主题有很多问题,我尝试了很多东西,但它仍然没有用。

我是Kubernetes的新手。我有一个带有2个节点的Kubernetes群集(1台PC,1台不同PC上的VM),1个Master,1个节点。我创建了一个网站(Docker Image),Pod正在Node(不是master)上运行。现在我想自动调整Pod,这就是我做的:

  1. --request='cpu=50m'设置为pod
  2. 创建hpa:kubectl autoscale deployment testwebsite --min=1 --max=4 --cpu-percent=25
  3. 使用:kubectl get hpa -w

现在存在输出显示为当前值的问题。我读了很多,我必须将请求分配给pod,就像我一样。检查通过:kubectl get pod testwebsite --out=yaml

我还创建了metrics-server版本1.8+。确保它正在运行:kubectl get pods --all-namespaces

之后,我尝试调试HPA并通过以下方式调查:

kubectl describe hpa testwebsite

这告诉我这个:

Name:                                                  testwebsite
Namespace:                                             default
Labels:                                                <none>
Annotations:                                           <none>
CreationTimestamp:                                     Thu, 04 Apr 2019 14:08:57 +0200
Reference:                                             Deployment/testwebsite
Metrics:                                               ( current / target )   resource cpu on pods  (as a percentage of request):  <unknown> / 25%
Min replicas:                                          1
Max replicas:                                          4
Deployment pods:                                       1 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: unable to get metrics for resource cpu: no metrics returned from resource metrics API
Events:
  Type     Reason                        Age                   From                       Message
  ----     ------                        ----                  ----                       -------
  Warning  FailedComputeMetricsReplicas  7m24s (x12 over 10m)  horizontal-pod-autoscaler  failed to get cpu utilization: unable to get metrics for resource cpu: no metrics returned from resource metrics API
  Warning  FailedGetResourceMetric       5s (x41 over 10m)     horizontal-pod-autoscaler  unable to get metrics for resource cpu: no metrics returned from resource metrics API

10分钟后,它没有显示当前值,即使cpu的使用率为50-100%,它也不会扩展。

正如我所说,我是Kubernetes的新手,我真的希望有人可以帮助我。

最好的祝福,

Nico又名Myridor

编辑:在两个节点上使用Ubuntu 18.04 LTS | Kubernetes版本:1.14.0

kubernetes metrics autoscaling kubernetes-hpa
2个回答
0
投票

问题不在于HPS本身,而在于度量服务器,它无法抓取指标。

我通过克隆metrics-server git然后由kubectl create -f deploy/1.8+/创建它重新创建了这个问题。

接下来,我通过运行:kubectl edit deployment metrics-server -n kube-system编辑了metrics服务器部署

spec:下 - > containers:添加以下标志:

spec:
      containers:
      - command:
        - /metrics-server
        - --kubelet-insecure-tls

git所述:

--kubelet-insecure-tls:跳过验证Kubelet CA证书。不建议用于生产用途,但在具有自签名Kubelet服务证书的测试群集中非常有用。

部署更新后,度量标准服务器会删除指标,您应该会看到HPA使用当前目标进行更新。默认刮擦间隔为60秒,您可以通过在上面的--metric-resolution=10s中添加以下标志来更改它


0
投票

你肯定在kubernetes metrics服务器和metrics api正在运行吗?这是必要的,它用于检查CPU使用和限制

您可以从部署中删除LIMITS(如果有的话)并尝试它。

© www.soinside.com 2019 - 2024. All rights reserved.