优化 Debian 上的 Kubernetes(K8s)部署可以从系统层、K8s 组件层、网络与存储、运维与监控几个维度入手。下面按实战经验给你一个较完整的优化清单。
# 常见 K8s 推荐参数
cat >> /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
vm.swappiness=0
fs.file-max=2097152
EOF
sysctl --system
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
Docker / containerd 与 kubelet 必须一致:
# containerd 示例
[plugins."io.containerd.grpc.v1.cri"]
systemd_cgroup = true
apt install -y chrony
systemctl enable --now chrony
apt install -y containerd
containerd config default > /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
"docker.io" = ["https://registry.aliyuncs.com"]
kubeadm init \
--pod-network-cidr=10.244.0.0/16 \
--control-plane-endpoint=LOAD_BALANCER_IP
# kubelet 配置
--kube-reserved=cpu=500m,memory=1Gi
--system-reserved=cpu=500m,memory=1Gi
--eviction-hard=memory.available<500Mi
kubectl apply -f https://docs.cilium.io/en/stable/quickinstall/
iptables=nft 或 Cilium eBPFkubectl patch storageclass xxx -p '{"metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
避免“吵闹邻居”:
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 256Mi
nodeAffinitypodAntiAffinity(高可用)| 项目 | 优化前 | 优化后 |
|---|---|---|
| Pod 启动 | 5–10s | 1–3s |
| 节点负载 | 高 | 明显下降 |
| 网络延迟 | 高 | 降低 30%+ |
| OOM 次数 | 多 | 极少 |
如果你愿意,我可以:
你目前是 学习环境、测试集群,还是生产环境?