我已经通过Docker在Mac上安装了Kubernetes的本地示例。
按照walkthrough关于如何在部署上激活自动缩放的说明,我遇到了一个问题。自动缩放器无法读取指标。
当我运行kubectl describe hpa
时,当前CPU使用率返回为unknown/50%,并显示警告:
警告获取资源度量失败:horizontal-pod-autoscaler无法获取资源cpu的度量:无法从API中提取指标:服务器无法找到请求的资源(http:///www.example.com)pods.metrics.k8s.io)
警告失败ComputeMetricsReplicas horizontal-pod-autoscaler无法获取CPU利用率:无法获取资源cpu的度量:无法从API中提取指标:服务器无法找到请求的资源(http:///www.example.com)pods.metrics.k8s.io)
我已经通过git clone https://github.com/kubernetes-incubator/metrics-server.git
安装了metrics-server,并使用kubectl create -f deploy/1.8+
安装了它
7条答案
按热度按时间pvcm50d11#
我终于让它工作了。。以下是我让它工作的完整步骤:
1.在Docker中运行Kubernetes
1.使用
kubectl delete -n kube-system deployments.apps metrics-server
从您的Kubernetes示例中删除所有以前的metrics-server示例1.克隆指标-
git clone https://github.com/kubernetes-incubator/metrics-server.git
的服务器1.编辑文件deploy/1.8 +/metrics-server-deploy. yaml,通过添加以前不存在的command部分覆盖默认命令。新部分将指示metrics-server允许不安全的通信会话(不验证涉及的证书)。仅对Docker执行此操作,而不对metrics-server的生产部署执行此操作:
1.使用
kubectl create -f deploy/1.8+
将metrics-server添加到您的Kubernetes示例(如果. yaml错误,请改为:kubectl apply -f deploy/1.8+
)1.删除自动缩放器并再次将其添加到部署中。现在它应该显示当前的cpu使用情况。
除了metrics-server已更改且该文件不再存在之外,上述大多数步骤都适用。
repo现在建议如下安装:
现在我们可以下载这个文件,
将
args
(L88)下的--kubelet-insecure-tls
添加到metrics-server
部署并运行6fe3ivhb2#
对于使用Internal-IP的人,这里可能对你有用。按照上面的@乌龟先生的步骤4。添加更多的一个命令。
afdcj2ne3#
我们升级到AWS EKS版本1.13.7,这是当我们开始有问题的HPA,原来在我的部署,我必须指定一个值为
resources.requests.cpu=200m
和HPA开始为我工作。a1o7rhls4#
在使用我的kubernetes kubeadm实验室时出现了相同的问题,更新的程序在这里https://github.com/kubernetes-sigs/metrics-server
这解决了问题:horizontal-pod-autoscaler无法获取资源cpu的度量:无法从资源度量API提取度量:服务器无法找到请求的资源(http:///www.example.com)pods.metrics.k8s.io)
xuo3flqw5#
如果有人仍然有问题修复这个问题,这帮助我修复它的minikube:
我有2个部署具有相同的标签,如下所示:
我重命名了数据库的标签和matchLabel(例如,重命名为app:db),然后删除这两个部署并应用新的配置- et voilà它的工作.(经过几个小时的尝试解决问题..)
关于此问题的更多信息:https://github.com/kubernetes/kubernetes/issues/79365
b91juud36#
我已经部署在EKS上,我面临着同样的问题。
在我的部署中,我只是指定了资源,这有助于我运行HPA
在对我的部署应用资源限制后,HPA开始为我工作。
qacovj5a7#
在我的例子中,metrics-server的唯一部署适用于hpa,这是我与您分享的,我尝试了它与docker-desktop
this is a modification of a solution i found, which i shared for another repo