之前用的阿里云容器服务,但由于acsrouting的路由错乱问题,被逼上自建docker swarm的梁山。今天尝试自己搭建docker swarm,竟然轻松搞定,简单的超乎想象。

以下是实际搭建操作步骤:

1. 创建集群

# docker swarm init --advertise-addr 10.251.242.231
Swarm initialized: current node (m9dfl7r9wo1e9jxsp3oe5du3x) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token xxx 10.251.242.231:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

主:10.251.242.231 是 docker 主机的内网IP地址

2. docker info 查看刚刚创建的集群信息

Swarm: active
NodeID: m9dfl7r9wo1e9jxsp3oe5du3x
Is Manager: true
ClusterID: j01wzizw7gy0ck95p1d7a4pmv
Managers: 1
Nodes: 1
Orchestration:
Task History Retention Limit: 5

3. docker node ls 查看节点信息

ID                            HOSTNAME               STATUS              AVAILABILITY        MANAGER STATUS
m9dfl7r9wo1e9jxsp3oe5du3t * swarm-websites-node1 Ready Active Leader

4. 创建用于部署应用容器的网络

# docker network create --driver=overlay --attachable cnblogs

5. 创建用于部署Docker Flow Proxy容器的网络(Docker Flow Proxy支持根据主机名将请求转发至对应的应用容器)

docker network create --driver overlay proxy

6. 查看刚刚创建的网络

# docker network ls
NETWORK ID NAME DRIVER SCOPE
rl96kcw8ytpa cnblogs overlay swarm
61kbxtvnivkx proxy overlay swarm

7. 部署 Docker Flow Proxy stack

7.1 下载 docker-compose-stack.yml 文件

# curl -o docker-compose-stack.yml \
https://raw.githubusercontent.com/\
vfarcic/docker-flow-proxy/master/docker-compose-stack.yml

7.2 部署 stack

# docker stack deploy -c docker-compose-stack.yml proxy

8. 编写示例应用 openapi 的 docker-compose-stack.yml

version: '3.2'
services:
api:
image: open-api:latest
deploy:
replicas: 2
update_config:
delay: 5s
labels:
- com.df.notify=true
- com.df.distribute=true
- com.df.serviceDomain=api.cnblogs.com
- com.df.port=80
networks:
- cnblogs
- proxy
networks:
cnblogs:
external: true
proxy:
external: true

9. 部署示例应用的 stack

docker stack deploy -c docker-compose-stack.yml openapi

10. 部署完成后可以通过 http://api.cnblogs.com 访问运行在 openapi_api service 中的站点

11. 添加机器进集群作为节点

docker swarm join --token xxxxxxxxx IP:2377

12. 将节点提升为manager

docker node promote ID或HOSTNAME

【参考资料】

自建docker swarm体验简单之美的更多相关文章

  1. 云计算之路-阿里云上-容器难容:自建docker swarm集群遭遇无法解决的问题

    我们从今年6月开始在生产环境进行 docker 容器化部署,将已经迁移至 ASP.NET Core 的站点部署到 docker swarm 集群上.开始我们选用的阿里云容器服务,但是在使用过程中我们遭 ...

  2. 云计算之路-阿里云上-容器难容:容器服务故障以及自建 docker swarm 集群故障

    3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月 ...

  3. 云计算之路-阿里云上-容器难容:优化自建 docker swarm 集群的部署

    在上周六遭遇阿里云容器服务 swarm 版的故障之后,我们决定还是走自建 docker swarm 之路,只要不是阿里云底层的问题,我们相信会找到办法解决或避开自建 docker swarm 不稳定的 ...

  4. docker--搭建docker swarm集群

    10 搭建docker swarm集群 10.1 swarm 介绍 Swarm这个项目名称特别贴切.在Wiki的解释中,Swarm behavior是指动物的群集行 为.比如我们常见的蜂群,鱼群,秋天 ...

  5. docker-compose,docker-machine,docker swarm 的简单总结

    1.docker-compose: 用来在单机上启动一组应用服务.这个服务中可能包含有很多应用,比如你的app服务,redis,mysql,等等. (1)我们需要先创建好docker-compose的 ...

  6. 云计算之路-阿里云上-2017年最错误的选择: 生产环境使用 docker swarm

    2017年12月29日 10:18 ~ 11:00 左右,由于整个 docker swarm 集群宕机,造成我们迁移至 .net core 跑在 docker swram 上的所有站点无法正常访问,由 ...

  7. 云计算之路-阿里云上:节点 CPU 波动引发 docker swarm 集群故障

    非常抱歉,今天 10:05-10:20 左右,我们用阿里云服务器搭建的 docker swarm 集群又出现故障,又是因为突然的节点 CPU 波动. 受这次故障影响的站点有 闪存,博问,班级,园子,短 ...

  8. 云计算之路-阿里云上:docker swarm 问题最新进展

    今天中午我们在 docker swarm 集群上发布应用时遇到了一个奇怪的 docker swarm 内置负载均衡的问题,该应用的 2 个新容器成功启动后,在容器内访问正常,但通过服务名访问时一会正常 ...

  9. 【故障公告】10:30-10:45 左右 docker swarm 集群节点问题引发故障

    非常抱歉,今天 10:30-10:45 左右由于 docker swarm 集群节点出现问题,造成除博客之外的站点出现访问异常,由此给您带来很大的麻烦,请您谅解. 故障开始时出现有时访问正常有时访问出 ...

随机推荐

  1. awk的些许小技巧

    一句话kill掉名为navimain进程的shell脚本(利用awk的列操作能力) `ps|grep navimain | awk 'NR==1 {print $1}'`

  2. linux tcp相关参数

    /etc/sysctl.conf文件 /etc/sysctl.conf是一个允许你改变正在运行中的Linux系统的接口.它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,可用来控制Linux网络配置 ...

  3. vue2.0 实现click点击当前li,动态切换class

    1,文件内容 ----//为item添加不存在的属性,需要使用vue提供的Vue.set( object, key, value )方法.  看详解:https://cn.vuejs.org/v2/a ...

  4. 常见Python爬虫工具总结

    常见Python爬虫工具总结 前言 以前写爬虫都是用requests包,虽然很好用,不过还是要封装一些header啊什么的,也没有用过无头浏览器,今天偶然接触了一下. 原因是在处理一个错误的时候,用到 ...

  5. 截图工具(window 10 和Mac OSX)

      Win10上截图 1.使用系统截图工具 所有程序中可以看到 通过win+R,打开运行,输入"SnippingTool" 文件位于: C:\Windows\System32\Sn ...

  6. 什么是位、字节、字、KB、MB (转)

    回顾一下按位操作符和移位操作符的知识,顺便复习一下位相关的基础知识. 位:"位(bit)"是电子计算机中最小的数据单位.每一位的状态只能是0或1. 字节:8个二进制位构成1个&qu ...

  7. ESN 与 MEID

    ESN (Electronic Serial Numbers):电子序列号.在CDMA 系统中,是鉴别一个物理硬件设备唯一的标识.也就是说每个手机都用这个唯一的ID来鉴别自己, 就跟人的身份证一样.一 ...

  8. CentOS重新加载网卡报错 Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/23

    最新文章:Virson's Blog 重新加载网卡时出现的错误如下: [root@vdb1 dev]# service network restart Shutting down interface ...

  9. Oracle中Select语句完整的执行顺序

    oracle Select语句完整的执行顺序: .from 子句组装来自不同数据源的数据: .where 子句基于指定的条件对记录行进行筛选: .group by子句将数据划分为多个分组: .使用聚集 ...

  10. Ubuntu上查内存情况

    free -h