docker&k8s

Docker 网络进阶

2019-10-08  本文已影响0人  SkTj

单主机通信:none host bridge joined

多主机通信:overlay macvlan

扩展的多主机通信:flannel weave calico

image.png

实验环境:101,104,105

overlay:需要一个key-value软件,包括etcd consul zookeeper

搭建overlay:可以理解为vlan

1、在1台主机上运行consul
docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap
2、另外两台主机修改docker配置文件:docker.service

--cluster-store=consul://xxx:xx --cluster-advertise=enp0s8:2376

image.png

3、在两台的主机的其中1台上创建overlay网络
docker network create -d overlay ovnet1
4、用overlay运行容器
docker run -itd --name bbox1 --network ovnet1 busybox

不同的overlay间是相互隔离的

overlay也可以执行subnet

image.png

macvlan:性能优异,没有提供DNS服务,通信只能IP

1、在两台主机上搭建macvlan:要设置promiscuous Mode:Allow ALL


image.png

2、在两台主机上都创建macvlan网络


image.png
3、为容器分配网络
image.png

一个网卡只能创建一个macvlan

image.png

利用子网配置多个macvlan

image.png

利用网关配置,使不同macvlan可以通信

image.png
image.png

flannel搭建:使用etcd,每一台都要安装客户端。flannel没有提供网络隔离

1、1台主机安装etcd


image.png
image.png

2、build flannel:在另外两台上安装flannel客户端


image.png
3、在另外两台上配置网络
image.png
4、启动:flannel
image.png

5、两台主机的docker配置连接flannel:docker.service


image.png
image.png
重启docker service
6、容器连接到flannel
image.png

flannel配置成host-gw backend

image.png
image.png

weave搭建:相当于搭建一个大的交换机

1、安装weave,在两台主机



2、启动,在一台主机启动weave,运行容器
weave lauch
eval $(weave env) docker run --name xx -itd busybox
3、在另一台主机启动
weave launch 192.168.56.104


image.png

weave网络隔离:-e WEAVE_CIDR

image.png

配置weave访问外网:weave expose

image.png

配置其他非容器访问weave

image.png

修改默认的地址

image.png

calico搭建:可以动态设置ACL

1、一台主机安装etcd,另外两台修改配置并重启


image.png

2、在另外两台安装calicoctl


image.png
3、在其中一台创建calico网络
image.png

4、运行容器


image.png
image.png
5、查看calico的poicy
calicoctl get profile cal_net1 -o yaml
6、calico policy:ACL

7、自定义subnet


image.png image.png
上一篇 下一篇

猜你喜欢

热点阅读