Dockerクラスタ(docker+swarm+etcd)構築

1879 ワード

1、参考ログの位置
http://blog.jobbole.com/98873/
2、準備環境
サーバ:
  • 192.168.2.8センタス-node 1
  • 192.168.2.89セントロイド2
  • クラスタ情報:
  • etcサーバ:192.168.2.89:2379
  • swarm manage:192.168.2.89:3376
  • swarm-node 1:192.168.2.8:2375
  • ソフトウェアのインストール
  • は、すべてのマシンにdokcerをインストールし、CentOSオペレーティングシステムのインストール手順は、公式サイト
  • を参照することができます。
  • Cntos-node 1上docker pull ystyle/etcd(公式のダウンロードができません。docker阿里雲加速器を配置して加速器を通してダウンロードします。)
  • はすべてのマシンでdokcer pull swarm以上の3ステップでdocker-machineで
  • を完成できます。
  • は、すべてのマシンの2375ポート、centos-node 1の2379ポート、centos-node 1の3376ポート
  • を開放しています。
    3、セットアップetcd k-vデータベース
    centos-node 1で実行します。
    #    HOSTIP
    export HOSTIP=192.168.2.89 
    #   etcd docker  
    docker run -d -v /etc/ssl/certs:/etc/ssl/certs -p 4001:4001 -p 2380:2380 -p 2379:2379 \
    --name etcd ystyle/etcd -name etcd0 \
    -advertise-client-urls http://${HOSTIP}:2379,http://${HOSTIP}:4001 \
    -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \
    -initial-advertise-peer-urls http://${HOSTIP}:2380 \
    -listen-peer-urls http://0.0.0.0:2380 \
    -initial-cluster-token etcd-cluster-1 \
    -initial-cluster etcd0=http://${HOSTIP}:2380 \
    -initial-cluster-state new
    
    4、クラスタに追加する
  • はcentos-node 1で実行します。docker run -d swarm join --addr=192.168.2.89:2375 etcd://192.168.2.89:2379/swarm
  • はcentos-node 2で実行します。docker run -d swarm join --addr=192.168.2.88:2375 etcd://192.168.2.89:2379/swarm
  • 5、swarm manageを起動する
    centos-node 1で実行します。
    #   swarm manage
    docker run -d -p 3376:3376 -t swarm manage -H 0.0.0.0:3376 etcd://192.168.2.89:2379/swarm
    #   swarm    
    docker run --rm swarm list etcd://192.168.2.89:2379/swarm
    #   swarm    
    export DOCKER_HOST=192.168.99.101:3376
    docker info
    #   
    docker run --rm -p 8080:80 nginx:alpine 
    #   nginx         
    docker ps -a 
    #   nginx
     curl -L http://nginx_host:8080