在裸机环境中使用kubeadm部署Kubernetes集群需遵循以下步骤:
-
系统准备
- 所有节点禁用swap,同步时间(chrony/ntpd)
- 配置唯一主机名并设置/etc/hosts解析
- 启用br_netfilter内核模块,设置sysctl参数(net.ipv4.ip_forward=1等)
- 开放防火墙端口(6443,2379-2380,10250-10255等)
-
容器运行时安装
- 选择containerd或Docker CE,配置cgroup驱动为systemd
- 验证运行时与kubelet兼容性(推荐containerd v1.6+)
-
安装kubeadm组件
- 配置Kubernetes官方yum/apt源
- 安装kubelet/kubeadm/kubectl,锁定版本避免自动升级
- 启动并设置kubelet开机自启
-
初始化控制平面
- kubeadm init --pod-network-cidr=
--apiserver-advertise-address= - 记录join命令,配置kubectl上下文
- 部署网络插件(Calico/Flannel需匹配pod CIDR)
- kubeadm init --pod-network-cidr=
-
加入工作节点
- 在工作节点执行kubeadm join命令
- 验证节点状态为Ready
-
扩展配置
- 部署MetalLB实现LoadBalancer
- 配置Local Persistent Volume或CSI存储方案
- 启用Metrics Server/Dashboard等插件
关键注意事项:
- 需确保容器镜像仓库可访问(可预先拉取镜像)
- 生产环境建议分离etcd集群与控制平面
- 使用kubeadm config生成定制化部署配置文件
- 通过kubeadm upgrade plan管理集群版本升级