自动化完成 BOC容器平台 的部署阶段(配置文件生成 → 部署执行 → 状态验证)。
参数说明必填示例deploy_server_ip部署机IP是10.50.6.181ssh_portSSH端口否22ssh_userSSH用户名是rootssh_passwordSSH密码是Passwordci_ipCI节点IP是10.50.6.182node_ipsBOC节点IP列表(逗号分隔)是10.50.6.183,10.50.6.184,10.50.6.185master_vipK8s Master VIP是10.50.6.186cni_typeCNI类型否ipip (默认) 或 bgpk8s_versionKubernetes版本否1.33.1 (默认)
角色说明deploy_server部署机pipelineCI节点chartmuseumChart仓库docker_registryDocker镜像仓库nfs_serverNFS存储masterK8s master节点etcdetcd节点db数据库节点nodeK8s worker节点
验证方法:在部署机上执行以下命令检查容器状态:
bash
nerdctl -n k8s.io ps -a
预期结果:应看到两个运行中的容器
yum_registry - 运行中bocloud_deploy_registry_k8s - 运行中如果容器未运行,需要先用skill boc-init 进行初始化:
bash
cd /opt/BOC_k8s_noarch
./bocctl init
根据输入参数生成 config.yaml,包含:
配置文件示例:
高可用部署示例文件: /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
bash
cd /opt/BOC_k8s_noarch
nohup ./bocctl run -a install -c /root/config.yaml > log/bocctl.log 2>&1 &
部署过程约 40-60 分钟。
每5分钟检查一次进度:
bash
# 检查进程数
ps aux | grep -E "bocctl|ansible" | grep -v grep | wc -l
# 查看日志
tail -100 /opt/BOC_k8s_noarch/log/bocctl.log
直接连接 master 节点验证
bash
# 从本机直接连接 master 节点
ssh root@<master节点IP>
# 检查节点状态
kubectl get nodes
# 检查 Pod 状态
kubectl get pods -A
预期结果:
ReadyRunning使用浏览器访问:
text
http://<master_vip>:30001
常用服务端口:
服务地址BOC Portalhttp://<master_vip>:30001K8s API Serverhttps://<master_vip>:6443Grafanahttp://<master_vip>:30902Prometheushttp://<master_vip>:30909
text
请使用 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 节点验证
A: 检查具体 Pod 状态 kubectl describe pod <pod-name> -n <namespace>
A: 检查 kube-proxy 和 bocloud 组件是否正常运行