我已经通过 Docker 在我的 Mac 上安装了 Kubernetes 的本地实例。

关注 walkthrough关于如何在部署中激活自动缩放我遇到了一个问题。自动调节程序无法读取指标。

当我运行时 kubectl describe hpa当前的 CPU 使用率返回为 未知/50% 警告:

Warning FailedGetResourceMetric: horizontal-pod-autoscaler unable to get metrics for resource cpu: unable to fetch metrics from API: the server could not find the requested resource (get pods.metrics.k8s.io)

Warning FailedComputeMetricsReplicas horizontal-pod-autoscaler failed to get cpu utilization: unable to get metrics for resource cpu: unable to fetch metrics from API: the server could not find the requested resource (get pods.metrics.k8s.io)



我已经通过 git clone https://github.com/kubernetes-incubator/metrics-server.git 安装了度量服务器并使用 kubectl create -f deploy/1.8+ 安装它

请您参考如下方法:

我终于让它工作了..
以下是我为使事情顺利进行而采取的完整步骤:

  • 在 Docker 中运行 Kubernetes
  • 使用 kubectl delete -n kube-system deployments.apps metrics-server 从您的 Kubernetes 实例中删除任何以前的 metrics-server 实例
  • 使用 git clone https://github.com/kubernetes-incubator/metrics-server.git 克隆度量服务器
  • 编辑文件 deploy/1.8+/metrics-server-deployment.yaml 通过添加 覆盖默认命令命令 之前不存在的部分。新部分将指示 metrics-server 允许不安全的通信 session (不要验证所涉及的证书)。仅针对 Docker 执行此操作,而不针对 metrics-server 的生产部署执行此操作:
    containers: 
    - name: metrics-server 
        image: k8s.gcr.io/metrics-server-amd64:v0.3.1 
        command: 
          - /metrics-server 
          - --kubelet-insecure-tls 
    
  • 使用 kubectl create -f deploy/1.8+ 将 metrics-server 添加到您的 Kubernetes 实例(如果 .yaml 出错,请改写: kubectl apply -f deploy/1.8+ )
  • 再次删除自动缩放程序并将其添加到您的部署中。它现在应该显示当前的 CPU 使用情况。

  • 2020 年 7 月编辑:
    除了 metrics-server 之外,上述大多数步骤都适用已更改,该文件不再存在。
    repo 现在建议像这样安装它:
    apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml 
    
    所以我们现在可以下载这个文件,
    curl -L https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml --output components.yaml 
    
    添加 --kubelet-insecure-tlsargs (L88) 到 metrics-server部署和运行
    kubectl apply -f components.yaml 
    


    评论关闭
    IT干货网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!