Skip to main content

高并发场景优化

概述

本文介绍如 Nginx Ingress 高可用方面的配置调优。

副本数量

controller:
replicaCount: 2

设置资源配额

controller:
resources:
requests:
cpu: 2
memory: 2Gi
limits:
cpu: 2
memory: 2Gi

HPA 弹性扩容

controller:
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 50
targetMemoryUtilizationPercentage: 50
behavior: # 快速扩容应对流量洪峰,缓慢缩容预留 buffer 避免流量异常
scaleUp:
stabilizationWindowSeconds: 300
policies:
- type: Percent
value: 900
periodSeconds: 15 # 每 15s 最多允许扩容 9 倍于当前副本数
scaleDown:
stabilizationWindowSeconds: 300
policies:
- type: Pods
value: 1
periodSeconds: 600 # 每 10 分钟最多只允许缩掉 1 个 Pod

调度到超级节点

调度到 超级节点之前,创建超级节点池,获取超级节点池 ID:

调度到超级节点池:

controller:
nodeSelector:
tke.cloud.tencent.com/nodepool-id: np-xxxxxxxx
# 污点容忍
tolerations:
- key: "eks.tke.cloud.tencent.com/eklet"
operator: "Exists"
effect: "NoSchedule"
提示:
  • 超级节点有近乎无限的计算资源和秒级扩容的优势,为弹性扩容做了有利的铺垫。
  • 将 ingress-nginx 从集群中分离出来,能够避免在流量洪峰时的资源争抢。

参考文档