繁体   English   中英

Kubernetes Autoscaling 无法识别 Heapster

[英]Kubernetes Autoscaling not recognizing Heapster

我有一个 kubernetes 集群,我试图在不使用他们的构建脚本的情况下从头开始构建。 除了自动缩放,几乎所有东西都在工作。 由于某种原因,控制管理器无法找到或不知道堆正在运行。

我有一张票,但似乎没有回应

https://github.com/kubernetes/kubernetes/issues/18652

更新:该问题已在 Github 上得到解答

我已经设置的东西。

这是当前所有 pod 的列表

[root@kube-master test] [dev] # kubectl get pods --all-namespaces
NAMESPACE        NAME                                  READY     STATUS    RESTARTS   AGE
default          my-nginx-8kmlz                        1/1       Running   0          11h
default          my-nginx-z8cxb                        1/1       Running   0          11h
kube-system      heapster-v10-vdc1v                    3/3       Running   0          11h
kube-system      kube-apiserver-10.122.0.20            1/1       Running   0          4d
kube-system      kube-controller-manager-10.122.0.20   1/1       Running   1          9h
kube-system      kube-dns-6iw3a                        4/4       Running   0          4d
kube-system      kube-proxy-10.122.0.20                1/1       Running   0          3d
kube-system      kube-proxy-10.122.42.163              1/1       Running   0          4d
kube-system      kube-proxy-10.122.43.138              1/1       Running   1          4d
kube-system      kube-scheduler-10.122.0.20            1/1       Running   1          4d

所以 heapster 正在针对我的代理运行,我可以访问

http://10.122.0.20:8080/api/v1/proxy/namespaces/kube-system/services/heapster/api/v1/model/namespaces/default/pods/my-nginx-8kmlz/stats

它返回有关 pod 的统计信息。

我真的不确定我错过了什么。

这是自动缩放的输出结果

[root@kube-master test] [dev] # kubectl get hpa
NAME       REFERENCE                              TARGET    CURRENT     MINPODS   MAXPODS   AGE
my-nginx   ReplicationController/my-nginx/scale   80%       <waiting>   1         5         22h

在我的控制器日志中,我唯一真正看到的是

W1224 18:27:43.425126       1 horizontal.go:185] Failed to reconcile my-nginx: failed to compute desired number of replicas based on CPU utilization for ReplicationController/default/my-nginx: failed to get cpu utilization: failed to get CPU consumption and request: some pods do not have request for cpu

如果您的pod上缺少CPU请求,则可能会导致此错误。 您可以通过运行以下命令来确认:

kubectl get dc $YOUR_DC -o yaml

要使用CPU自动缩放,您需要在资源部分下为pod规范指定CPU请求( CPU自动缩放基于所请求CPU的百分比)。 例如:

...
    spec:
      containers:
      - image: nginx
        name: nginx
        resources:
          requests:
            cpu: 400m
...

有时发生这种情况是因为未启用资源指标。

你可以用blow命令验证:

kubectl top pod -n <namespace>

如果您正在获取 Pod,则启用指标:

https://kubernetes.io/docs/tasks/debug-application-cluster/resource-usage-monitoring/#resource-metrics-pipeline

您需要在部署文件示例中为 Pod 分配 CPU 请求/限制

资源:请求:cpu:“100m”
限制:cpu:“250m”

暂无
暂无

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

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