1. Kubernetes控制平面搭建核心思路
作为容器编排领域的事实标准,Kubernetes控制平面是整个集群的中枢神经系统。我在生产环境搭建过二十余次k8s集群,发现控制平面的稳定性直接决定集群的生死。不同于工作节点可以随时扩展替换,控制平面组件一旦出现问题,整个集群就会陷入瘫痪。
这次搭建采用经典的kubeadm工具链,选择1.28版本作为基准。这个版本在etcd存储性能上有显著优化,特别适合中小规模集群。硬件配置上需要特别注意:至少2核CPU和4GB内存是底线,实际生产环境建议4核8GB起步。我曾在测试环境尝试用1核2GB的机器部署控制平面,结果kube-apiserver频繁OOM崩溃,这个坑希望大家避开。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 基础环境准备与依赖安装
2.1 操作系统调优
在CentOS 7.9系统上,有几个关键参数必须调整。首先是关闭swap,这个在k8s 1.8+版本是强制要求:
bash复制swapoff -a
sed -i '/ swap / s/^/#/' /etc/fstab
然后是内核参数调整,创建/etc/sysctl.d/k8s.conf文件:
conf复制net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
执行sysctl --system生效后,还需要设置正确的时区和时间同步。我曾遇到过一个诡异的问题:证书因为节点时间不同步导致认证失败,排查了整整一天。
2.2 容器运行时配置
虽然containerd已经成为默认运行时,但在1.28版本中docker仍然被广泛支持。这里采用docker-ce 20.10版本:
bash复制yum install -y docker-ce-20.10.* docker-ce-cli-20.10.*
关键配置在/etc/docker/daemon.json:
json复制{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
