扩缩容
heapster从1.11被废弃,之后版本建议使用 Metrics-server
部署metrics_server
部署metrics_server插件(k8s集群环境v1.25.3)
第一步:拉取镜像
docker pull k8simage/metrics-server:v0.6.1
docker tag k8simage/metrics-server:v0.6.1 k8s.gcr.io/metrics-server/metrics-server:v0.6.1
第二步:部署metric server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
第三步:修改metrics-server的启动参数
- --kubelet-insecure-tls=true
第四步:测试
kubectl top node --sort-by='memory'
kubectl top node --sort-by='cpu'
扩缩容
方法一:手动扩缩容
kubectl scale deployment python --replicas=0
方法二:基于metres server /heapster自动扩缩容
仅支持基于cpu/memory
第一步:环境打架
- 创建deploy
kubectl create deploy test --image=1209233066/tools-alpine --dry-run=client -oyaml -- tail -f /dev/null
需要添加request
resources:
requests:
cpu: 10m
memory: 10Mi
-
创建hpa
kubectl autoscale deployment test --cpu-percent=90 --min=1 --max=5 --dry-run=client -oyaml
第二步:进入容器进行压测cpu
# 计算圆周率
echo "scale=5000;a(1)"|bc -l -q
同时打开另一个终端观察cpu的变化和容器数量变化
kubectl get hpa test --watch
kubectl top pods -l app=test
自定义指标扩缩容
来源 《kubernetes权威指南》 p95
prometheus-adapter
第一步:部署promethes
第二步:部署prometheus-adapter
第三步:在hpa资源中定义指标来源