K8S-HPA

orizontal Pod Autoscaler(HPA)

Pod自动扩容:可以根据cpu使用率或自定义指标(metrics)自动对Pod进行扩/缩容

  • 控制管理器每隔30s(可以通过 -horizontal-pod-autoscaler-sync-period修改)查询metrics的资源使用情况

  • 支持3中metrics类型

    • 预定义metrics(比如pod的cpu)以利用率的方式计算

    • 自定义的Pod metrics,以原始值(raw value)的方式计算

    • 自定义的object metrics

  • 支持两种metrics查询方式:heapster和自定义的REST API

  • 支持多metrics

通常用于Deployment ,不适用于无法扩/缩容的对象,比如DaemonSet

0、开启指标服务
# 下载 metrics-server 组件配置文件
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml -O metrics-server-components.yaml
​
# 修改镜像地址为国内的地址
sed -i 's/k8s.gcr.io\/metrics-server/registry.cn-hangzhou.aliyuncs.com\/google_containers/g' metrics-server-components.yaml
​
# 修改容器的 tls 配置,不验证 tls,在 containers 的 args 参数中增加 --kubelet-insecure-tls 参数
​
# 安装组件
kubectl apply -f metrics-server-components.yaml
​
# 查看 pod 状态
kubectl get pods --all-namespaces | grep metrics

2、CPU、内存指标监控

实现CPU、内存指标的监控,首先要有一个前提条件是该对象必须配置了resources.requests.cpu 或 resources.requests.memory 才可以,可以配置 cpu.memory达到上述配置的百分比后进行扩容或缩容

创建一个HPA:

1、先准备好一个有做资源限制的depLoyment

2、执行命令 kubectl autoscale deploy <deployment名称> --cpu-percent=20 --min=2 --max=5

3、通过 kubect get hpa 可以获取HPA信息

2、自定义metrics(一般不用)

1、控制器开启 -horizontal-pod-autoscaler-use-rest-clients

2、控制管理器的-apiserver指向API Server Aggregator

3、在API Server Aggregator中注册自定义的metrics API

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值