Grok在K8s集群中的部署:利用Kubernetes进行容器弹性伸缩

大萱酱_2593

大萱酱_2593

2026-06-16

786人浏览

原创

metrics server必须部署且就绪后hpa才能工作;grok deployment需声明resources.requests;hpa支持cpu利用率或prometheus qps指标扩缩;验证需检查状态、压测观察扩容、停压后确认缩容。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

grok在k8s集群中的部署:利用kubernetes进行容器弹性伸缩

确认Kubernetes集群已启用Metrics Server

HPA依赖实时指标数据,而Kubernetes 1.8+默认不再集成Heapster,必须先部署Metrics Server才能让HPA正常工作。

执行 kubectl top nodes 查看是否返回节点CPU/内存使用率;若提示 error: Metrics API not available,说明尚未部署。

运行 kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.7.2/components.yaml 安装最新稳定版Metrics Server。

【必须等待Metrics Server Pod处于Running状态且READY为1/1,否则后续HPA将始终显示unknown状态】

为Grok服务创建Deployment并设置资源请求

弹性伸缩的前提是Pod明确声明资源需求,否则HPA无法计算利用率百分比。

编写grok-deployment.yaml,关键字段必须包含 resources.requests.cpu 和 resources.requests.memory,例如设为 100m 和 256Mi。

直接应用: kubectl apply -f grok-deployment.yaml。

注意:若跳过 requests 设置,HPA会报错 missing request for cpu 并拒绝生效。

创建HorizontalPodAutoscaler对象控制副本数

HPA对象需精准绑定到Deployment,且目标指标必须与实际采集能力匹配。

方法一:基于CPU使用率自动扩缩

创建hpa-cpu.yaml,内容如下:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: grok-hpa-cpu
spec:
  scaleTargetRef:
    kind: Deployment
    name: grok
  minReplicas: 2
  maxReplicas: 8
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

Kubernetes Network Policy Generator
Kubernetes Network Policy Generator

使用加权评分卡在12项标准上评估和比较隐私解决方案供应商。适用于选择隐私管理软件、比较数据保护方案等场景。

下载

执行 kubectl apply -f hpa-cpu.yaml 启用CPU驱动的弹性伸缩。

方法二:基于自定义QPS指标(需提前部署Prometheus+KEDA)

若Grok服务已暴露 /metrics 端点且包含 http_requests_total 计数器,可改用KEDA触发伸缩。

编写scaledobject.yaml,指定 triggers.type: prometheus 并配置查询语句 sum(rate(http_requests_total[2m]))。

运行 kubectl apply -f scaledobject.yaml 即可激活事件驱动型扩缩容。

验证HPA是否按预期工作

第一步:查看HPA当前状态

kubectl get hpa → 检查 CURRENT REPLICAS 是否与 DESIRED REPLICAS 一致,TARGET 列应显示类似 70%/70% 的健康值。

第二步:模拟负载并观察响应

在另一终端持续压测: while true; do curl http://grok-service.default.svc.cluster.local/health; sleep 0.1; done。

等待约60秒后执行 kubectl get pods -w → 当前Pod数应逐步从2个增至4个甚至更多。

第三步:停止压测,等待5分钟

HPA默认缩容冷却期为5分钟,期间 kubectl get hpa 的 CURRENT VALUE 会持续下降,最终副本数回落至 minReplicas 设定值。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

kubernetes grok

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

2025.12.22

116

5

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

2026.06.29

188

19

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

2025.12.22

116

5

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

2026.06.29

188

19

Grok使用教程大全
Grok使用教程大全

从注册登录到高级提示词应用,全面讲解Grok使用教程、常见问题解决方案和效率提升技巧。

2026.06.12

542

11

Grok工具推荐合集
Grok工具推荐合集

本专题整合了Grok工具合集,阅读专题下面的文章了解更多详细内容。

2026.06.12

442

9

Grok AI模型选择推荐
Grok AI模型选择推荐

本专题整合了Grok模型推荐指南,阅读专题下面的文章了解更多详细内容。

2026.06.12

642

19

grok搭建部署教程合集
grok搭建部署教程合集

本专题整合了grok搭建部署教程合集,阅读专题下面的文章了解更多详细内容。

2026.06.12

638

13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kubernetes官方教程手册
Kubernetes官方教程手册

共0课时 | 0人学习

Kubernetes官方中文文档
Kubernetes官方中文文档

共0课时 | 0人学习