首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >k8s水平扩缩容

k8s水平扩缩容

作者头像
panzhixiang
发布2024-10-30 19:25:15
发布2024-10-30 19:25:15
2970
举报
文章被收录于专栏:panzhixiangpanzhixiang

这篇文章的内容其实是很早以前就会一个k8s 资源,但是最近又用到了,就做个笔记。

关于水平扩容和缩容不在这里做解释,有兴趣看这篇文章的人应该都已经知道了。 最好的教程其实还是官网,这里放上相关的链接:

HPA配置方法

在k8s中配置HPA有两种方式:

通过命令行的方式直接创建,如下,

代码语言:javascript
复制
kubectl autoscale deployment <deployment-name> --cpu-percent=75 --min=l --max=5

通过yaml配置文件 把详细的配置写在yaml文件中,通过kubectl apply来创建hpa。

比较推荐第二种方法,尤其是在生产环境中。如果使用第一种方法,过了一段时间之后可能就不知道曾经创建过这么个东西,或者及时记不清具体的细节了;第二种方法可以把yaml文件通过git存储,并且通过一些方法(比如:PR触发CICD)来始终保持repo中的yaml文件和生产环境保持一致。

HPA配置说明

代码语言:javascript
复制
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: <hpa-name>
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    # 这里选择Deployment资源作为展示,但是可以支持
    #  ReplicationController、Deployment、ReplicaSet 和 StatefulSet 这些类型
    kind: Deployment
    name: <打算进行自动扩缩配置的资源的名字>
  # 定义最小和最大副本数量
  minReplicas: 1
  maxReplicas: 4
  # 针对多种资源进行监控来决定是否进行扩容
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 75
  - type: Resource
    resource:
      name: memory
      target:
        type: Utilization
        averageUtilization: 75

配置HPA的依赖

在上面的配置文件中可以看到我设置的两个指标是Pods CPU和Memory的利用率,也就意味着k8s要提供个接口来采集这些信息, 也就是metric api, 不过这个是不是k8s默认部署的,需要自己部署,具体的部署过程,参见官网的介绍。

  • Metric Server Deploy https://kubernetes.io/zh/docs/tasks/debug-application-cluster/resource-metrics-pipeline/#metrics-server
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HPA配置方法
  • HPA配置说明
  • 配置HPA的依赖
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档