微服务部署(三):docker主节点和子节点建立集群
建立一个主节点master和一个子节点worker
参考网址:
docker swarm init --advertise-addr <MANAGER-IP>
尖括号代表必填变量,那里写主节点IP
2.返回的这一段粘贴到子节点,(别把这段代码弄丢了)
在子节点woker上粘贴主节点上执行
docker swarm init --advertise-addr <MANAGER-IP> 命令返回的代码:
docker swarm join --token SWMTKN-1-3am3wntdjn48mhej32uoq5by0na0y96dem8hxbanzjmt5uh9gg-9ao76uxxcqjhgmoi3vbgxa8sg 192.168.0.55:2377
注意:192.168.0.55:2377应该是主节点的ip,如果不是,说明主节点的swarm IP设置错了,需要解散主节点的集群,重新创建集群
(1)排空节点上的集群容器
docker node update --availability drain g36lvv23ypjd8v7ovlst2n3yt
(2)主动离开集群,让节点处于down状态,才能删除
docker swarm leave
(3)删除指定节点
docker node rm g36lvv23ypjd8v7ovlst2n3yt
(4)管理节点,解散集群
docker swarm leave --force
3. 在主节点上运行 docker node list
说明主节点和子节点已经放在一个集群里了。
下面是部署 teamcity-server 和 teamcity-agent:
在主节点上这个位置新建devops文件夹,放入自己命名的.yml文件
version: '3' services: db: image: mysql:8 environment: - MYSQL_ROOT_PASSWORD=teamcity volumes: - mysql:/var/lib/mysql deploy: restart_policy: condition: any placement: constraints: [ node.role == manager] server: image: jetbrains/teamcity-server:2021.1.4 user: '0' ports: - "8111:8111" volumes: - teamcity_server:/data/teamcity_server/datadir deploy: restart_policy: condition: any placement: constraints: [ node.role == manager] agent: image: jetbrains/teamcity-agent:2021.1.4 user: '0' volumes: - teamcity_agent:/data/teamcity_agent/conf - /var/run/docker.sock:/var/run/docker.sock - /opt/buildagent/work:/opt/buildagent/work - /opt/buildagent/temp:/opt/buildagent/temp - /opt/buildagent/tools:/opt/buildagent/tools - /opt/buildagent/plugins:/opt/buildagent/plugins - /opt/buildagent/system:/opt/buildagent/system environment: - SERVER_URL=http://server:8111 deploy: restart_policy: condition: any placement: constraints: [ node.role == manager] volumes: mysql: teamcity_server: teamcity_agent:
3. 去到目录/opt中,创建相应文件夹
cd /opt
sudo mkdir buildagent
4. 给用户权限
sudo chown -R $USER .
5. 创建相关文件夹
cd buildagent/
sudo mkdir work temp tools plugins system
7. 去devops下,执行相关操作
cd /home/syy/devops
docker stack deploy devops --compose-file docker-compose.yml
7.执行后,查看是否成功
docker service ls 查看运行的服务
如果有没起来的服务,可查看状态
docker stack ps devops
8.三个服务都起来后,teamcity安装完成.
访问你的虚拟机地址(端口为8111),即可看到teamcity的页面,进行teamcity的配置使用了。
然后进入devops文件夹执行:
docker stack deploy devops --compose-file docker-compose.yml
会出现界面
docker stack ps devops
用这个命令查看下载进度
下载完成后,用命令 docker node ls命令查看三个服务是否都启动了.
另外:如果不能自动下载,就手动pull一下,命令:
docker pull jetbrains/teamcity-server
docker pull jetbrains/teamcity-agent