使用 kubeadm 部署生产级 Kubernetes 集群。
text
用户发起部署、交付请求 → 展示流程概览 → 用户确认 → 信息收集 → 架构设计 → 技术方案(部署、测试) → 部署计划 → 执行工具 → 验证测试 → 交付报告 → 复盘总结
例如,当用户说"我想部署(搭建、交付)一套新的 K8S 集群"时,先展现以下流程和约束让用户确认:
部署新的 K8S 集群,意味着需要更高权限(root),同时机器上的数据会被清理,请确保你提供的机器列表是正确的。
阶段内容产出物阶段 0: 信息收集收集节点信息、SSH 凭证、版本要求节点清单阶段 1: 环境勘察检查 SSH 连通性、系统环境、外网访问、资源信息勘察报告阶段 2: 架构设计根据节点数量和资源设计集群架构架构设计文档、部署技术方案、测试验收方案阶段 3: 部署计划制定部署里程碑和时间计划部署计划文档阶段 4: 部署执行远程执行部署工具可用集群阶段 5: 集群验证验证集群功能正常验证报告阶段 6: 交付报告生成交付文档交付报告
限制项说明操作系统仅支持 Ubuntu部署方式仅支持 kubeadm存储不支持持久化存储配置GPU不支持 GPU 节点
展示流程后,询问用户:
以上是部署流程概览,是否符合您的预期?如果可以,我们开始第一阶段:信息收集。
获取以下信息后开始架构设计:
必需信息:
节点 IP-主机名映射表(支持多种格式):
JSON 格式: {"10.0.2.11":"k8s-node1","10.0.2.12":"k8s-node2","10.0.2.13":"k8s-node3"}
文本文件(空格分隔): text
10.0.2.11 k8s-node1
10.0.2.12 k8s-node2
10.0.2.13 k8s-node3
CSV 文件: 10.0.2.11,k8s-node1
表格形式:直接粘贴表格
AI 会自动解析并转换成 JSON 格式
SSH 访问方式(二选一):
K8S 版本:官方最新版
软件包和镜像获取方式:
约束边界(当前版本不支持):
示例用户输入:
text
有 3 台虚拟机:
- 10.0.2.7 (Control Plane)
- 10.0.2.8 (Worker)
- 10.0.2.9 (Worker)
SSH: worker/work@123
K8S 版本:官方最新版本(v1.35)
根据用户提供的信息,进行环境勘察 主要检查点: SSH 登录验证 主机名 账户权限是否满足 资源是否符合信息 K8S部署前置检查
勘察报告用途 1,返回给用户确认 2,收集的信息用来做架构、部署方案的设计
生成架构设计文档,包含:
使用 best-practice/best-practices.md 生成文档,生成文件保存在 report/ 目录中。
生成详细部署技术方案,包含:
使用 best-practice/best-practices.md 生成文档,生成文档保存在 report/ 目录中。
生成详细验证测试方案,包含:
使用 best-practice/best-practices.md 生成文档,生成文档保存在 report/ 目录中。
生成部署计划文档,包含:
使用 best-practice/deploy-plan.md 生成文档,生成文档保存在 report/ 目录中。
使用阶段式执行部署
强制要求
通知格式:
text
==========================================
🚀 开始执行 M0 - 环境检测
==========================================
正在检测 3 个节点的环境...
- SSH 连接:✅
- 系统版本:Ubuntu 24.04
- 资源配置:2核4G
...
==========================================
✅ M0 完成 - 环境检测通过
==========================================
下一步:M1 - 系统配置
回复 'y' 继续,或 'n' 暂停
问题处理规则(重要): 遇到问题时, 不要直接陷入解决方案,先给用户提供 2-3 个方案让用户选择:
text
❌ 错误做法:
问题:DNS 解析失败
直接执行:配置 DNS 服务器...
text
✅ 正确做法:
==========================================
❌ M3 遇到问题 - DNS 解析失败
==========================================
错误:curl: (6) Could not resolve host: pkgs.k8s.io
可能的原因:
1. DNS 服务器未配置
2. 网络隔离(无法访问外网)
3. 防火墙限制
解决方案:
A. 配置 DNS 服务器(推荐)
- 配置 8.8.8.8 或 114.114.114.114
- 预计耗时:1-2 分钟
B. 使用离线安装包
- 需要提前下载 K8S 安装包
- 适合内网环境
C. 跳过此步骤,稍后手动安装
- 你可以自己配置网络后继续
请选择:A / B / C
禁止行为:
里程碑脚本说明M000-survey.sh环境勘察(SSH、主机名、网络、资源)M101-system.sh系统配置检查和修正M202-containerd.shcontainerd 安装 + cgroup driver 配置M303-k8s-install.shkubeadm/kubelet/kubectl 安装M404-kubeadm-init.shControl Plane 初始化(含镜像源配置,支持 HA)M505-cni-plugin.shCNI 网络插件安装(支持 Flannel、Calico)M606-join.sh节点加入集群(支持 HA 多控制面)M707-cluster-verify.sh集群验证(支持 --namespace 参数)M808-cluster-cleanup.sh集群清理(检查状态/清理namespace/销毁集群)
按照确定的测试方案执行验收,不自动清理测试环境,等待用户确认
里程碑脚本说明M707-cluster-verify.sh集群验证(支持 --namespace 参数)
用户确认后,对进行测试的资源进行清理
里程碑脚本说明M808-cluster-cleanup.sh集群清理(检查状态/清理namespace/销毁集群)
生成交付报告文档,包含:
使用 best-practice/delivery-report-template.md 生成文档,生成文档保存在 report/ 目录中。
常见问题排查指南见
best-practice/troubleshooting-guide.md best-practice/best-practice.md
部署脚本,通过 SSH 远程执行。 每个脚本支持:
本技能提供的脚本需要的配置项
本技能执行过程中自动备份的文件
执行本技能提供的工具输出的日志
产出的报告文档
best-practices.md - 最佳实践总结architecture-design-template.md - 架构设计模板troubleshooting-guide.md - 常见问题排查指南deploy-action-template.md - 部署方案模板deployment-plan-template.md - 部署计划模板check-testing-template.md - 测试验收模板delivery-report-template.md - 交付报告模板