name: boc-deploy description: 博雲BOC容器平臺 部署工具。根據部署規劃資訊自動生成配置檔案並執行部署。使用場景:使用者需要部署 BOC容器平臺時使用,包括生成 config.yaml、執行 bocctl run、監控部署狀態。 version: 1.0.1 icon: 🚀
自動化完成 BOC容器平臺 的部署階段(配置檔案生成 → 部署執行 → 狀態驗證)。
| 引數 | 說明 | 必填 | 示例 |
|---|---|---|---|
| deploy_server_ip | 部署機IP | 是 | 10.50.6.181 |
| ssh_port | SSH埠 | 否 | 22 |
| ssh_user | SSH使用者名稱 | 是 | root |
| ssh_password | SSH密碼 | 是 | Password |
| ci_ip | CI節點IP | 是 | 10.50.6.182 |
| node_ips | BOC節點IP列表(逗號分隔) | 是 | 10.50.6.183,10.50.6.184,10.50.6.185 |
| master_vip | K8s Master VIP | 是 | 10.50.6.186 |
| cni_type | CNI型別 | 否 | ipip (預設) 或 bgp |
| k8s_version | Kubernetes版本 | 否 | 1.33.1 (預設) |
| 角色 | 說明 |
|---|---|
| deploy_server | 部署機 |
| pipeline | CI節點 |
| chartmuseum | Chart倉庫 |
| docker_registry | Docker映象倉庫 |
| nfs_server | NFS儲存 |
| master | K8s master節點 |
| etcd | etcd節點 |
| db | 資料庫節點 |
| node | K8s worker節點 |
驗證方法:在部署機上執行以下命令檢查容器狀態:
nerdctl -n k8s.io ps -a
預期結果:應看到兩個執行中的容器
- yum_registry - 執行中
- bocloud_deploy_registry_k8s - 執行中
如果容器未執行,需要先用skill boc-init 進行初始化:
cd /opt/BOC_k8s_noarch
./bocctl init
根據輸入引數生成 config.yaml,包含:
- 節點配置(IP、埠、使用者、密碼、角色)
- VIP配置
- NFS配置
- 容器執行時配置
- Kubernetes版本
- 資料庫配置
- 網路配置(calico ipip/bgp)
- BOC Portal元件配置
配置檔案示例:
高可用部署示例檔案: /opt/BOC_k8s_noarch/playbooks/examples/config/install_portal_HA.yaml ALLINONE 部署示例檔案: /opt/BOC_k8s_noarch/playbooks/examples/config/install_portal_allinone.yaml
將生成的 config.yaml 上傳到部署機的 /root/config.yaml
cd /opt/BOC_k8s_noarch
nohup ./bocctl run -a install -c /root/config.yaml > log/bocctl.log 2>&1 &
部署過程約 40-60 分鐘。
每5分鐘檢查一次進度:
# 檢查程序數
ps aux | grep -E "bocctl|ansible" | grep -v grep | wc -l
# 檢視日誌
tail -100 /opt/BOC_k8s_noarch/log/bocctl.log
直接連線 master 節點驗證
# 從本機直接連線 master 節點
ssh root@<master節點IP>
# 檢查節點狀態
kubectl get nodes
# 檢查 Pod 狀態
kubectl get pods -A
預期結果:
- 所有節點狀態為 Ready
- 所有 Pod 狀態為 Running
使用瀏覽器訪問:
http://<master_vip>:30001
常用服務埠:
| 服務 | 地址 |
|------|------|
| BOC Portal | http://
請使用 boc-deploy 部署 BOC容器平臺:
- 部署機IP:10.50.6.181
- SSH使用者:root
- SSH密碼:Password
- CI節點IP:10.50.6.182
- BOC節點IP:10.50.6.183,10.50.6.184,10.50.6.185
- VIP:10.50.6.186
- CNI型別:ipip
nerdctl 容器已執行A: 可能 SSH 互信未配置完成,直接從本機使用密碼連線 master 節點驗證
小蔥技能有更好的技能skills外掛。
A: 檢查具體 Pod 狀態 kubectl describe pod <pod-name> -n <namespace>
A: 檢查 kube-proxy 和 bocloud 元件是否正常執行
這個部署工具的文件寫得比較詳細,包含了完整的操作步驟和常見問題解答,但對於普通使用者來說實際幫助有限。主要問題是所有操作都需要手動執行,沒有自動化指令碼或智慧化的部署功能,用起來比較繁瑣。需要有一定技術基礎才能使用。文件本身質量不錯,但作為工具來說缺少核心的自動化能力。