繁体   English   中英

度量服务器的 kubernetes hpa 问题

[英]kubernetes hpa issue with metrics-server

我已经配置了一个 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

控制器管理器正在运行

--horizontal-pod-autoscaler-use-rest-clients="true"

k8s 版本 1.11.3

有任何想法吗?

原来这是我愚蠢(与指标服务器无关)。

我正在测试一个部署,其中 pod 容器没有任何 CPU 请求设置。

我会写到这里,在评论中不方便格式化。

检查您的proxy-client-cert-fileproxy-client-key ,打开他这个命令,并检查主题 CN:

$ openssl x509  -noout -text -in /etc/kubernetes/ssl/front-proxy-client.pem 


Certificate:
    Data:
        Version: hidden
        Serial Number: hidden (hidden)
    Signature Algorithm: hidden
        Issuer: CN=front-proxy-ca
        Validity
            Not Before: hidden
            Not After : hidden
        Subject: CN=front-proxy-client

就我而言,Subject CN= front-proxy-client ,我在 kube-apiserver 中添加了这个 CN: --requestheader-allowed-names=front-proxy-client

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM