-
环境准备:
- 确保所有节点(控制平面和Worker)满足最低配置(推荐2核4GB+,SSD磁盘),使用Ubuntu/CentOS等稳定OS版本。
- 禁用Swap,配置防火墙规则(6443、2379-2380等端口),同步时间(NTP)。
-
容器运行时:
- 安装containerd(推荐)或CRI-O,配置cgroup驱动为systemd,确保与kubelet兼容。
-
安装kubeadm/kubelet/kubectl:
- 使用官方仓库添加包源,安装指定版本(生产环境需锁定版本,如1.28.x)。
-
初始化控制平面(HA):
- 使用
kubeadm init --control-plane-endpoint=<负载均衡器IP/DNS> --pod-network-cidr=<CIDR> --upload-certs
- 配置外部etcd集群或堆叠式HA拓扑,通过
--config
指定YAML配置文件精细化参数。
- 使用
-
网络插件:
- 部署Calico/Flannel等CNI插件,启用NetworkPolicy(生产环境必备)。
-
加入Worker节点:
- 使用
kubeadm join
命令并附带discovery-token,确保TLS通信安全。
- 使用
-
生产加固:
- 启用PodSecurity admission(替代PSP),配置RBAC最小权限,加密Secret(--encrypt-provider-config)。
- 部署metrics-server、集群自动扩缩容(CA)、启用Audit Log。
-
持久化与存储:
- 集成CSI驱动(如AWS EBS/Google PD),创建StorageClass启用动态供应。
-
备份与灾备:
- 定期备份etcd(使用etcdctl snapshot save),配置Velero实现应用级容灾。
-
监控告警:
- 部署Prometheus-Operator+AlertManager,配置关键指标(API Server延迟、节点状态)告警。
验证命令:
kubectl get nodes -o wide
kubectl get componentstatuses
kubectl -n kube-system get pods