创建部署问题时,请参考下面模板,你提供的信息越多,越容易及时获得解答。如果未按模板创建问题,管理员有权关闭问题。
确保帖子格式清晰易读,用 markdown code block 语法格式化代码块。
你只花一分钟创建的问题,不能指望别人花上半个小时给你解答。

操作系统信息
Ubuntu 20.04.5 LTS

Kubernetes版本信息

hpa异常描述

api-server信息

metrics-server

我的pod都有限制cpu, mem

我想知道出现这种问题,是安装的步骤有啥问题吗

我自己的一些排查思路,但暂时还没解决

我尝试用kube-system的default这个secret去访问https://metrics-service ip/apis/metrics.k8s.io/v1beta1

发现这个服务可以访问

那为什么hpa这里还是提示服务不能处理请求呢

是我的请求资源不对吗

    frezes

    kubectl top no ,po,可以拿到指标

    我后面是把api-serverde 启动参数里加上了aggregate-route的参数
    如下

    - kube-apiserver
    
    - --advertise-address=xxx
    
    - --allow-privileged=true
    
    - --audit-log-maxage=30
    
    - --audit-log-maxbackup=10
    
    - --audit-log-maxsize=100
    
    - --authorization-mode=Node,RBAC
    
    - --bind-address=0.0.0.0
    
    - --client-ca-file=/etc/kubernetes/pki/ca.crt
    
    - --enable-admission-plugins=NodeRestriction
    
    - --enable-aggregator-routing=true
    
    - --enable-bootstrap-token-auth=true
    
    - --etcd-cafile=/etc/ssl/etcd/ssl/ca.pem
    
    - --etcd-certfile=/etc/ssl/etcd/ssl/node-master.pem
    
    - --etcd-keyfile=/etc/ssl/etcd/ssl/node-master-key.pem
    
    - --etcd-servers=https://xxxx
    
    - --feature-gates=CSIStorageCapacity=true,RotateKubeletServerCertificate=true,TTLAfterFinished=true,ExpandCSIVolumes=true
    
    - --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt
    
    - --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key
    
    - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
    
    - --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt
    
    - --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key
    
    - --requestheader-allowed-names=front-proxy-client
    
    - --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt
    
    - --requestheader-extra-headers-prefix=X-Remote-Extra-
    
    - --requestheader-group-headers=X-Remote-Group
    
    - --requestheader-username-headers=X-Remote-User
    
    - --secure-port=6443
    
    - --service-account-issuer=https://kubernetes.default.svc.cluster.local
    
    - --service-account-key-file=/etc/kubernetes/pki/sa.pub
    
    - --service-account-signing-key-file=/etc/kubernetes/pki/sa.key
    
    - --service-cluster-ip-range=xxxx
    
    - --tls-cert-file=/etc/kubernetes/pki/apiserver.crt
    
    - --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
    
    - --feature-gates=RemoveSelfLink=false

    并且metrics的启动参数增加如下

    • args:
      • –cert-dir=/tmp
      • –secure-port=4443
      • –kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
      • –kubelet-use-node-status-port
      • –kubelet-insecure-tls
      • –metric-resolution=15s

    这些就是我所改动的地方,

    但是我对其中原理还不是特别明白,准备看看源码为什么汇报这种异常,如果有清晰的大佬,也请麻烦告知下其中缘由

    frezes

    kubectl top no ,po,可以拿到指标

    我后面是把api-serverde 启动参数里加上了aggregate-route的参数
    如下

    - kube-apiserver
    
    - --advertise-address=xxx
    
    - --allow-privileged=true
    
    - --audit-log-maxage=30
    
    - --audit-log-maxbackup=10
    
    - --audit-log-maxsize=100
    
    - --authorization-mode=Node,RBAC
    
    - --bind-address=0.0.0.0
    
    - --client-ca-file=/etc/kubernetes/pki/ca.crt
    
    - --enable-admission-plugins=NodeRestriction
    
    - --enable-aggregator-routing=true
    
    - --enable-bootstrap-token-auth=true
    
    - --etcd-cafile=/etc/ssl/etcd/ssl/ca.pem
    
    - --etcd-certfile=/etc/ssl/etcd/ssl/node-master.pem
    
    - --etcd-keyfile=/etc/ssl/etcd/ssl/node-master-key.pem
    
    - --etcd-servers=https://xxxx
    
    - --feature-gates=CSIStorageCapacity=true,RotateKubeletServerCertificate=true,TTLAfterFinished=true,ExpandCSIVolumes=true
    
    - --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt
    
    - --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key
    
    - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
    
    - --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt
    
    - --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key
    
    - --requestheader-allowed-names=front-proxy-client
    
    - --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt
    
    - --requestheader-extra-headers-prefix=X-Remote-Extra-
    
    - --requestheader-group-headers=X-Remote-Group
    
    - --requestheader-username-headers=X-Remote-User
    
    - --secure-port=6443
    
    - --service-account-issuer=https://kubernetes.default.svc.cluster.local
    
    - --service-account-key-file=/etc/kubernetes/pki/sa.pub
    
    - --service-account-signing-key-file=/etc/kubernetes/pki/sa.key
    
    - --service-cluster-ip-range=xxxx
    
    - --tls-cert-file=/etc/kubernetes/pki/apiserver.crt
    
    - --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
    
    - --feature-gates=RemoveSelfLink=false

    并且metrics的启动参数增加如下

    • args:
      • –cert-dir=/tmp
      • –secure-port=4443
      • –kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
      • –kubelet-use-node-status-port
      • –kubelet-insecure-tls
      • –metric-resolution=15s

    这些就是我所改动的地方,

    但是我对其中原理还不是特别明白,准备看看源码为什么汇报这种异常,如果有清晰的大佬,也请麻烦告知下其中缘由

    • Ssq 回复了此帖

      Ssq

      而且我觉得跟我加的–enable-aggregator-routing=true没啥关系,因为该参数是为了api-server集成自建的aggregate,且master上没有kube-proxy时有用,我的master是有kube-proxy,所以应该跟这个apiserver的参数没关系,大家不要被我误导

      1 个月 后