关键步骤说明
环境准备阶段
- 系统更新:所有节点执行
yum/apt update
确保软件包最新 - 时间同步:通过
ntpdate time.windows.com
或部署NTP服务器 - 网络规划:明确划分Service网段(默认10.96.0.0/12)和Pod网段(如Flannel使用10.244.0.0/16)
- 系统更新:所有节点执行
节点初始化细节
- 关闭Swap分区:临时
swapoff -a
并永久注释/etc/fstab
中的swap条目 - 主机名配置:主节点命名为k8s-master{1,2,3},从节点命名为k8s-node{1-5}
- sysctl配置:启用网桥过滤功能,执行
sysctl --system
生效
- 关闭Swap分区:临时
组件安装优化
- Docker配置:使用阿里云镜像加速,修改
/etc/docker/daemon.json
- kubeadm版本控制:指定安装v1.18.0等稳定版本,避免使用edge版本
- 启动kubelet:
systemctl enable --now kubelet
确保开机启动
- Docker配置:使用阿里云镜像加速,修改
控制平面初始化
- 主节点1执行:
kubeadm init \ --apiserver-advertise-address=192.168.72.131 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.18.0 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16
- 主节点2/3加入命令:
kubeadm join 192.168.72.131:6443 \ --token n0nyws.8j0mkjbfwk16adai \ --discovery-token-ca-cert-hash sha256:xxx
- 主节点1执行:
网络插件部署
- Calico安装:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- 负载均衡配置示例(HAProxy):
frontend k8s-api bind *:6443 default_backend k8s-master-nodes backend k8s-master-nodes balance roundrobin server master1 192.168.72.131:6443 check server master2 192.168.72.132:6443 check server master3 192.168.72.133:6443 check
- Calico安装:
安全与监控增强
- RBAC配置:创建ServiceAccount并绑定ClusterRole
- Pod安全策略:通过
kubectl apply -f psp.yaml
启用 - 监控部署:使用kube-prometheus-stack Helm Chart安装
验证检查清单
- 节点状态检查:
kubectl get nodes -o wide
- 组件状态检查:
kubectl get pods -n kube-system
- 网络连通性测试:部署busybox Pod执行跨节点ping
- 高可用验证:模拟主节点故障,检查VIP漂移和服务连续性
该流程图在保持原有架构基础上,细化了环境准备、版本控制、网络配置、安全加固等生产环境关键要素,建议在实际部署时根据具体硬件配置和网络环境进行参数调整。