云原生二十篇|Docker网络篇

发布网友 发布时间:1天前

我来回答

1个回答

热心网友 时间:1天前

Docker网络架构设计规范是容器网络模型方案(CNM),支持拔插式的驱动方式提供网络拓扑。Libnetwork是CNM的标准实现,支持跨平台,并包含三个标准组件和服务发现、基于Ingress的容器负载均衡、网络控制层和管理层功能。Docker网络模式包括网桥、Host、Overlay和Remote。网桥模式下,容器通过一对veth pair连接到docker0网桥,由Docker动态分配IP、配置路由和防火墙规则等。Host模式下,容器与主机共享同一Network Namespace,共享网络协议栈、路由表及iptables规则,不会做端口映射。Overlay模式是Docker原生的跨主机多子网网络方案,底层通过Linux bridge和vxlan隧道实现,通过KV存储系统实现多机的信息同步。Remote模式允许借助Libnetwork实现网络插件。None模式是简单的网络模式,容器隔离,无法访问外部网络。网桥是解决主机内多容器通讯的网络模式,Overlay模式解决跨主机多子网网络。网桥创建时会创建一对veth-pair设备,一端挂载到docker0网桥上,另一端放入容器的Network Namespace内,实现容器与主机通信。查看网桥信息可使用docker network ls命令,详细信息可使用docker inspect命令。端口映射通过iptables实现。Overlay模式使用VXLAN技术在物理网络层上构建逻辑网络,支持集群通讯。服务发现可自定义配置DNS,实现容器间服务定位。Ingress模式在Docker Swarm集群中实现类似K8S的服务发现与路由,通过Service Mesh四层路由网络实现集群内访问容器服务。使用docker service命令创建服务时可指定端口映射,查看iptables -t nat -nvL命令可了解负载均衡实现原理。更多详细信息可参考相关技术文章。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com