如何修改Azure Kubernetes中kube-system命名空间的CPU Limit
在Azure Kubernetes Service(AKS)中调整kube-system命名空间CPU限制的操作方案
注意:kube-system下运行的是AKS集群核心组件,修改资源限制前请确认调整值不会影响组件正常运行,避免引发集群故障。
资源占用参考示意图:
1 配置kube-system命名空间级CPU LimitRange
如果需要为kube-system下所有未单独指定资源配置的Pod设置统一的CPU限制,可以通过LimitRange实现:
- 创建名为
kube-system-cpu-limit.yaml的配置文件,内容如下:
apiVersion: v1 kind: LimitRange metadata: name: cpu-limit-range namespace: kube-system spec: limits: - default: cpu: 1 # 可按需修改单容器默认CPU上限,单位为核 defaultRequest: cpu: 0.5 # 可按需修改单容器默认CPU请求值,单位为核 type: Container
- 执行命令使配置生效:
kubectl apply -f kube-system-cpu-limit.yaml - 验证配置结果:
kubectl get limitrange -n kube-system,配置生效后,kube-system下新创建的无单独资源配置的容器会自动套用该规则。
2 调整kube-system下已有Pod的CPU限制
AKS托管的核心系统组件(如CoreDNS、kube-proxy、omsagent等)不要直接编辑工作负载配置,否则会被AKS控制面自动回滚,需按对应规则调整:
- 调整CoreDNS资源限制:执行Azure CLI命令
az aks update --resource-group <你的资源组名称> --name <你的AKS集群名称> --set dnsServiceResources.requests.cpu=100m dnsServiceResources.limits.cpu=500m
命令中的CPU数值可根据实际需求修改 - 调整监控组件omsagent资源限制:执行命令编辑DaemonSet配置
kubectl edit daemonset omsagent -n kube-system
找到配置中的resources字段,修改对应CPU请求和限制值后保存即可生效 - 其他自行部署在kube-system下的第三方工作负载,直接编辑对应的Deployment/StatefulSet/DaemonSet的resources字段即可生效
3 优化建议
- 优先执行
kubectl top pods -n kube-system确认具体高CPU占用的Pod,针对异常Pod单独调整,不要直接给整个命名空间设置过严的限制,避免引发核心组件故障 - 如果kube-system整体资源占用过高,建议优先扩容系统节点池,或为系统组件配置专用节点池,避免和业务Pod抢占资源
内容的提问来源于stack exchange,提问作者DaiKeung
相关产品推荐
相关产品推荐


