写点什么

5 个解决 Docker 网络问题的项目

  • 2014-10-24
  • 本文字数:1621 字

    阅读完需:约 5 分钟

Docker 是一个开源的应用容器引擎,它可以让开发者将自己的应用以及应用所依赖的内容打包到一个可移植的容器中,然后将该容器发布到任何流行的 Linux 机器上,也可以实现虚拟化。 Docker 彻底释放了虚拟化的威力,它让应用的分发、部署和管理都变得前所未有的高效和轻松,凭借着自己出众的能力,Docker 现在已经成为目前 IT 界创业者和创新者的宠儿。那么 Docker 是否已经足够完美了呢?答案当然是否定的,对于管理者和开发人员来说网络依然是 Docker 的一个痛点,如何管理 Docker 容器之间的交互和网络一直都充满了挑战。

为了解决网络的问题,有很多公司都开发了各自的产品以帮助开发者更方便地使用 Docker。Serdar Yegulalp 最近在 InfoWorld 上分享了一篇文章,介绍了这些项目中最重要的5 个,包括Weave、Kubernetes、CoreOS, Flannel、Pipework 以及SocketPlane,同时他认为这其中的部分项目将来可能会成为Docker 的组成部分。下面就让我们来了解一下这5 个项目。

Weave是由 Zett.io 公司开发的,它能够创建一个虚拟网络来连接部署在多台主机上的 Docker 容器。通过 Weave 所有的容器就像被接入了同一个网络交换机,那些使用网络的应用程序不必去配置端口映射和链接等信息。外部设备能够访问 Weave 网络上的应用程序容器所提供的服务,同时已有的内部系统也能够暴露到应用程序容器上。Weave 能够穿透防火墙并运行在部分连接的网络上。另外,Weave 的通信支持加密,所以用户可以从一个不受信任的网络连接到主机。如果你想了解更多与 Weave 相关的信息,或者查看相关源码,那么可以点击这里

Kubernetes是由 Google 推出的针对容器管理和编排的开源项目,它让用户能够在跨容器主机集群的情况下轻松地管理、监测、控制容器化应用部署。Kubernete 有一个特殊的与 SDN 非常相似的网络化概念:通过一个服务代理创建一个可以分配给任意数目容器的 IP 地址,前端的应用程序或使用该服务的用户仅通过这一 IP 地址调用服务,不需要关心其他的细节。这种代理方案有点 SDN 的味道,但是它并不是构建在典型的 SDN 的第 2-3 层机制之上。如果对此感兴趣可以阅读一下 Craig Matsumoto 在 sdncentral 上发表的这篇文章,或者点此查看源码。

Flannel之前的名字是 Rudder ,它是由 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有一个完整的子网。Kubernetes 会为每一个 POD 分配一个独立的 IP 地址,这样便于同一个 POD 中的 Containers 彼此连接,而之前的 CoreOS 并不具备这种能力。为了解决这一问题,Flannel 通过在集群中创建一个覆盖网络为主机设定一个子网。点此查看该项目的源码。

Pipework是由 Docker 的一个工程师设计的解决方案,它让容器能够在“任意复杂的场景”下进行连接。 Pipework Docker 的一个网络功能增强插件,它使用了 cgroups 和 namespacpace。点此查看该项目的源码。

SocketPlane目前仅停留在将“SDN 带给 Docker”的口号上,基本上没有实质性的工作。该项目的想法是使用和部署 Docker 一样的 devops 工具管理容器的虚拟化网络,同时为 Docker 构建一个相当于 OpenDaylight/Open vSwitch 的产品。听起来非常有前途,但是在 2015 年一季度之前我们无法看到任何产品。

对于以上项目,Serdar Yegulalp 在自己的文章中也发表了针对性的观点,他认为 Weave 是最好的起点,因为它通过一种直截了当的方法解决了当前大部分的问题。Kubernetes 也是一个比较好的起点,但是真要用起来可能并不是那么简单。而 Flannel 则最好是和 CoreOS 一起使用,同时它依赖于 Kubernetes。对于 Pipework,Serdar Yegulalp 认为它是一个临时的设计方案,很有可能会被抛弃。最后的 SocketPlane 则基本上是看看就行了,不要期望太高。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-10-24 01:4512924
用户头像

发布了 321 篇内容, 共 133.4 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

高并发场景下的Java性能优化

飞算JavaAI开发助手

AI生成高并发Java代码实战:秒杀系统优化方案

飞算JavaAI开发助手

流媒体分享系列之广告归因

Marvin

广告 流媒体 广告归因 归因技术

大模型如何辅助软件测试与质量体系?

思码逸研发效能

软件测试 研发效能 软件质量 智能化测试 思码逸

Proxmox VE 8.4 发布 - 开源虚拟化管理平台

sysin

PVE

复杂业务逻辑的AI生成代码调试技巧

飞算JavaAI开发助手

去中心化云算力的12项特征,不只是算力分布式

PowerVerse

去中心化 算力 分布式,

一文弄懂用Go实现MCP服务

王中阳Go

Go MCP

DPP推荐引擎架构升级演进之路|得物技术

得物技术

算法 Java Agent AB

“AI+财务”4月活动地图,诚邀您就近入场!

用友智能财务

财务 峰会 会计

VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS ConnectX-3 网卡定制版 (集成驱动版)

sysin

esxi

如何使用AI辅助开发HTML5 - 通义灵码功能全解析

阿里云云效

html5 AI

观测云产品更新 | 场景、管理、监控、AI 错误分析、AI 智能助手等

观测云

产品迭代

喜讯!白鲸开源入选智联联盟2024年度软件研发优秀案例

白鲸开源

白鲸开源

Easysearch VS Opensearch 数据写入与存储性能对比

极限实验室

easysearch OpenSearch

流媒体分享系列之广告归因方案

Marvin

广告 流媒体 归因 广告归因 广告归因技术

夏日炎炎,透明屏如何散热“冷静”?

Dylan

电子 LED display LED显示屏 夏令营 LED屏幕

如何在Mac上查找、打开和检查活动监视器,教你轻松管理你的Mac任务进程

阿拉灯神丁

CleanMyMac 设计软件 mac系统维护 Mac任务管理器 系统优化软件

Web3项目的技术架构

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

vivo Trace 监控追求极致的建设历程

vivo互联网技术

Profile Skywalking Dynatrace Datadog profiling

AI 重构 Java 遗留系统:从静态方法到 Spring Bean 注入的自动化升级

飞算JavaAI开发助手

为什么我需要AI助手辅助学习python

阿里云云效

Python

Web3 项目开发的技术难点

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

AI代码生成工具如何突破Java单元测试效能天花板?

飞算JavaAI开发助手

黑龙江三级等保-信息安全等级保护制度中的重要级别

黑龙江陆陆信息测评部

「DeepSeek-V3 技术解析」:多词元预测技术(Multi-Token Prediction, MTP)

Baihai IDP

AI LLMs DeepSeek MTP

从片段到完整逻辑:AI生成Spring Boot微服务代码的深度对比

飞算JavaAI开发助手

人工智能如何重塑软件测试开发?这几个方向将决定你的职业天花板

测试人

人工智能

为什么我需要AI助手辅助学习python

阿里巴巴云原生

Python

如何使用AI辅助开发HTML5 - 通义灵码功能全解析

阿里巴巴云原生

html5

5个解决Docker网络问题的项目_语言 & 开发_孙镜涛_InfoQ精选文章