我在 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 top pods
NAME CPU(cores) MEMORY(bytes)
x-app-55b54b6fc8-7dqjf 76m 765Mi
!!59% 是 pod 的内存使用量,由内存请求/内存的总和(内存使用量)描述。在我的情况下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