zoukankan      html  css  js  c++  java
  • 测试环境docker-swarm安装部署

    测试环境swarm安装部署

    部署前增加监听docker2375端口

    centos 增加tcp监听端口

    修改/lib/systemd/system/docker.service sed -i ‘s/ExecStart=.*/ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -D -H tcp://0.0.0.0:2375/g‘ /lib/systemd/system/docker.service

    ExecStart=/usr/bin/dockerd

    修改为

    ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 --insecure-registry 172.28.2.2:4000

     

    ubuntu 16.04

    检查

    docker -H 127.0.0.1:2375 images

    配置

    service docker stop

    vim /etc/default/docker

    DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:2375 --insecure-registry 172.28.2.2:4000 --storage-driver=aufs"

     

    vim /lib/systemd/system/docker.service

    [Service]

    Type=notify

    # the default is not to use systemd for cgroups because the delegate issues still

    # exists and systemd currently does not support the cgroup feature set required

    # for containers run by docker

    EnvironmentFile=-/etc/default/docker

    ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS

    ExecReload=/bin/kill -s HUP $MAINPID

    systemctl daemon-reload

    service docker restart

     

    docker info 查看

     

    echo "nameserver 202.96.199.133" >> /etc/resolv.conf

     

    docker pull swarm

    1、docker swarm init --advertise-addr 21.1.7.1

    Swarm initialized: current node (8ibltkyaaokbc74rtxrjzw4u7) is now a manager.

     

    To add a worker to this swarm, run the following command:

     

    docker swarm join

    --token SWMTKN-1-0wpx9adiq0rtm3i4wnojmpsi2sxrdu3j631lywwf0imq7p93m0-1j4gjmk51kv7boicmsasl6lyo

    21.1.7.1:2377

     

    To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

     

    2、节点加入

    执行上述红色字体命令

    docker node ls

     

    3、节点删除

    docker swarm leave --help           //查看帮助

    docker swarm leave --force

    4、节点离线:再次修改为active状态(及将下线的节点再次上线)

    docker node update --availability drain node1

    上线

    docker node update --availability drain node1

     

    ---部署可视化界面

    manager-node节点(182.48.115.237)

    docker pull progrium/consul

    docker pull rethinkdb

    docker pull shipyard/shipyard

    ##docker pull dockerclub/shipyard

    docker pull gliderlabs/registrator

     

    node1和node2节点上

    docker pull progrium/consul

    docker pull gliderlabs/registrator

     

    2)启动consul

     

    manager-node节点 21.1.7.1

    docker run -d -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -p 8600:53 -p 8600:53/udp -h manager-node --restart=always --name=consul progrium/consul -server -bootstrap -ui-dir=/ui -advertise 21.1.7.1 -client 0.0.0.0

    删除consule命令(下面命令中的"consul"是启动consul命令中的--name后面的设置名)

    # docker rm -f consul

     

    node-pc2节点(21.1.7.2)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc2 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.7.2 -client 0.0.0.0

     

    node-pc3节点(21.1.7.3)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc3 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.7.3 -client 0.0.0.0

     

    3)安装Swarm+Shipyard

    ###英文版手动安装步骤,使用英文版安装,安装后,参考测试部定制shipyard 中文静态插件,进行汉化

    manager-node节点(21.1.7.1)

    docker run -d --restart=always --name shipyard-rethinkdb -p 18080:8080 rethinkdb

    docker run -d -p 3375:3375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 consul://21.1.7.1:8500

     

    docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.7.1:2375 consul://21.1.7.1:8500

     

    pc2节点(21.1.7.2)

    [root@node1 ~]# docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.7.2:2375 consul://21.1.7.1:8500

     

    若使用docker-machine安装的docker,使用了TLS验证,则通过下述命令创建manager-node he agent容器

    ##docker run -d --restart=always --name shipyard-rethinkdb -p 18080:8080 rethinkdb

    docker run -d -p 3376:3376 --restart=always -v /root/.docker/machine/certs:/certs:ro --name shipyard-swarm-manager2 swarm:latest manage --tlsverify --tlscacert=/certs/ca.pem --tlscert=/certs/cert.pem --tlskey=/certs/key.pem --host tcp://0.0.0.0:3376 consul://21.1.7.1:8500

     

     

    docker run -d --restart=always -v /etc/docker:/certs:ro --name shipyard-swarm-agent swarm:latest join --addr=21.1.8.3:2375 --discovery-opt kv.cacertfile=/certs/ca.pem --discovery-opt kv.certfile=/certs/server.pem --discovery-opt kv.keyfile=/certs/server-key.pem consul://21.1.7.1:8500

     

    可通过命令查看证书位置

    ps aux | grep docker

    https://docs.docker.com/swarm/discovery/#use-tls-with-distributed-keyvalue-discovery

     

    swarm join --advertise=<node_ip:2375> --discovery-opt kv.cacertfile=/path/to/mycacert.pem --discovery-opt kv.certfile=/path/to/mycert.pem --discovery-opt kv.keyfile=/path/to/mykey.pem consul://<consul_addr>/<optional path prefix>

     

    node2节点(21.1.9.1)

    [root@node2 ~]# docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.9.1:2375 consul://21.1.7.1:8500

     

    接着再回到manager-node节点上如下操作

    docker run -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8080:8080 shipyard/shipyard:latest    server -d tcp://swarm:3375

     

     

    若8080被占用,可通过下述方式删除相关进程,或修改上述8080端口

    netstat -tlnp | grep 8080

    tcp6 0 0 :::8080 :::* LISTEN 2123/java

    tcp6 0 0 :::18080 :::* LISTEN 21350/docker-proxy

    kill -9 2123

    ---------------------------------------------------

    ##中文版手动安装步骤(使用consule):中文版本较旧,不支持仓库v2,不执行

    docker pull dockerclub/shipyard:latest

    docker run -d --restart=always --name shipyard-rethinkdb -p 18080:8080 rethinkdb

    docker run -d -p 3375:3375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 consul://21.1.7.1:8500

     

    node1节点(21.1.8.3)

    [root@node1 ~]# docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.8.3:2375 consul://21.1.7.1:8500

     

    node2节点(21.1.9.1)

    [root@node2 ~]# docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.9.1:2375 consul://21.1.7.1:8500

     

    接着再回到manager-node节点上如下操作

    docker run -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8080:8080 dockerclub/shipyard:latest    server -d tcp://swarm:3375

    ###中文版deploy安装步骤(未使用consule,发现使用的为microbox/etcd:latest,端口4001):

    1.修改为下载中文镜像 wget https://shipyard-project.com/deploy grep -n shipyard:latest deploy sed -i 's/shipyard/shipyard:latest/dockerclub/shipyard:latest/g' deploy

    镜像名

    ##docker pull dockerclub/shipyard:latest

    2.修改端口 #确保8080端口没有被使用,否则要修改脚本 yum install -y net-tools netstat -tlnp | grep 8080 #修改脚本 grep -n 'PORT:-8080' deploy SHIPYARD_PORT=${PORT:-8080} 修改为 SHIPYARD_PORT=${PORT:-指定端口} #列 sed 's/PORT:-8080/PORT:-8090/g' deploy | grep "PORT:-8090"

    c.安装与删除

    #安装 sh deploy #删除 cat deploy | ACTION=remove bash

    d.访问shipyard

    浏览器输入:http://主机IP:8080 账号:admin 密码:shipyard

    #添加节点 curl https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://主服务器IP:4001 bash

    查看节点是否添加成功

     

    4registrator状态获取

     

    manager-node节点(21.1.7.1)

    [root@manager-node ~]# docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.7.1 consul://21.1.7.1:8500

     

    node1节点(21.1.7.2)

    [root@node1 ~]# docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.7.2 consul://21.1.7.1:8500

     

    node2节点(21.1.7.3)

    [root@node2 ~]# docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.7.3 consul://21.1.7.1:8500

     

    参数解释:

    -v /var/run/docker.sock:/tmp/docker.sock     映射docker的socket到container中的对应位置, 这样 registration 就能监控有哪些服务启动了.

    consul://localhost:8500 consul 绑定到本地的 consul 接口上

    -----------------------------------------

    -----------------------------------------

    5)总结节点执行步骤:

    1 加入节点

    docker swarm join

    --token SWMTKN-1-0wpx9adiq0rtm3i4wnojmpsi2sxrdu3j631lywwf0imq7p93m0-1j4gjmk51kv7boicmsasl6lyo

    21.1.7.1:2377

     

    docker pull progrium/consul

    docker pull gliderlabs/registrator

    docker pull swarm

    2 启动consul 

    node-pc2节点(21.1.7.2)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc2 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.7.2 -client 0.0.0.0

     

    node-pc3节点(21.1.7.3)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc3 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.7.3 -client 0.0.0.0

     

    node-pc4节点(21.1.8.1)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc4 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.8.1 -client 0.0.0.0

     

    node-pc5节点(21.1.8.2)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc5 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.8.2 -client 0.0.0.0

     

    node-pc6节点(21.1.8.3)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc6 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.8.3 -client 0.0.0.0

    node-pc7节点(21.1.9.1)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc7 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.9.1 -client 0.0.0.0

     

    node-pc8节点(21.1.9.2)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc8 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.9.2 -client 0.0.0.0

    node-pc9节点(21.1.9.3)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc9 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.9.3 -client 0.0.0.0

    node-pc10节点(21.1.10.1)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc10 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.10.1 -client 0.0.0.0

    node-pc11节点(21.1.10.2)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc11 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.10.2 -client 0.0.0.0

    node-pc12节点(21.1.10.3)

    docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc12 --name=consul progrium/consul -server  -join 21.1.7.1 -advertise 21.1.10.3 -client 0.0.0.0

     

    3创建平台agent容器

    manage-node

    docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.7.1:2375 consul://21.1.7.1:8500

    pc2

    docker run -d --restart=always --name shipyard-swarm-agent-pc2 swarm:latest join --addr 21.1.7.2:2375 consul://21.1.7.1:8500

    pc3

    docker run -d --restart=always --name shipyard-swarm-agent-pc3 swarm:latest join --addr 21.1.7.3:2375 consul://21.1.7.1:8500

    pc4

    docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.8.1:2375 consul://21.1.7.1:8500

    pc5

    docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.8.2:2375 consul://21.1.7.1:8500

    pc6

    docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.8.3:2375 consul://21.1.7.1:8500

    pc7

    docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.9.1:2375 consul://21.1.7.1:8500

    pc8

    docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.9.2:2375 consul://21.1.7.1:8500

    pc9

    docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.9.3:2375 consul://21.1.7.1:8500

    pc10

    docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.10.1:2375 consul://21.1.7.1:8500

    pc11

    docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.10.2:2375 consul://21.1.7.1:8500

    pc12

    docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.10.3:2375 consul://21.1.7.1:8500

     

    4registrator状态获取 

    manage-node

    docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.7.1 consul://21.1.7.1:8500

    pc2

    docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.7.2 consul://21.1.7.1:8500

    pc3

    docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.7.3 consul://21.1.7.1:8500

    pc4

    docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.8.1 consul://21.1.7.1:8500

    pc5

    docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.8.2 consul://21.1.7.1:8500

    pc6

    docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.8.3 consul://21.1.7.1:8500

    pc7

    docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.9.1 consul://21.1.7.1:8500

    pc8

    docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.9.2 consul://21.1.7.1:8500

    pc9

    docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.9.3 consul://21.1.7.1:8500

    pc10

    docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.10.1 consul://21.1.7.1:8500

    pc11

    docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.10.2 consul://21.1.7.1:8500

    pc12

    docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.10.3 consul://21.1.7.1:8500

     

     

    页面访问

    http://21.1.7.1:8080

    admin / shipyard

    用户全拼/Pass@word

    打开http://21.1.7.1:8500,访问consul服务

     


     

    https://www.cnblogs.com/ikodota/p/docker_swarm_shipyard.html

    仅安装swarm和shipyard相关命令

    master执行

    docker swarm init --advertise-addr 172.28.2.200
    docker run --rm swarm create
    docker run -ti -d -p 2376:2375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:2375 token://b31e4f1643bf25ee399092217471f407
    docker run -ti -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr $(ifconfig | grep "inet addr" | grep -vE '17.0|18.0|127.0|192.' | cut -d : -f 2 | cut -d " " -f 1):2375 token://b31e4f1643bf25ee399092217471f407

    节点执行

    docker swarm join --token SWMTKN-1-0c4bkm0n8qmeo39vgxq8d8xonlfb46j2jl5upanlxmxuhiic0j-675w8z3l97mxu19l4oz3tav5t 172.28.2.200:2377
    docker tag 172.28.2.2:4000/swarm:latest swarm:latest
    docker run -ti -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr $(ifconfig | grep "inet addr" | grep -vE '17.0|18.0|127.0|192.' | cut -d : -f 2 | cut -d " " -f 1):2375 token://b31e4f1643bf25ee399092217471f407

    master执行

    docker run -ti -d --restart=always --name shipyard-rethinkdb -p 8082:8080 -p 28015:28015 -p 29015:29015 -v /opt/rethinkdb:/data rethinkdb
    docker run -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8080:8080 shipyard/shipyard    server -d tcp://swarm:2375

    web访问

    http://172.28.2.200:8082  rethinkDB

    http://172.28.2.200:8080 shipyard

    shipyard汉化:https://github.com/GeekCloud-Team/shipyard_zh

    shipyard_zh
    
    shipyard 中文静态插件
    
    用法:
    
    1.删除英文静态网页
    
        docker exec -it shipyard-controller  rm -rf static/app
    
        docker exec -it shipyard-controller  rm -f static/index.html
    
    2.下载中文静态页面
    
           git clone https://github.com/StarWars-Team/shipyard_zh.git
    
    3.将汉化文件拷贝到Docker 
    
        docker cp  shipyard_zh/static/app  shipyard-controller:/static/
    
        docker cp  shipyard_zh/static/index.html  shipyard-controller:/static/
    
    4.删除本地文件
    
        rm -rf shipyard_zh/
    View Code

    默认密码admin / shipyard

  • 相关阅读:
    LeetCode 43 字符串相乘
    HDU 1031 Design T-Shirt
    HDU 1728 逃离迷宫
    HDU 1285 确定比赛名次
    HDU 1116 Plays on words
    HDU 1195 Open the lock
    HDU 1072 Nightmare
    HDU 1272 小希的迷宫
    HDU 1273 漫步森林
    HDU 1269 迷宫城堡
  • 原文地址:https://www.cnblogs.com/DaweiJ/p/8462973.html
Copyright © 2011-2022 走看看