【发布时间】:2020-12-31 17:00:22
【问题描述】:
我在 Kubernetes 上部署了一个应用程序,并想测试 hpa。 使用 kubectl top nodes 命令,我注意到 cpu 和内存在没有压力的情况下增加了。 有意义吗?
另外,在强调使用 apache bench 部署时,cpu 和内存不会增加到足以通过目标并制作副本。
我的部署 yaml 文件太大了,无法提供它。这是我的容器之一。
- name: web
image: php_apache:1.0
imagePullPolicy: Always
resources:
requests:
memory: 50Mi
cpu: 80m
limits:
memory: 100Mi
cpu: 120m
volumeMounts:
- name: shared-data
mountPath: /var/www/html
ports:
- containerPort: 80
它由 15 个容器组成 我有一个 VM,其中包含一个具有 2 个节点(主节点、工作节点)的集群。
我想强调部署,以便我可以看到它扩大规模。 但是这里我觉得有问题!在不强调应用程序的情况下,
来自 Pod 的 CPU/内存已经超过了目标,并且已经制作了 2 个副本(没有强调它)。 我知道我向容器提供的请求越多,这个百分比就越少。 但是,从一开始就增加内存/cpu 的使用率而不强调它是否有意义?
我希望目标的左侧部分(pod 中内存的使用)处于开始的 0%,并且尽可能多地增加它并创建副本。 但是由于我在使用 apache bench 时强调,该值最多增加了 10%
我们可以在这里看到 CPU 的使用情况: kubectl 顶级吊舱
NAME CPU(cores) MEMORY(bytes)
x-app-55b54b6fc8-7dqjf 76m 765Mi
!!59% 是 pod 的内存使用率,由 Sum of Memory Requests/Memory(usage of memory) 描述。在我的情况下 59% = 765Mi/1310Mi
HPA yaml 文件:
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: hpa
spec:
maxReplicas: 10
minReplicas: 1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp
metrics:
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 35
【问题讨论】:
-
一切都取决于您在配置 YAML 中包含的内容。你能提供那些 YAML 吗?你部署了什么应用程序,它应该做什么。您是否设置了 CPU/内存
Request/Limits?你的环境是什么?您是如何尝试增加此负载的?您必须提供更多信息,因为这个问题太笼统了。 -
感谢您的回答...我已经编辑了我的帖子!
标签: kubernetes deployment cpu-usage hpa