
在Kubernetes v1.33中,原地Pod调整大小特性已从Alpha升级为Beta并默认启用。这一特性允许管理员在不重启Pod的情况下动态调整容器的CPU和内存资源,特别适用于以下场景:
1、有状态服务:如数据库、消息队列等需要保持持久连接的服务。
2、批处理作业:长时间运行的批处理任务不希望因资源调整而中断。
3、敏感工作负载:对重启敏感的应用,如金融交易处理系统。
4、资源优化:根据负载变化快速调整资源分配,提高集群利用率。
1、查看当前Pod资源状态
kubectl get pod <pod-name> -o jsonpath='{.spec.containers[*].resources}'2、通过resize子资源调整资源
kubectl patch pod <pod-name> --subresource=resize --type=merge -p \
'{"spec":{"containers":[{"name":"<container-name>","resources":{"requests":{"cpu":"2","memory":"4Gi"},"limits":{"cpu":"4","memory":"8Gi"}}}]}}'3、监控调整状态
kubectl get pod <pod-name> -o jsonpath='{.status.conditions[?(@.type=="PodResizeInProgress")]}'apiVersion: v1
kind: Pod
metadata:
name: my-app
spec:
containers:
- name: app-container
image: my-app:latest
resources:
requests:
cpu: "1"
memory: "2Gi"
limits:
cpu: "2"
memory: "4Gi"调整命令:
kubectl patch pod my-app --subresource=resize --type=merge -p \
'{"spec":{"containers":[{"name":"app-container","resources":{"requests":{"cpu":"2","memory":"4Gi"},"limits":{"cpu":"4","memory":"8Gi"}}}]}}'apiVersion: v1
kind: Pod
metadata:
name: multi-container-app
spec:
containers:
- name: main-app
image: main-app:v2
resources:
requests:
cpu: "0.5"
memory: "1Gi"
limits:
cpu: "1"
memory: "2Gi"
- name: sidecar
image: sidecar:latest
resources:
requests:
cpu: "0.2"
memory: "512Mi"
limits:
cpu: "0.5"
memory: "1Gi"调整命令:
kubectl patch pod multi-container-app --subresource=resize --type=merge -p \
'{"spec":{"containers":[{"name":"main-app","resources":{"requests":{"cpu":"1","memory":"2Gi"},"limits":{"cpu":"2","memory":"4Gi"}}},{"name":"sidecar","resources":{"requests":{"cpu":"0.5","memory":"1Gi"},"limits":{"cpu":"1","memory":"2Gi"}}}]}}'1、资源限制:
2、状态监控:
3、失败处理:
4、节点资源检查:
通过原地Pod资源调整功能,Kubernetes管理员现在可以更灵活地管理工作负载资源,显著减少对生产环境的影响,提高集群资源利用率。
如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!