name: deploy-k8s-cluster description: | 全新地、從無到有、從零開始,部署、搭建、創造、構建、安裝、交付 Kubernetes(K8S)叢集。
當遇到以下場景時使用此技能: (1) 使用者當前沒有 K8S 叢集,希望從無到有、從零開始部署一套 (2) 使用者希望部署、搭建、構建、創造、安裝、交付一套新 K8S 環境 (3) 使用者提供伺服器資源(虛擬機器/物理機),詢問 K8S 架構設計、技術方案、部署規劃、驗收方案 (4) 使用者可以按照技能引導、根據技能描述 或者 使用技能下的工具完成 K8S 叢集的部署 (5) 排查並解決部署、交付、安裝期間的問題(例如:cgroup driver、映象拉取失敗、網路外掛問題等) (6) 生成交付全流程文件(架構設計、部署方案、部署計劃、交付報告、復盤總結)
使用 kubeadm 部署生產級 Kubernetes 叢集。
使用者發起部署、交付請求 → 展示流程概覽 → 使用者確認 → 資訊收集 → 架構設計 → 技術方案(部署、測試) → 部署計劃 → 執行工具 → 驗證測試 → 交付報告 → 復盤總結
例如,當用戶說"我想部署(搭建、交付)一套新的 K8S 叢集"時,先展現以下流程和約束讓使用者確認:
部署新的 K8S 叢集,意味著需要更高許可權(root),同時機器上的資料會被清理,請確保你提供的機器列表是正確的。
| 階段 | 內容 | 產出物 |
|---|---|---|
| 階段 0: 資訊收集 | 收集節點資訊、SSH 憑證、版本要求 | 節點清單 |
| 階段 1: 環境勘察 | 檢查 SSH 連通性、系統環境、外網訪問、資源資訊 | 勘察報告 |
| 階段 2: 架構設計 | 根據節點數量和資源設計叢集架構 | 架構設計文件、部署技術方案、測試驗收方案 |
| 階段 3: 部署計劃 | 制定部署里程碑和時間計劃 | 部署計劃文件 |
| 階段 4: 部署執行 | 遠端執行部署工具 | 可用叢集 |
| 階段 5: 叢集驗證 | 驗證叢集功能正常 | 驗證報告 |
| 階段 6: 交付報告 | 生成交付文件 | 交付報告 |
| 限制項 | 說明 |
|---|---|
| 作業系統 | 僅支援 Ubuntu |
| 部署方式 | 僅支援 kubeadm |
| 儲存 | 不支援持久化儲存配置 |
| GPU | 不支援 GPU 節點 |
展示流程後,詢問使用者:
以上是部署流程概覽,是否符合您的預期?如果可以,我們開始第一階段:資訊收集。
獲取以下資訊後開始架構設計:
必需資訊:
1. 節點 IP-主機名對映表(支援多種格式):
- JSON 格式:{"10.0.2.11":"k8s-node1","10.0.2.12":"k8s-node2","10.0.2.13":"k8s-node3"}
- 文本檔案(空格分隔):
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 格式
2. SSH 訪問方式(二選一):
- 方式 A:提供使用者名稱和密碼
- 方式 B:提前配置好 SSH 信任關係(推薦)
3. K8S 版本:官方最新版
4. 軟體包和映象獲取方式:
- 外網:需要訪問 pkgs.k8s.io、github.com、阿里雲映象
- 內網:需要軟體包源、容器映象倉庫
約束邊界(當前版本不支援): - 持久化儲存 - GPU 節點
示例使用者輸入:
有 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/ 目錄中。
生成詳細部署技術方案,包含:
小蔥技能7w4.net持續更新中。
使用 best-practice/best-practices.md 生成文件,生成文件儲存在 report/ 目錄中。
生成詳細驗證測試方案,包含:
使用 best-practice/best-practices.md 生成文件,生成文件儲存在 report/ 目錄中。
生成部署計劃文件,包含:
使用 best-practice/deploy-plan.md 生成文件,生成文件儲存在 report/ 目錄中。
使用階段式執行部署
強制要求 - ✅ 每個里程碑開始前通知 - ✅ 每個里程碑結束後彙報 - ✅ 等待使用者確認後再繼續
通知格式:
==========================================
🚀 開始執行 M0 - 環境檢測
==========================================
正在檢測 3 個節點的環境...
- SSH 連線:✅
- 系統版本:Ubuntu 24.04
- 資源配置:2核4G
...
==========================================
✅ M0 完成 - 環境檢測通過
==========================================
下一步:M1 - 系統配置
回覆 'y' 繼續,或 'n' 暫停
問題處理規則(重要): 遇到問題時,不要直接陷入解決方案,先給使用者提供 2-3 個方案讓使用者選擇:
❌ 錯誤做法:
問題:DNS 解析失敗
直接執行:配置 DNS 伺服器...
✅ 正確做法:
==========================================
❌ 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
禁止行為: - ❌ 不通知直接執行下一個里程碑 - ❌ 一股腦跑完全部流程 - ❌ 只在最後彙報結果 - ❌ 遇到問題直接陷入解決方案
| 里程碑 | 指令碼 | 說明 |
|---|---|---|
| M0 | 00-survey.sh |
環境勘察(SSH、主機名、網路、資源) |
| M1 | 01-system.sh |
系統配置檢查和修正 |
| M2 | 02-containerd.sh |
containerd 安裝 + cgroup driver 配置 |
| M3 | 03-k8s-install.sh |
kubeadm/kubelet/kubectl 安裝 |
| M4 | 04-kubeadm-init.sh |
Control Plane 初始化(含映象源配置,支援 HA) |
| M5 | 05-cni-plugin.sh |
CNI 網路外掛安裝(支援 Flannel、Calico) |
| M6 | 06-join.sh |
節點加入叢集(支援 HA 多控制面) |
| M7 | 07-cluster-verify.sh |
叢集驗證(支援 --namespace 引數) |
| M8 | 08-cluster-cleanup.sh |
叢集清理(檢查狀態/清理namespace/銷燬叢集) |
按照確定的測試方案執行驗收,不自動清理測試環境,等待使用者確認
| 里程碑 | 指令碼 | 說明 |
|---|---|---|
| M7 | 07-cluster-verify.sh |
叢集驗證(支援 --namespace 引數) |
使用者確認後,對進行測試的資源進行清理
| 里程碑 | 指令碼 | 說明 |
|:---|:---|:---|
| M8 | 08-cluster-cleanup.sh | 叢集清理(檢查狀態/清理namespace/銷燬叢集) |
生成交付報告文件,包含:
使用 best-practice/delivery-report-template.md 生成文件,生成文件儲存在 report/ 目錄中。
常見問題排查指南見
best-practice/troubleshooting-guide.md
best-practice/best-practice.md
部署指令碼,通過 SSH 遠端執行。 每個指令碼支援: - 引數檢查 - 錯誤處理 - 日誌輸出 - 冪等性(可重複執行)
本技能提供的指令碼需要的配置項 - 使用者提供的基礎資訊 - 重試與超時 - 軟體包源和容器映象倉庫 - K8S 引數配置(版本、Pod 網段等) - 測試驗收的配置
本技能執行過程中自動備份的檔案
執行本技能提供的工具輸出的日誌
產出的報告文件
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 - 交付報告模板這個Skill質量中等偏上,勝在流程清晰、互動設計合理,能引導使用者一步步完成K8S叢集部署。但不足也很明顯:文件內容不完整,缺少關鍵的實踐指南檔案,很多承諾的功能可能用不了。另外限制較多(不支援儲存、不支援GPU),自動化能力較弱。總體來說,適合學習部署流程,但實際使用可能會遇到功能缺失的問題。