云服务器K8s集群资源调度配置5项清单
文章分类:技术文档 /
创建时间:2025-08-01
在云服务器上搭建K8s集群时,合理的资源调度配置直接影响应用稳定性与成本效率。本文整理5项关键操作清单,涵盖资源分配、存储、网络等核心环节,助你规避常见陷阱。
一、CPU与内存精细化分配
K8s通过requests(最小资源请求)和limits(最大资源限制)控制容器资源使用。以电商秒杀场景为例,若容器requests设置过低,可能因节点资源不足导致Pod无法调度;若limits设置过高,又会造成云服务器资源闲置。实际配置时,可参考历史监控数据调整参数:
apiVersion: apps/v1
kind: Deployment
metadata:
name: e-commerce-deploy
spec:
replicas: 3
template:
spec:
containers:
- name: order-service
image: order:v1.2
resources:
requests:
memory: "128Mi" # 确保容器启动的最小内存
cpu: "500m" # 0.5核CPU请求
limits:
memory: "512Mi" # 防止内存溢出的上限
cpu: "1" # 最大可用1核CPU
建议通过`kubectl top pods`命令实时监控资源使用率,动态调整参数。
二、存储资源匹配应用场景
云服务器提供的块存储、对象存储等资源需与K8s的PV(持久化卷)、PVC(卷声明)合理绑定。例如,日志类应用适合使用读写性能高的块存储,而静态资源可关联成本更低的对象存储。PVC配置需注意:
- accessModes选择:单节点读写(ReadWriteOnce)适合有状态应用;多节点只读(ReadOnlyMany)适合静态资源。
- 容量规划:根据应用3-6个月的增长预测设置requests.storage,避免频繁扩容影响服务。
示例PVC配置:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: log-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi # 按日志日均增长200MB计算,可支撑100天
三、网络策略隔离风险流量
K8s的NetworkPolicy能精准控制Pod间通信,在云服务器多租户环境中尤为重要。例如,支付服务仅允许订单服务访问,可通过以下策略实现:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: payment-isolation
spec:
podSelector:
matchLabels:
app: payment-service # 目标Pod标签
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: order-service # 允许访问的源Pod标签
测试时建议先用`kubectl get networkpolicy`查看生效策略,再通过`kubectl exec`命令模拟跨Pod访问验证效果。
四、节点亲和性优化调度
利用节点亲和性可将Pod调度到特定云服务器节点(如GPU节点、高内存节点)。例如,机器学习任务需绑定GPU节点:
apiVersion: v1
kind: Pod
metadata:
name: ml-training
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: accelerator # 云服务器节点标签
operator: In
values: ["nvidia-gpu"]
需注意标签需提前通过`kubectl label nodes`命令打在目标节点上,避免因标签缺失导致调度失败。
五、命名空间配额控本
通过ResourceQuota限制命名空间资源总量,可防止单个团队过度消耗云服务器资源。例如,开发环境配额设置:
apiVersion: v1
kind: ResourceQuota
metadata:
name: dev-quota
spec:
hard:
requests.cpu: "4" # 总CPU请求不超过4核
requests.memory: 8Gi # 总内存请求不超过8GB
limits.cpu: "8" # 总CPU限制不超过8核
limits.memory: 16Gi # 总内存限制不超过16GB
实际部署时,建议为生产、测试、开发环境分别创建命名空间并设置独立配额。
掌握这五项配置要点,能让云服务器上的K8s集群资源调度更高效。从基础的CPU内存分配到高阶的节点亲和性策略,每一步都需结合业务场景动态调整,最终实现资源利用率与应用稳定性的平衡。