k8s hpa自定义指标

参考链接 https://blog.csdn.net/fly910905/article/details/105375822

这个大佬写的挺好的。 不再搬运了,仅不不懂的地方记录一下。哈哈哈

模拟增加memory的脚本解释一下,因为我也第一次见到这么玩,命令也是新鲜

#!/bin/bash  
mkdir /tmp/memory  
mount -t tmpfs -o size=40M tmpfs /tmp/memory  
dd if=/dev/zero of=/tmp/memory/block  
sleep 60 
rm /tmp/memory/block  
umount /tmp/memory  
rmdir /tmp/memory

这个Shell脚本的作用是在/tmp/memory目录下创建一个大小为40MB的临时文件系统,并在其中创建一个名为"block"的文件,然后等待60秒。在等待期间,"block"文件会被填充为零直到占用40MB的空间。60秒后,脚本会删除这个文件,然后卸载/tmp/memory目录下的临时文件系统,并最终移除这个目录。这个脚本主要用于在/tmp目录中创建一个临时的内存文件系统,用于存储临时数据,并在一段时间后自动清理这些数据。
挂载tmpfs文件系统,它会使用系统的内存作为存储介质,而不是硬盘空间。在这个例子中,指定的大小为40MB,这意味着脚本将尝试将40MB的系统内存用于/tmp/memory目录下的临时文件系统。

$ dd if=/dev/zero of=/tmp/memory/block

这条命令使用`dd`命令,它是一个用于复制文件和转换文件的工具。

- `if=/dev/zero`: 这个选项指定了`dd`命令的输入文件(input file)。在这里,`/dev/zero`是一个特殊的设备文件,在读取时会无限产生字节值为0的数据流。
- `of=/tmp/memory/block`: 这个选项指定了`dd`命令的输出文件(output file)。在这里,数据将会写入到/tmp/memory目录下的名为"block"的文件中。

所以,这条命令的作用是从/dev/zero设备中读取数据,并将其写入到/tmp/memory目录下的"block"文件中,直到"block"文件达到设定的大小或者设备中的数据被读取完毕。

发生在我环境的一些问题

memory的那个hpa-mem.yaml文件在1.28.1上内容要稍作修改

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: nginx-hpa
  namespace: lc
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: hpa-mem-demo
  minReplicas: 1
  maxReplicas: 5
  metrics:
  - type: Resource
    resource:
      name: memory
      target:
        type: Utilization
        averageUtilization: 60

 

posted @ 2024-02-28 15:56  高佳丰  阅读(70)  评论(0编辑  收藏  举报