• Docker集群管理(二)—— docker+swarm+etcd+shipyard


    引言

    前一篇介绍如何简单的搭建一个可视化管理的docker集群,本篇将在此基础之上引入etcd发现服务。

    目的

    使用etcd发现服务解决swarm内置发现服务的不稳定问题。etcd采用raft算法,这里有篇容易理解的raft算法
    Etcd是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现。

    • 简单:支持 curl 方式的用户 API (HTTP+JSON)
    • 安全:可选 SSL 客户端证书认证
    • 快速:单实例可达每秒 1000 次写操作
    • 可靠:使用 Raft 实现分布式

    安装etcd

    docker run -ti -d -p 4001:4001 -p 7001:7001 --restart=always --name shipyard-discovery docker.io/microbox/etcd -name discovery
    

    启动swarm manger

    docker run -ti -d -p 2376:2375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:2375 etcd://192.168.139.128:4001
    

    很容易发现,只是将原来的 token://xxx 换成了 etcd://xxx

    启动swarm agent,

    在每个docker节点分别执行,将当前docker节点加入到集群中:

    docker run -ti -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 192.168.139.128:2375 etcd://192.168.139.128:4001
    
    docker run -ti -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 192.168.139.129:2375 etcd://192.168.139.128:4001
    
    docker run -ti -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 192.168.139.130:2375 etcd://192.168.139.128:4001
    

    我们来看下集群中的节点:

    docker run --rm swarm list etcd://192.168.139.128:4001
    

    会报这个错误:“client: etcd cluster is unavailable or misconfigured,自然在shipyard中的节点、容器和镜像都是空的。这是因为防火墙的问题,在防火墙中添加4001端口

    firewall-cmd --zone=public --permanent --add-port=4001/tcp
    
    firewall-cmd --reload
    

    现在看看shipyard中是不是已经有了docker集群信息了.

    在集群中启动一个服务

  • 相关阅读:
    6.简单总结一下类与对象
    5.创建对象内存分析
    4.构造器详解
    3.类和对象的关系
    业余草推荐18个Java开源免费的CMS系统
    业余草教你解读Spark源码阅读之HistoryServer
    业余草公众号运营攻略:教你一天涨粉200以上
    从菜鸟到大牛的码农升职必学文章推荐
    倒排索引的AND操作
    程序员,如何在工作之外,增加自己的收入
  • 原文地址:https://www.cnblogs.com/ikodota/p/docker_swarm_etcd_shipyard.html
Copyright © 2020-2023  润新知