前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一种生产环境Docker Overlay Network的配置方案

一种生产环境Docker Overlay Network的配置方案

作者头像
颇忒脱
发布2019-03-13 16:01:43
1.2K0
发布2019-03-13 16:01:43
举报

原文地址

介绍一种生产环境Docker overlay network的配置方案。

概要

先讲一下生产环境中的问题:

  • 有多个Docker host,希望能够通过Docker swarm连接起来。
  • Docker swarm只适合于无状态应用,不适合有状态应用。
  • 因此生产环境中会同时存在
    1. 无状态应用:利用docker service create/docker stack deploy创建的。
    2. 有状态应用:利用docker run/docker compose up创建的。
  • 希望两种应用能够连接到同一个overlay网络,在网络内部能够通过
    1. tasks.<service-name> DNS name 连接到无状态应用(见Container discovery
    2. <container-name> DNS name 连接到有状态应用

解决办法:

  1. 创建attachable的overlay network
  2. 有状态应用挂到这个overlay network上
  3. 无状态应用也挂到这个overlay network上

步骤

到manager节点上创建attachable的overlay network,名字叫做prod-overlay:

在manager节点上查看这个网络是否创建成功:

在worker节点上查看这个网络,这时你看不到这个网络,不过不要担心,当后面在worker节点上创建工作负载后就能看到了:

在manager上创建容器c1,挂到prod-overlay network上:

在worker上创建容器c2,挂到prod-overlay network上:

在manager上创建service c,挂到prod-overlay network上:

验证

查看worker节点的network

之前在worker节点上没有看到prod-overlay network,现在你应该可以看见了:

确认容器可以互ping

到manager节点上,让c1 ping c2

到manager节点上,让c1 ping tasks.ctasks.c是之前创建的service c的DNS name:

到manager节点上,让c1 查询 tasks.c的DNS name,可以看到tasks.c有两条记录:

到manager节点上,查看service c的task,看到有c.1c.2两个task,分别部署在两个节点上:

c.1 task所在的节点上,查看task c.1的容器名:

然后在c1里ping task c.1的容器名:

你同样可以:

  • c2里:
    1. ping c1
    2. ping tasks.c
    3. ping task c.1c.2的容器
  • 在task c.1c.2的容器里:
    1. ping c1c2
    2. ping tasks.c
    3. ping task c.1c.2的容器

注意

通过docker run / docker compose up创建的容器的名字,要保证在整个集群里是唯一的。docker 不会帮你检查名称冲突的情况,如果名称冲突了那么会得到错误的DNS结果。

参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概要
  • 步骤
  • 验证
    • 查看worker节点的network
      • 确认容器可以互ping
      • 注意
      • 参考资料
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档