第 8 章 容器网络 - 048 - 跨主机网络概述

本文深入探讨Docker跨主机网络方案,包括docker原生的overlay和macvlan,以及第三方方案flannel、weave和calico。同时,解析libnetwork与CNM模型,介绍Sandbox、Endpoint和Network的概念,阐述各种网络组件如何协同工作,实现容器间通信。

跨主机网络概述

 

Docker 的几种网络方案:none、host、bridge 和 joined 容器,它们解决了单个 Docker Host 内容器通信的问题

 

跨主机网络方案包括:

docker 原生:overlay 和 macvlan

第三方方案: flannel、weave 和 calico

 

docker 网络是一个非常活跃的技术领域,不断有新的方案开发出来 如此众多的方案是通过 libnetwork & CNM与 docker 集成在一起的。

 

一、libnetwork

libnetwork 是 docker 容器网络库,最核心的内容是其定义的 Container Network Model (CNM),这个模型对容器网络进行了抽象,由以下三类组件组成:

 

Sandbox

Sandbox 是容器的网络栈,包含容器的 interface、路由表和 DNS 设置。

Linux Network Namespace 是 Sandbox 的标准实现。Sandbox 可以包含来自不同 Network 的 Endpoint。

 

Endpoint

Endpoint 的作用是将 Sandbox 接入 Network。Endpoint 的典型实现是 veth pair,后面我们会举例。

一个 Endpoint 只能属于一个网络,也只能属于一个 Sandbox。

 

Network

Network 包含一组 Endpoint,同一 Network 的 Endpoint 可以直接通信。

Network 的实现可以是 Linux Bridge、VLAN 等。

 

二、CNM

示例:

 

 

如图所示两个容器,一个容器一个 Sandbox,每个 Sandbox 都有一个 Endpoint 连接到 Network 1,第二个 Sandbox 还有一个 Endpoint 将其接入 Network 2.

 

libnetwork CNM 定义了 docker 容器的网络模型,按照该模型开发出的 driver 就能与 docker daemon 协同工作,实现容器网络。

docker 原生的 driver 包括 none、bridge、overlay 和 macvlan,第三方 driver 包括 flannel、weave、calico 等。

 

 

 

 

 --------------------------------------------引用来自--------------------------------------------------------

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587751&idx=1&sn=5ba6ce55ffbdcae7e0e85681d719e4df&chksm=8d30813eba470828623c4f6dc4a293e7a67f1daba14aca270b7dccccb8768cbb8b199609b5d7&scene=21#wechat_redirect

转载于:https://www.cnblogs.com/gsophy/p/10521119.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值