somcli 是一个容器集群管理工具,支持 Docker Swarm 和 Kubernetes 两种主流容器编排系统的部署与管理。
# 下载并安装 somcli
curl -L https://github.com/structure-projects/somcli/install.sh | bash
- 准备配置文件
my-cluster.yaml (参考第 4 章配置模板)
- 执行部署命令:
somcli cluster create -f my-cluster.yaml
| 命令 |
功能描述 |
常用参数 |
cluster deploy |
部署新集群 |
-f 指定配置文件
--offline 离线模式 |
cluster remove |
销毁集群 |
-f 指定配置文件
--force 强制删除 |
cluster:
type: "swarm"
name: "my-swarm"
nodes:
- host: "swarm-mgr-01"
ip: "192.168.1.100"
role: "manager"
sshKey: "~/.ssh/id_rsa"
swarmConfig:
advertiseAddr: "192.168.1.100" # 管理节点广播地址
listenAddr: "0.0.0.0:2377" # 监听地址
defaultAddrPool: # 地址池配置
- "10.20.0.0/16"
subnetSize: 24 # 子网大小
dataPathPort: 4789 # 数据通道端口
cluster:
type: "k8s"
name: "my-k8s"
nodes:
- host: "k8s-master"
ip: "192.168.1.200"
role: "master"
sshKey: "~/.ssh/id_rsa"
k8sConfig:
version: "1.25.0" # Kubernetes版本
podNetworkCidr: "10.244.0.0/16" # Pod网络CIDR
serviceCidr: "10.96.0.0/12" # Service网络CIDR
- 为 manager/master 节点配置高可用(至少 3 节点)
- 使用离线模式部署保障稳定性 (
--offline)
- 提前进行环境预检查 (
precheck)
# 使用SSH别名简化配置
nodes:
- host: "mgr01" # 对应 ~/.ssh/config 中的主机别名
role: "manager"
# 复用SSH密钥
sshKey: "/shared/ssh/cluster-key" # 所有节点共用密钥
- 检查节点 SSH 连通性
| 错误现象 |
解决方案 |
| "SSH connection failed" |
检查 sshKey 路径和权限 |
| "Port already in use" |
修改 swarmConfig 中的端口配置 |
| "Insufficient memory" |
增加节点资源或调整配置 |
| somcli 版本 |
Docker 版本 |
Kubernetes 版本 |
| v1.0+ |
20.10+ |
1.23-1.25 |
# 查看完整帮助
somcli --help
# 获取特定命令帮助
somcli cluster --help