deploy-k8s-cluster

👤 t2phage 📦 v1.0.0 ⭐ 4.2 ⬇️ 722 下載
🔒 IT運維與安全 免費

📖 技能介紹


name: deploy-k8s-cluster description: | 全新地、從無到有、從零開始,部署、搭建、創造、構建、安裝、交付 Kubernetes(K8S)叢集。

當遇到以下場景時使用此技能: (1) 使用者當前沒有 K8S 叢集,希望從無到有、從零開始部署一套 (2) 使用者希望部署、搭建、構建、創造、安裝、交付一套新 K8S 環境 (3) 使用者提供伺服器資源(虛擬機器/物理機),詢問 K8S 架構設計、技術方案、部署規劃、驗收方案 (4) 使用者可以按照技能引導、根據技能描述 或者 使用技能下的工具完成 K8S 叢集的部署 (5) 排查並解決部署、交付、安裝期間的問題(例如:cgroup driver、映象拉取失敗、網路外掛問題等) (6) 生成交付全流程文件(架構設計、部署方案、部署計劃、交付報告、復盤總結)

適用範圍:基於 kubeadm 的 Ubuntu 叢集部署。不支援 k3s、託管 K8S(EKS/AKS/TKE)、CentOS/RHEL。

K8S 叢集部署技能

使用 kubeadm 部署生產級 Kubernetes 叢集。

Workflow Overview

使用者發起部署、交付請求 → 展示流程概覽 → 使用者確認 → 資訊收集 → 架構設計 → 技術方案(部署、測試) → 部署計劃 → 執行工具 → 驗證測試 → 交付報告 → 復盤總結

流程概覽

例如,當用戶說"我想部署(搭建、交付)一套新的 K8S 叢集"時,先展現以下流程和約束讓使用者確認:


⚠️ 重要提示

部署新的 K8S 叢集,意味著需要更高許可權(root),同時機器上的資料會被清理,請確保你提供的機器列表是正確的。


部署流程

階段 內容 產出物
階段 0: 資訊收集 收集節點資訊、SSH 憑證、版本要求 節點清單
階段 1: 環境勘察 檢查 SSH 連通性、系統環境、外網訪問、資源資訊 勘察報告
階段 2: 架構設計 根據節點數量和資源設計叢集架構 架構設計文件、部署技術方案、測試驗收方案
階段 3: 部署計劃 制定部署里程碑和時間計劃 部署計劃文件
階段 4: 部署執行 遠端執行部署工具 可用叢集
階段 5: 叢集驗證 驗證叢集功能正常 驗證報告
階段 6: 交付報告 生成交付文件 交付報告

當前版本約束

限制項 說明
作業系統 僅支援 Ubuntu
部署方式 僅支援 kubeadm
儲存 不支援持久化儲存配置
GPU 不支援 GPU 節點

使用者確認

展示流程後,詢問使用者:

以上是部署流程概覽,是否符合您的預期?如果可以,我們開始第一階段:資訊收集。


Step 0: 資訊收集

獲取以下資訊後開始架構設計:

必需資訊: 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)

Step 1: 環境勘察

根據使用者提供的資訊,進行環境勘察 主要檢查點: SSH 登入驗證 主機名 賬戶許可權是否滿足 資源是否符合資訊 K8S部署前置檢查

勘察報告用途 1,返回給使用者確認 2,收集的資訊用來做架構、部署方案的設計

Step 2: 架構設計

生成架構設計文件,包含:

  1. 叢集拓撲:節點角色、IP 分配、網路規劃

    7w4.net小蔥技能站收錄全網優質技能,值得收藏。

  2. 元件版本:K8S、containerd、CNI 外掛版本
  3. 資源規劃:節點資源分配、Pod 網段、Service 網段
  4. 映象源配置:國內環境映象加速方案

使用 best-practice/best-practices.md 生成文件,生成檔案儲存在 report/ 目錄中。

生成詳細部署技術方案,包含:

  1. 檢查並修復系統配置
  2. 檢查並安裝 containerd
  3. 檢查並安裝 K8S 元件
  4. 初始化 K8S 控制面
  5. 安裝 CNI 外掛
  6. 加入節點

使用 best-practice/best-practices.md 生成文件,生成文件儲存在 report/ 目錄中。

生成詳細驗證測試方案,包含:

  1. 檢查叢集狀態:節點標籤、系統 Pod、CNI 外掛;如果是 HA 驗證 etcd 同步等
  2. 測試應用部署:nginx、busybox
  3. 測試網路狀態:DNS 解析、Service 功能、應用部署訪問等
  4. 測試儲存:emptyDir;目前不支援 PVC

使用 best-practice/best-practices.md 生成文件,生成文件儲存在 report/ 目錄中。

Step 3: 部署計劃

生成部署計劃文件,包含:

  1. 部署里程碑:各階段目標
  2. 依賴檢查清單:系統要求、網路要求、資源要求
  3. 風險評估:可能的問題和應對方案
  4. 回滾方案:失敗時的清理和重置步驟

使用 best-practice/deploy-plan.md 生成文件,生成文件儲存在 report/ 目錄中。

Step 4: 部署執行

使用者確認

使用階段式執行部署

互動規則(重要)

強制要求 - ✅ 每個里程碑開始前通知 - ✅ 每個里程碑結束後彙報 - ✅ 等待使用者確認後再繼續

通知格式

==========================================
🚀 開始執行 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/銷燬叢集)

Step 5: 驗證測試

按照確定的測試方案執行驗收,不自動清理測試環境,等待使用者確認

里程碑 指令碼 說明
M7 07-cluster-verify.sh 叢集驗證(支援 --namespace 引數)

測試資源清理

使用者確認後,對進行測試的資源進行清理 | 里程碑 | 指令碼 | 說明 | |:---|:---|:---| | M8 | 08-cluster-cleanup.sh | 叢集清理(檢查狀態/清理namespace/銷燬叢集) |

Step 6: 交付報告

生成交付報告文件,包含:

  1. 部署概況:叢集版本、節點資訊、元件版本
  2. 部署耗時: 各大階段、子階段耗時、階段結果(與計劃相比)
  3. 驗證結果:各項測試的結果
  4. 後續建議:監控、備份、升級建議

使用 best-practice/delivery-report-template.md 生成文件,生成文件儲存在 report/ 目錄中。

Troubleshooting

常見問題排查指南見 best-practice/troubleshooting-guide.md best-practice/best-practice.md

Resources

bin/

部署指令碼,通過 SSH 遠端執行。 每個指令碼支援: - 引數檢查 - 錯誤處理 - 日誌輸出 - 冪等性(可重複執行)

conf/

本技能提供的指令碼需要的配置項 - 使用者提供的基礎資訊 - 重試與超時 - 軟體包源和容器映象倉庫 - K8S 引數配置(版本、Pod 網段等) - 測試驗收的配置

data/

本技能執行過程中自動備份的檔案

logs/

執行本技能提供的工具輸出的日誌

report/

產出的報告文件

best-practice/

  • 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 - 交付報告模板

🤖 AI 評測

這個Skill質量中等偏上,勝在流程清晰、互動設計合理,能引導使用者一步步完成K8S叢集部署。但不足也很明顯:文件內容不完整,缺少關鍵的實踐指南檔案,很多承諾的功能可能用不了。另外限制較多(不支援儲存、不支援GPU),自動化能力較弱。總體來說,適合學習部署流程,但實際使用可能會遇到功能缺失的問題。

📊 多維度評分

適應性4.7
規範性3.9
有效性4.2
可靠性4.2
可信度4.8

📁 包含檔案 (2 個)

📄 SKILL.md 9.9 KB
📄 _meta.json 137 B