【云原生】k8s pod 定时弹性伸缩cronhpa介绍与实战操

2023-01-01 0 797

一、简述

只不过原生植物的HPA是不全力支持依照天数AuF展开扩缩容的,依照天数点扩缩容只不过在很多情景下却是蛮新颖的,即使依照天然资源扩缩容难以精确掌控,像在大数据应用领域,跑各项任务的季节通常是明晰的,这种他们就能依照跑各项任务的季节来展开pod扩缩容,这种就十分精确的掌控天然资源采用了。这儿主要就如是说穆萨开放源码的两个商品Kubernetes-cronhpa-controller;kubernetes-cronhpa-controller 是两个 Kubernetes cron 水准 Pod 手动翻转掌控器,采用 crontab 讨厌计划。您能采用 CronHorizontalPodAutoscaler 采用在 Kubernetes 中表述的任何人类型第一类,那些第一类全力支持 scale 子天然资源(如 Deployment 和 StatefulSet)。

【云原生】k8s pod 定时弹性伸缩cronhpa介绍与实战操

GitHub门牌号:https://github.com/AliyunContainerService/kubernetes-cronhpa-controllerk8s自然环境布署能参照:「云原生植物」Kubernetes(k8s)最国际版自然环境布署(V1.24.1)

有关原生植物的HPA如是说与采用能参照:【云原生植物】K8s pod 静态灵活性扩缩容 HPA(metrics-server)

二、cronhpa 加装 # 浏览 git clone https://github.com/AliyunContainerService/kubernetes-cronhpa-controller.git # 1、install CRD # k8s < v1.22 #kubectl apply -f config/crds/autoscaling.alibabacloud.com_cronhorizontalpodautoscalers.yaml # k8s >=v1.22 kubectl apply -f config/crds/autoscaling.alibabacloud.com_cronhorizontalpodautoscalers.v1.22.yaml # 2、install RBAC settings kubectl apply -f config/rbac/rbac_role.yaml kubectl apply -f config/rbac/rbac_role_binding.yaml # 3、deploy kubernetes-cronhpa-controller kubectl apply -f config/deploy/deploy.yaml # 4、verify installation kubectl get deploy kubernetes-cronhpa-controller -n kube-system -o wide

【云原生】k8s pod 定时弹性伸缩cronhpa介绍与实战操

三、测试验证 — apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: nginx-deployment-basic labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: – name: nginx image: nginx:1.7.9 # replace it with your exactly ports: – containerPort: 80 — apiVersion: autoscaling.alibabacloud.com/v1beta1 kind: CronHorizontalPodAutoscaler metadata: labels: controller-tools.k8s.io: “1.0” name: cronhpa-sample spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: nginx-deployment-basic jobs: – name: “scale-down” schedule: “30 */1 * * * *” # 秒,分,时、日、月、周,比Linux crontab更细粒度到秒了。每30秒缩容一次。 targetSize: 1 # 缩容到1 pod – name: “scale-up” schedule: “01 */1 * * * *” # 每分钟第一秒就扩容一次 targetSize: 3 # 扩容到3 pod

执行

kubectl apply -f examples/deployment_cronhpa.yaml kubectl get pods,deploy # 查看cronhpa kubectl describe cronhpa cronhpa-sample

【云原生】k8s pod 定时弹性伸缩cronhpa介绍与实战操

布署和采用都十分简单,理解也十分简单,只不过实现也不难,他们自己写crontab也是能实现的,但是没有那么好,功能虽然简单,但是却是十分新颖的。

有关k8s pod 间歇灵活性伸缩式cronhpa的如是说与采用,就先到这儿了,有疑问的小伙伴欢迎给我留言,后续会持续更新【云原生植物+大数据】相关的文章。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务