自建docker swarm体验简单之美

之前用的阿里云容器服务,但由于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 中的站点

【参考资料】

时间: 2024-10-25 12:10:54

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

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

我们从今年6月开始在生产环境进行 docker 容器化部署,将已经迁移至 ASP.NET Core 的站点部署到 docker swarm 集群上.开始我们选用的阿里云容器服务,但是在使用过程中我们遭遇了恐怖的路由服务(acsrouting)路由错乱问题 —— 请求被随机路由到集群中的任一容器,虽然后来阿里云修复了这个问题,但我们对容器服务失去了信心,走上了用阿里云服务器自建 docker swarm 集群的道路. 用上自建 docker swarm 集群之后,本以为可以在云上容器中过上安稳的日

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

3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月22日,我们进行移除与重启节点的操作时引发了故障,详见 云计算之路-阿里云上-容器服务:移除节点引发博问站点短暂故障 . 3月24日,我们参考阿里云容器服务帮助文档-指定多节点调度通过给节点添加用户标签的方式成功移除了部分节点.我们是这么操作的,当时所有节点没有添加用户标签,给待移除节点之外的所有节

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

1.docker-compose: 用来在单机上启动一组应用服务.这个服务中可能包含有很多应用,比如你的app服务,redis,mysql,等等. (1)我们需要先创建好docker-compose的yml文件.安装好docker,安装好docker-compose (2)在文件的目录直接运行docker-compose up  就可以直接把服务组启动起来了. 参考:https://docs.docker.com/compose/gettingstarted/ 2.docker-machine

docker swarm:执行 service update 过程中服务短暂不能访问的问题

这是我们使用自建 docker swarm 集群后在部署时遇到的一个问题,使用 docker service update 命令更新服务时, docker service update -d=false --force service_name 在更新的过程中服务有短暂的时间不能访问. 该服务中运行的是 asp.net core web api ,所使用的 Dockerfile 如下: FROM microsoft/aspnetcore:1.1.2 ARG PROJECT WORKDIR /ap

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

非常抱歉,今天 10:30-10:45 左右由于 docker swarm 集群节点出现问题,造成除博客之外的站点出现访问异常,由此给您带来很大的麻烦,请您谅解. 故障开始时出现有时访问正常有时访问出现 502 或 500 ,当时我们就判断是某个节点出现问题,但无法直接定位出哪个节点,只能依次将一个个节点下线-上线.但是,不走运的是出现问题的节点恰恰是我们最后下线的一个节点.所以,在下线正常节点的过程中,更多的容器被迁移到了问题节点,结果造成更大范围的故障,直到我们下线问题节点,才恢复正常. 自

(转) Docker swarm - 使用体验 1+2

背景 凭借敏捷开发部署理念的推行,相信对于很多人来说docker这项容器技术已经并不陌生,Docker 1.12引擎发布了快两个月,新引擎中包含了许多特性.诸如: Swarm模式,容器集群的健康检查,节点的身份加密,docker Service API调用,容器启动的过滤匹配方式(constraint), docker的内建路由,以及支持在多平台系统上运行docker(MAC.Windows.AWS.AZURE),以及一些插件升级等等. 特性之多,就连Docker 自己的产品经理也表示这次的新版

Docker Swarm 横向扩容/收缩简单使用

Swarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源. Swarm 和 Kubernetes 比较类似,但是更加轻,具有的功能也较 kubernetes 更少一些. Swarm 横向扩容准备服务器: swarm1(master):192.168.75.191 swarm2(node1):192.168.75.192 swarm3(node2):192.168.

Docker Swarm群集

Docker Swarm 是什么? Docker Swarm是一个用于创建Docker主机(运行Docker守护进程的服务器)集群的工具,使用Swarm操作集群,会使用户感觉就像是在一台主机上进行操作 docker1.12集成了swarmkit, 使你可以不用安装额外的软件包, 使用简单的命令启动创建docker swarm集群. 如果你在运行 Docker 1.12时,你就可以原生创建一个 Swarm 集群 . 集成了swarm集群的安全特性, 集成了K-V存储, 你现在不需要额外部署etcd

Docker Swarm群集项目案例

DockerSwarm群集 DockerSwarm 是一个用于创建 Docker 主机(运行 Docker 守护进程的服务器)集群的工具, 使用 Swarm 操作集群,会使用户感觉就像是在一台主机上进行操作 docker1.12 集成了 swarmkit, 使你可以不用安装额外的软件包, 使用简单的命令启动创建 docker swarm 集群. 如果你在运行 Docker 1.12 时,你就可以原生创建一个 Swarm 集群 . 集成了 swarm 集群的安全特性, 集成了K-V 存储, 你现在