K8s 集群性能优化核心
·
K8s 集群性能优化核心是从资源配置、调度策略、组件性能、基础设施四个维度针对性调优,以提升资源利用率和集群稳定性。
1. 资源配置优化
- 精准设置资源请求与限制:根据应用实际需求配置
requests(保证资源)和limits(资源上限),避免过度分配或资源不足。例如,CPU 请求设为应用常态使用率的 80%,内存请求考虑应用峰值的 90%。
案例:
apiVersion: v1
kind: Pod
metadata:
name: app-demo
spec:
containers:
- name: app-container
image: nginx:alpine
resources:
requests: # 保证分配的资源(调度依据)
cpu: "200m" # 200毫核(0.2核),根据应用常态CPU使用率80%设定
memory: "256Mi" # 保证256MB内存,按峰值90%估算
limits: # 资源上限(超限时可能被限流/驱逐)
cpu: "500m" # 最多使用0.5核
memory: "512Mi" # 最多使用512MB内存
- 启用资源 QoS 分级:通过 QoS(Quality of Service)为 Pod 划分优先级,确保关键业务(如 Guaranteed 类 Pod)在资源紧张时优先获得资源,非关键业务(如 BestEffort 类 Pod)可被驱逐。
Guaranteed 级(关键业务,资源完全保障):requests 与 limits 完全相等
resources:
requests:
cpu: "1"
memory: "1Gi"
limits:
cpu: "1"
memory: "1Gi"
Burstable 级(普通业务,资源可弹性):requests < limits
resources:
requests:
cpu: "500m"
limits:
cpu: "1"
BestEffort 级(非关键业务,无资源保障):不设置 requests 和 limits
resources: {} # 空配置
- 压缩容器镜像:使用多阶段构建、精简基础镜像(如 Alpine),减少镜像体积,提升拉取速度和启动效率。
# 构建阶段(使用完整编译环境)
FROM golang:1.21 AS builder
WORKDIR /app
COPY . .
RUN go build -o app main.go
# 运行阶段(使用最小基础镜像)
FROM alpine:3.18
WORKDIR /app
COPY --from=builder /app/app . # 仅复制编译好的二进制文件
EXPOSE 8080
CMD ["./app"]
2. 调度策略优化
- 节点亲和性与 Pod 亲和性 / 反亲和性:合理设置亲和性规则,将关联紧密的 Pod 调度到同一节点(如前端与后端),避免反亲和的 Pod 共处同一节点(如数据库主从),减少网络开销。
(1)节点亲和性与 Pod 亲和性 / 反亲和性
apiVersion: v1
kind: Pod
metadata:
name: frontend-pod
spec:
containers:
- name: frontend
image: nginx:alpine
affinity:
# 节点亲和性:优先调度到"role=app"标签的节点
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: role
operator: In
values: ["app"]
# Pod亲和性:与"app=backend"的Pod调度到同一节点(减少网络开销)
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values: ["backend"]
topologyKey: kubernetes.io/hostname
# Pod反亲和性:不与"app=database"的Pod共处同一节点(避免资源竞争)
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podSelector:
matchExpressions:
- key: app
operator: In
values: ["database"]
topologyKey: kubernetes.io/hostname
更多内容可关注下方公众号查看
更多推荐



所有评论(0)