在裸机环境中使用kubeadm部署Kubernetes集群,需重点关注以下实践经验:
- 前置条件:所有节点需禁用swap、同步时间、配置防火墙(6443/2379等端口)及安装容器运行时(containerd/docker)。建议使用CentOS 7/8或Ubuntu 20.04+等已验证OS版本。
- 镜像加速:通过
imageRepository
参数指定私有镜像仓库(如阿里云镜像源),避免gcr.io访问问题。可预先执行kubeadm config images pull
拉取镜像。 - 网络方案:裸机环境优先选择Calico或Cilium作为CNI插件,需提前规划Pod CIDR并验证网络互通性,避免与物理网络冲突。
- 存储集成:部署Rook/Ceph或OpenEBS实现裸机持久化存储,需单独规划磁盘分区并验证底层存储性能。
- 高可用控制平面:若需HA,需部署至少3个控制节点,配合HAProxy或Keepalived实现API Server负载均衡。
- 证书管理:通过
kubeadm init
时指定cert-dir
和自定义证书有效期,建议使用x509v3扩展配置SAN(Subject Alternative Name)。 - 灾备验证:部署后需测试节点断电、网络分区等异常场景,验证etcd集群健康状态和workload迁移能力。
关键陷阱:未关闭SELinux导致权限错误、CNI插件未及时安装造成CoreDNS pending、未配置kube-proxy的ipvs模式影响性能。建议结合kubeadm reset
进行环境清理和重试。