微服务部署(三):docker主节点和子节点建立集群

建立一个主节点master和一个子节点worker

参考网址:

https://docs.docker.com/engine/swarm/swarm-tutorial/create-swarm/
1.主节点master上运行
 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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2021-12-29 15:31  伊娜陈  阅读(627)  评论(0编辑  收藏  举报