Azure容器服务创建Docker Swarm后,如何连接代理节点并初始化集群?
我来帮你搞定连接Swarm代理节点的问题,你遇到的情况其实挺普遍的,咱们一步步来解决:
连接Swarm缩放集代理节点并加入集群的步骤
1. 先拿到代理节点的可访问IP
你之前用实例名称swarm-agentpool-1606...连不上,核心原因是本地DNS没法解析这个云平台内部的实例名,所以得先获取代理节点的公网IP或者私有IP(如果主节点和代理节点在同一个虚拟网络里,私有IP也能用来SSH):
- 直接登录你的云平台控制台,找到容器服务的缩放集,点开每个代理节点的详情页,就能看到对应的IP地址;
- 也可以用云平台的CLI工具批量获取,比如Azure的话,执行这条命令就能列出所有实例的名称和公网IP:
az vmss list-instances --resource-group <你的资源组名称> --name <缩放集名称> --query "[].{name:name, publicIp:publicIpAddresses[0].ipAddress}"
2. 用IP地址SSH连接代理节点
拿到IP后,用Git Bash连接的命令和你连主节点几乎一样:
- 密码登录方式:
ssh moconnor@<代理节点的公网/私有IP> - 密钥登录(更安全,也是云平台推荐的方式):
ssh -i <你的私钥文件路径> moconnor@<代理节点的公网/私有IP>
3. 把代理节点加入Swarm集群
成功连上代理节点后,先回到主节点的SSH终端,获取Swarm Worker节点的加入命令:
docker swarm join-token worker
复制输出里的完整命令(格式大概是docker swarm join --token <一串长token> <主节点IP>:2377),然后在每个代理节点的终端里执行这条命令,就能把节点加入到Swarm集群了。
小技巧:批量操作省时间
如果有多个代理节点,不想手动一个个连,可以写个简单的脚本批量执行加入命令(前提是先配置主节点和代理节点之间的免密SSH登录):
# 把你的代理节点IP填到这个数组里 AGENT_IPS=("192.168.1.101" "192.168.1.102") # 从主节点获取Swarm加入命令 JOIN_CMD=$(ssh moconnor@<主节点IP> "docker swarm join-token worker | grep docker") # 循环遍历所有代理节点执行加入命令 for ip in "${AGENT_IPS[@]}"; do ssh moconnor@$ip "$JOIN_CMD" done
内容的提问来源于stack exchange,提问作者Konzy262
相关产品推荐
相关产品推荐

