【发布时间】:2019-03-13 01:26:20
【问题描述】:
我已经配置了一个 kubernetes 集群,其中 metrics-server(作为一个聚合的 apiserver)替换了 heapster。 kubectl top 工作正常,metrics.k8s.io/v1beta1 api 组中的原始端点也是如此。然而,HPA 没有。控制器管理器日志显示以下错误(没有其他错误):
E1008 10:45:18.462447 1 horizontal.go:188] failed to compute desired number of replicas based on listed metrics for Deployment/kube-system/nginx: failed to get cpu utilization: missing request for cpu on container nginx in pod kube-system/nginx-64f497f8fd-7kr96
I1008 10:45:18.462511 1 event.go:221] Event(v1.ObjectReference{Kind:"HorizontalPodAutoscaler", Namespace:"kube-system", Name:"nginx", UID:"387f256e-cade-11e8-9cfa-525400c042d5", APIVersion:"autoscaling/v2beta1", ResourceVersion:"3367", FieldPath:""}): type: 'Warning' reason: 'FailedGetResourceMetric' missing request for cpu on container nginx in pod kube-system/nginx-64f497f8fd-7kr96
I1008 10:45:18.462529 1 event.go:221] Event(v1.ObjectReference{Kind:"HorizontalPodAutoscaler", Namespace:"kube-system", Name:"nginx", UID:"387f256e-cade-11e8-9cfa-525400c042d5", APIVersion:"autoscaling/v2beta1", ResourceVersion:"3367", FieldPath:""}): type: 'Warning' reason: 'FailedComputeMetricsReplicas' failed to get cpu utilization: missing request for cpu on container nginx in pod kube-system/nginx-64f497f8fd-7kr96
指标服务器规范:
spec:
containers:
- args:
- --kubelet-preferred-address-types=InternalIP
image: k8s.gcr.io/metrics-server-amd64:v0.3.1
imagePullPolicy: Always
name: metrics-server
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /tmp
name: tmp-dir
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: metrics-server
serviceAccountName: metrics-server
terminationGracePeriodSeconds: 30
volumes:
- emptyDir: {}
name: tmp-dir
controller-manager 正在运行
--horizontal-pod-autoscaler-use-rest-clients="true"
k8s 版本 1.11.3
有什么想法吗?
【问题讨论】:
-
运行metrics-server需要什么参数?
-
你可以在运行 kube-system/nginx-64f497f8fd-7kr96 的节点上看到日志 kubelet
-
我已将 metrics-server 规范添加到原始帖子中 - kubelet 日志中没有与 metrics-server 相关的错误(据我所知)。
-
我明白了,但是如果你的 kubelet 端口与默认端口不同 - 需要在 args 中添加标志。 --kubelet-insecure-tls=true --kubelet-port=10250 --kubelet-preferred-address-types=InternalIP --v=5 --logtostderr
-
感谢您关注我的问题。从 metrics-server 到 kubelet 的连接很好。我会按照您的建议尝试使用 --v=5 运行 metrics-server 并粘贴日志。
标签: kubernetes