Kubernetes 自动缩放不起作用 - 显示未知
Kubernetes autoscaling not working - showing unkown
关于这个主题有很多问题,我尝试了很多东西,但仍然没有用。
我是 Kubernetes 的新手。我有一个 Kubernetes 集群,有 2 个节点(1 台 PC,1 个 VM 在另一台 PC 上),1 个主节点,1 个节点。我创建了一个网站(Docker 图片),Pod 在节点(不是主节点)上 运行。现在我想自动缩放 Pod,这就是我所做的:
- 设置
--request='cpu=50m'
到广告连播
- 已创建 hpa:
kubectl autoscale deployment testwebsite --min=1 --max=4 --cpu-percent=25
- 已用:
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 指标服务器和指标 api 是 运行 吗?这首先是必要的,它用于检查 cpu 用法和限制
您可以从部署中删除 LIMITS(如果有的话)并尝试。
问题不在 HPS 本身,而是在无法抓取指标的指标服务器中。
我通过克隆 metrics-server git 重现了这个问题,然后通过 kubectl create -f deploy/1.8+/
创建了它。
接下来我通过 运行 编辑了指标服务器部署:kubectl edit deployment metrics-server -n kube-system
在 spec:
-> containers:
下添加以下标志:
spec:
containers:
- command:
- /metrics-server
- --kubelet-insecure-tls
如git所述:
--kubelet-insecure-tls
: skip verifying Kubelet CA certificates. Not recommended for production usage, but can be useful in test clusters
with self-signed Kubelet serving certificates.
在更新部署并且指标服务器抓取指标后,您应该会看到 HPA 更新了当前目标。默认抓取间隔为 60 秒,您可以通过在上面添加以下标志来更改它 --metric-resolution=10s
<- 间隔设置为 10 秒。
关于这个主题有很多问题,我尝试了很多东西,但仍然没有用。
我是 Kubernetes 的新手。我有一个 Kubernetes 集群,有 2 个节点(1 台 PC,1 个 VM 在另一台 PC 上),1 个主节点,1 个节点。我创建了一个网站(Docker 图片),Pod 在节点(不是主节点)上 运行。现在我想自动缩放 Pod,这就是我所做的:
- 设置
--request='cpu=50m'
到广告连播 - 已创建 hpa:
kubectl autoscale deployment testwebsite --min=1 --max=4 --cpu-percent=25
- 已用:
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 指标服务器和指标 api 是 运行 吗?这首先是必要的,它用于检查 cpu 用法和限制
您可以从部署中删除 LIMITS(如果有的话)并尝试。
问题不在 HPS 本身,而是在无法抓取指标的指标服务器中。
我通过克隆 metrics-server git 重现了这个问题,然后通过 kubectl create -f deploy/1.8+/
创建了它。
接下来我通过 运行 编辑了指标服务器部署:kubectl edit deployment metrics-server -n kube-system
在 spec:
-> containers:
下添加以下标志:
spec:
containers:
- command:
- /metrics-server
- --kubelet-insecure-tls
如git所述:
--kubelet-insecure-tls
: skip verifying Kubelet CA certificates. Not recommended for production usage, but can be useful in test clusters with self-signed Kubelet serving certificates.
在更新部署并且指标服务器抓取指标后,您应该会看到 HPA 更新了当前目标。默认抓取间隔为 60 秒,您可以通过在上面添加以下标志来更改它 --metric-resolution=10s
<- 间隔设置为 10 秒。