我和你有同样的问题。
对我有帮助的是this post。
-删除指标-服务器
-更改 metrics-server/deploy/1.8+/metrics-server-deployment.yaml
-再次申请
-或者干脆
更多详情如下:
kubectl delete -f metrics-server/deploy/1.8+
编辑metrics-server/deploy/1.8+/metrics-server-deployment.yaml 并添加下一个选项:
command:
- /metrics-server
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
metrics-server-deployment.yaml 应该如下所示,或者直接从 here 复制粘贴
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: metrics-server
namespace: kube-system
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: metrics-server
namespace: kube-system
labels:
k8s-app: metrics-server
spec:
selector:
matchLabels:
k8s-app: metrics-server
template:
metadata:
name: metrics-server
labels:
k8s-app: metrics-server
spec:
serviceAccountName: metrics-server
volumes:
# mount in tmp so we can safely use from-scratch images and/or read-only containers
- name: tmp-dir
emptyDir: {}
containers:
- name: metrics-server
image: k8s.gcr.io/metrics-server-amd64:v0.3.1
imagePullPolicy: Always
command:
- /metrics-server
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
volumeMounts:
- name: tmp-dir
mountPath: /tmp
再次应用度量服务器文件:kubectl apply -f metrics-server/deploy/1.8+
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader
创建
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator
创建
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader
创建了 apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io
已创建 serviceaccount/metrics-server 创建
deployment.extensions/metrics-server 创建的服务/metrics-server
创建 clusterrole.rbac.authorization.k8s.io/system:metrics-server
创建
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server
已创建
检查结果:
kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
nginx-deployment Deployment/nginx-deployment <unknown>/80% 3 10 10 25
kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
kube-master-1 255m 12% 2582Mi 35%
kube-worker-1 124m 6% 2046Mi 27
kubectl top pods
NAME CPU(cores) MEMORY(bytes)
nginx-deployment-76bf4969df-4bbdc 0m 2Mi
nginx-deployment-76bf4969df-5m6xc 0m 2Mi
nginx-deployment-76bf4969df-b4zh7 0m 2Mi
nginx-deployment-76bf4969df-c58wl 0m 2Mi
nginx-deployment-76bf4969df-cktcg 0m 2Mi
nginx-deployment-76bf4969df-fbjj9 0m 2Mi
nginx-deployment-76bf4969df-gh94w 0m 2Mi
nginx-deployment-76bf4969df-qx6ld 0m 2Mi
nginx-deployment-76bf4969df-rvt54 0m 2Mi
nginx-deployment-76bf4969df-vq9gs 0m 2Mi
此外,如果您在 Pod 上使用基于资源利用率百分比的自动缩放,则需要为 Pod 提供资源限制,否则它将无法计算正在使用的资源百分比。如果部署的 pod 规范没有资源限制,您需要将 HPA 设置为基于绝对值进行扩展,包括单位。对于 CPU,您可以将其设置为 300m 作为字符串。例如,对于 RAM,您可以将其设置为 400Mi。没有资源限制可以解释为什么在 TARGETS 下运行 kubectl get hpa 时看不到指标的 current 值。