kubernetes自动缩放不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kubernetes自动缩放不起作用相关的知识,希望对你有一定的参考价值。

我有一个kubernetes集群,我正尝试从头开始构建而不使用其构建脚本。除了自动缩放外,几乎所有东西都在工作。由于某种原因,控制管理器找不到或不知道heapster正在运行。

我有一张罚单,但似乎没有任何回复

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

我已经设置好了。

这里是当前所有豆荚的列表

[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

它返回有关广告连播的统计信息。

我真的不确定我缺少什么。

这是自动缩放的输出看起来像

[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 autoscaling基于所请求CPU的百分比)。例如:

...
    spec:
      containers:
      - image: nginx
        name: nginx
        resources:
          requests:
            cpu: 400m
...
另一答案

有时会发生这种情况,因为未启用资源指标,您可以使用blow命令进行验证kubectl顶部吊舱-n如果要获取广告连播,则启用了指标]

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

以上是关于kubernetes自动缩放不起作用的主要内容,如果未能解决你的问题,请参考以下文章

自动布局:缩放填充不起作用

Qwt 绘图自动缩放不起作用

GAE Java 自动缩放最小空闲实例不起作用?

AWS EC2 实例终止保护在自动缩放 IN 下不起作用

具有操作的 IAM 策略:自动缩放:AttachLoadBalancerTargetGroups,基于目标组的 ARN 过滤访问不起作用

当浏览器缩放超过75%时自动播放不起作用